Desabilitar o RBS em um Content DB

E claro, depois do meu artigo “Configurar o RBS no Sql Server 2008 e consertando problemas de usuário” (http://matchboxtech.wordpress.com/2011/05/11/configurar-o-rbs-no-sql-server-2008-e-consertando-problemas-de-usurio/)  me senti na obrigação de informar também como desabilitar um RBS associado a um Content DB.

O seguinte artigo ensina a técnica: http://technet.microsoft.com/en-us/library/ff628259.aspx

a) Acesse o PowerShell do SharePoint 2010

b) Utilize o seguinte código:

$site=Get-SPSite "<http://yourSiteURL>" 
$rbss=$site.ContentDatabase.RemoteBlobStorageSettings 
$rbss.SetActiveProviderName("")

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

onde yourSiteUrl é o endereço do site collection que está associado ao ContentDB que possui o RBS associado

Convenhamos: É mais fácil desabilitar do que habilitar!

Configurar o RBS no Sql Server 2008 e consertando problemas de usuário

 

Se você chegou até aqui, é porque sabe os benefícios do RBS no SharePoint. Se ainda não conhece, sugiro a seguinte leitura:

http://technet.microsoft.com/pt-br/magazine/ff847521.aspx

Caso contrário, siga o passo a passo abaixo:

OBSERVAÇÃO:  Fiz os testes abaixo em uma Vm de laboratório. Antes de aplicar em produção, recomendo executar em um ambiente de testes

Download Requerido: http://go.microsoft.com/fwlink/?LinkID=188395&clcid=0x409
Copiei o arquivo para cada Web Front End.

01- Acesse o Configuration Manager do Sql Server. Clique em Sql Server Services, selecione a instancia do seu banco do SharePoint e com o botão direito selecione Propriedades . Check todos os Checkboxes disponíveis

image

02 – Abra agora o Management Studio  e em uma nova janela de Query editor, digite o seguinte comando e execute (F5).

EXEC sp_configure filestream_access_level, 2
RECONFIGURE

 

CONFIGURAR O CONTENT DB PARA USAR O FILESTREAM

03 – O diretório chamado C:\BLOB será criado automaticamente com o Script abaixo.

WSS_Content: Nome do banco de conteúdos que estou utilizando

use [WSS_Content]
if not exists (select * from sys.symmetric_keys where name = N’##MS_DatabaseMasterKey##’) create master key encryption by password = N’Admin Key Password p@ssw0rd’
GO

if not exists (select groupname from sysfilegroups where groupname=N’RBSFilestreamProvider’)alter database [WSS_Content]  add filegroup RBSFilestreamProvider contains filestream
GO

alter database [WSS_Content] add file (name = RBSFilestreamFile, filename = ‘c:\BLOB’) to filegroup RBSFilestreamProvider

 

INSTALANDO O PROVIDER RBS NO SERVIDOR (Web Front Ends)

04 – Abra o Prompt de Comando em modo Administrador.Acesse o diretório no servidor onde você salvou o RBS.msi.

Utilize o seguinte comando

msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="server\sharepointdb" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1

DBNAME: Nome do seu banco de conteúdos do SharePoint
DBINSTANCE: Nome da instancia do seu servidor

Vai parecer que deu erro, pois você verá que não acontece nada na tela. Tudo está salvo no log rbs_install_log.txt .

Abra e verifique, antes do final do log, a mensagem:

MSI (s) (50:E0) [07:24:47:845]: Product: SQL Server 2008 R2 Remote Blob Store — Installation completed successfully.

OPCIONAL: CASO POSSUA OUTROS Web Fron Ends (Não foi meu caso, então não testei)

01 – Acesse o diretório para onde foi copiado o arquivo RBS.msi (Prompt em modo administrador)

Utilize o seguinte comando

msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi DBNAME="WSS_Content" DBINSTANCE="server\sharepointdb" ADDLOCAL="Client,Docs,Maintainer, ,FilestreamClient,FilestreamServer"

Procure no log a mensagem:

"Product: SQL Remote Blob Storage — Configuration completed successfully"

FINAL: Avisar o SharePoint que o DataBase possui RBS

05 – Abre o SharePoint 2010 Management Shell

06 – Use o PowerShell Script abaixo: Digite linha a linha:

$cdb = Get-SPContentDatabase WSS_Content
$rbss = $cdb.RemoteBlobStorageSettings
$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss

 

TESTE: Envie um arquivo maior que 100kb para uma biblioteca de documentos

07 – Acesse uma biblioteca de documentos de um Site Collection que esteja naquele banco de conteúdos. No meu caso, o banco é o WSS_CONTENT

08 – Envie um arquivo. O arquivo que tenho é um .docx que possui .555kb. Vamos ver se isso funciona mesmo.

Meu WSS_Content possui esse tamanho atualmente.

image

E esse é o diretório do BLOB:

image

 

09 – Enviei três arquivo .pptx para uma biblioteca. Cada um com 541Kb de tamanho,. Vamos ver o que aconteceu:

image

O banco ficou igual, por que? Por que eu não preenchi nenhum metadado aos arquivos.

Em compensação, entrando o terceiro diretório acima eu econtrei isso:

image

E ai está a instalação funcionando:

Baseado no artigo http://blogs.msdn.com/b/tejasr/archive/2011/04/01/experience-of-configuring-remote-blob-storage-rbs-with-sharepoint-2010.aspx

BÔNUS: Consertar o RBS quando alguem apaga um diretório da estrutura criada

Isso aconteceu durante a elaboração deste artigo. Fui querer fuçar o diretório c:\BLOG e achei que uma pasta era lixo. Resolvi apagar. Quando tentei enviar mais um arquivo,acima de 100Kb para QUALQUER BIBLIOTECA, me deparei com o erro:

 

A URL ‘RBS/arquivoTESTE.pptx’ é inválida. Talvez faça referência a um arquivo ou pasta inexistente, ou faça referência a um arquivo ou pasta válida que não se encontra na Web atual

Pronto. Zuei minha VM. Como vou lembrar da pasta com nome em GUID que acabei de excluir.

Fuçando o LOG, achei os detalhes:

 

05/11/2011 08:37:00.64     w3wp.exe (0x0FAC)                           0x0B48    SharePoint Foundation             General                           9j7o    Medium      Exception thrown storing stream in new SqlRemoteBlob: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> Microsoft.Data.SqlRemoteBlobs.BlobStoreException: There was a generic database error. For more information, see the included exception. —> System.Data.SqlClient.SqlException: RBS Error. Original Error: Number 3634, Severity 16, State 1, Procedure -, Line 1, Message: The operating system returned the error ‘0xc000003a(failed to retrieve text for this error. Reason: 15105)’ while attempting ‘NtCreateFile’ on ‘c:\BLOB\f79aba43-ced3-4b57-ac64-a5435ec26a21\7872ff0b-9684-4e44-9bd6-6c97d0288cb4\0000064e-00000142-0002′.  Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 1, cu…    1c692147-5974-4797-84a3-81c2d2d707d1

 

OPA! Achei o que apaguei. Criei novamente está estrutura e o erro sumiu.

Consulting Skills: Ouça seu cliente

Parece fácil, mas não é. Minha mãe sempre me disse: Deus nos deus duas orelhas e uma boca: Para ouvirmos mais e falarmos menos. Nunca liguei para esses provérbios maternos mas ela estava certa.

Comecei a avaliar o que me levou, nos meus últimos projetos, obter a nota máxima de avaliação pelo cliente. Não foi a apresentação da solução técnica ou o quanto eu conhecia da ferramenta. Claro, isso ajuda, mas no fundo, o que o cliente deseja é alguém que o entenda.

 

Se tivessemos um par de orelhas como estas,
a vida seria muito mais fácil

 

Nós, consultores de tecnologia, muitas vezes não nos damos conta, mas quando iniciamos um projeto, imaginamos que já sabemos o que o cliente deseja. O comercial foi executar a venda, sentiu as dores do cliente, montou um escopo e nos entregou com o recado “é isso pra fazer”. Ou então, ele já vendou a solução dizendo “O consultor virá aqui para levantar o escopo”. Chegando lá, percebemos que o cliente não quer o que foi vendido. Quem já passou por isso, levante a mão \o/


Quem quer um cliente sem problemas, levante a mão

Quando chego em um cliente a primeira coisa que faço, é conversar. Tentar validar suas expectativas, conversar sobre o que o motivou a elaborar o projeto.  Não tenha medo de perguntar. Eu sempre justifico: “Eu estou te perguntando isso porque eu sei o escopo do projeto, sei o que tenho que fazer, mas sempre tem um detalhe que pode ter passado e eu estou aqui para ajuda-lo”. Com isso, eu me defendo da impressão negativa “Ue´? Vocês não conversam internamenteo na empresa?”. Acontece.

Baseado nisso, eu tento seguir os seguintes passos:

a) Leio o escopo antes de ir ao cliente. Se eu tiver que montar o escopo, leio e entendo o que foi vendido. Tem gente que não faz. Acredite!

b) No processo da conversa com o cliente, no que fico atento:

- Entendo o negócio do cliente. O que ele faz e pra que a minha solução servirá.
- Levanto quem serão os usuários que usarão o sistema
- Confirmo se o meu contato dentro do cliente é o que irá dar o OK final. Importantíssimo. as vezes você lida com um usuário que não tem poder e nem conhecimento da empresa e foi encabido de te dar informações sobre o negócio

- Ache a dor! Algo que o  motivou a contratar você. Procure, fuce, pergunte! Seja o PainKiller!

CUIDADO: As vezes, o cliente não sabe pedir. Quando você perceber isso, seja os olhos do cliente. Tente se colocar no lugar dele como usuário da solução que você está propondo. A pergunta é: Você usaria diariamente o que você quer implementar?

Quando você conhece o negócio do cliente, conseguirá direcionar a solução para o que é melhor para ele.

c) Ouça mesmo. Consultor, inclusive eu, tem mania de ir escutando e já ir dando solução. Deixa para pensar depois no que você vai fazer. Estou me policiando para não fazer mais isso.

d) Este alinhamento deve virar algo fora do escopo.Alinhe internamente em sua consultoria. Não tome a decisão sozinho.

e) Depois desta conversa, faça uma análise sobre os pontos e alinhei com o que foi vendido. Você ficará surpreso.

May the force be with you,
Gaia

SharePoint 2010 WallPapers

Ta afim de dar uma valorizada no produto e divulgar no seu micro ou em suas máquinas de teste para cliente? Que tal baixar um desses:

Vai lá
http://microsoftfeed.com/2010/10-beautiful-microsoft-sharepoint-2010-wallpapers/

Fazendo com que o BrOffice salve direto no SharePoint 2010

Sim, é possível! Para isso, basta configurar o seguinte nele:

FERRAMENTAS/OPÇÕES/GERAL

e marcar a opção “Utilizar as caixas de diálogo do BrOffice.br

Com isso, seu cliente conseguirá salvar direto no SharePoint

SharePoint para pequenas empresas (parte I)

Vou iniciar uma sequência de posts focados as pequenas empresas. Poxa, possuimos todas as ferramentas para que essas empresas possam adotar o SharePoint como plataforma para sua intranet, porque não orienta-las nesse processo? Se a ferramenta está disponível para download, é porque deve ser baixada e usada.

Além do mais, vamos concordar que muitas ferramentas da Microsoft tem a cultura NNF (Next Next Finish) e podemos sair usando numa boa. Bem, com o SharePoint as coisas não funcionam dessa maneira. Você até consegue algo parecido, mas o arrependimento vai ser muito maior lá na frente. Vai por mim. Smiley piscando

Como ainda estou preparando essa idéia, segue abaixo um pequeno Brainstorm do que estou pensando para os próximos posts:

 

  1. O que posso fazer com a versão gratuita do SharePoint?
  2. Ferramentas: O que preciso e onde baixo?
  3. Um pouco de arquitetura:topologia de rede
  4. Instalação: Um guia passo a passo
  5. Conhecendo os limites do SharePoint
  6. Boas práticas de uso
  7. Minha empresa é pequena: Preciso de governança?

É apenas um início, mas confesso que estou empolgado em começar esse trabalho!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.