Overview
 
Mais de 90% dos conteúdos de configurações e conteúdos do SharePoint são armazenados no banco de dados do SQL Server, e é necessário entender e aplicar as melhores práticas para se obter uma melhor performance e integridade dos dados. O SharePoint 2010 suporta apenas as versões 2005 e 2008 (incluindo a versão R2) do SQL Server. Independente de qual versão for utilizada a única plataforma suportada é de 64 bits, porém a versão 2008 é a mais recomendada para ser utilizada com o SharePoint 2010, pois inclui novas funcionalidades e melhorias de performance, armazenamento e segurança. 
 
 
Solução

 Instalação do SQL Server 2008

 Ao instalar o SQL Server, devemos configurar uma instância para armazenar as bases de dados, essa instância pode ser configurada como:

  • Padrão (Default): Quando você não atribui um nome a instância, ela é acessada por padrão pelo nome do Computador. O nome de serviço da instância fica sendo então MSSQLSERVER e utiliza a porta padrão TCP/IP 1433.
  • Nomeada: Você pode atribuir qualquer nome a instância e assim conseguir gerenciar diversas instâncias pelo nome. Uma instância nomeada é identificada pela rede pelo nome do computador mais a instância, por exemplo NomeDoCompuator\NomeDaInstância.
Nota: Um servidor SQL Server Enterprise pode ter no máximo 50 instâncias, já a versão Standard pode ter no máximo 16.
Bases de Dados

 

 O SQL Server trabalha com dois tipos de Bases de Dados, as de Sistema que são criados no momentos da instalação e contém metadados e informações sobre a instalação e configuração do SQL, e as Bases de Dados de Usuário que são todos os outros bancos de dados que não são do sistema e são criadas para armazenar conteúdo no SQL. O SharePoint por padrão, cria dois bancos de dados na sua instalação, que é o banco SharePoint_Confg e o SharePoint_AdminContent.

 

Nota: O banco de dados de Configuração do SharePoint é o mais crítico, se ele for corrompido irá impedir que o SharePoint seja executado corretamente.

 

Os banco de dados de Sistema do SQL Server são também importantes para o SharePoint. Essas quatro bases de dados trabalham em conjunto no seu ambiente de SQL Server e são criadas independente da versão que utiliza da banco de dados, também podendo afetar a confiabilidade com o SharePoint. São elas:

 

  • Master: Esta base de dados é essencial para o funcionamento do SQL Server, se ela não estiver disponível a instância do SQL Server não será iniciada e o conteúdo do SharePoint não estará disponível.
  • Msdb: Esta base contém informações usadas pelo SQL Service Agent, como trabalhos agendados como backup, alertas, entre outros.
  • Model:  É o “modelo” a partir do qual todas as bases de usuários são criadas, incluindo os bancos de dados de conteúdo do SharePoint.
  • Tempdb: É aonde são armazenados temporariamente os dados durante as operações do SQL.

Os banco de dados de Usuário são criados na instalação do SharePoint e quando habilitamos determinados Service Applications, e são eles:

  • Usage and Health Data Collection Service Application: Registro de indicadores de saúde e métricas de uso e diagnóstico.
  • Search Service Application: Providência a funcionalidade de Search.
  • User Profle Service Application: Armazena user profiles e My Sites.
  • Web Analytics Service Application: Fornece uma análise sobre o trafego Web do site.
  • Managed Metadata Service Application: Para compartilhamento de Metadados.
  • Secure Store Service Application: É o substituto do SSO, esta base armazena o mapeamento de credenciais, nomes de contas e senhas.
  • Business Data Connectivity Service Application:  Armazenamento e proteção de content types externos e objetos relacionados.
  • State Service: Mantém informações temporárias para o InfoPath Forms Services. 

 Consumo de Memória RAM

O consumo de Memória RAM é muito intensivo no SQL Server. Para saber o quanto utilizar de Memória RAM, utilize estas diretrizes como uma base.

  • 8 GB de memória RAM para:
    •  Menos que 40 GB de base de dados de conteúdo
    • o   Menos que 15 bases de conteúdo
    • o   Menos que 800 usuários
    • o   Menos que 175 conexões simultâneas
  • 16 GB de memória  RAM para:
    • o    40 a 60 GB de base de dados de conteúdo
    • o   15 a 25 bases de conteúdo
    • o   800 a 1200 usuários
    • o   175 a 225 conexões simultâneas
  • 32 GB de memória RAM para:
    • o   Mais que 60 de base de dados de conteúdo
    • o   Mais que 25 bases de conteúdo
    • o   Mais que 1200 usuários
    • o   Mais que 225 conexões simultâneas

 

Nota: A otimização da utilização do SQL Server é afetada pela quantidade de memória RAM, quanto mais memória, as possibilidades de melhoria de experiência em utilização da ferramenta aumentam.

 

Melhores práticas para otimização do SQL para o SharePoint

Fazer algumas alterações nas configurações do SQL podem otimizar o desempenho e melhorar a experiência do usuário final do SharePoint. Algumas dos principais pontos para se obter mais aproveitamento na ferramenta são:

 Configurações de Memória do SQL Server

  • Localização das Bases de Dados
  • Configurações padrões da base de dados Model
  • Modelo de recuperação de banco de dados
  • Otimizações no Tempdb

 Veremos cada uma delas a seguir.

 Configuração de Memória do SQL Server

O SQL Server é uma aplicação que tem um uso muito intensivo de memória RAM. Ele faz utilização de dois tipos de memória:

         Memória Cache (Cache de dados): Responsável por armazenar páginas de dados na memória para que os dados acessados freqüentemente sejam acessados a partir dele.  Otimizando assim o desempenho e minimizando o número de I/O.

         Cache de processamento: Responsável por armazenar o procedimento e execução de consultas minimizando o número de vezes que eles tem que ser produzidos.

Por padrão cada instância do SQL altera seus requisitos de memória dinamicamente com base nos recursos disponíveis no sistema, porém, você pode configurar a quantidade de memória depois de instalar o SQL Server, alterando a quantidade de memória mínima e memória máxima. Você pode editar as configurações de memória acessando as propriedades da instância do SQL.

 

Figura 1: Configuração de memória para instância do SQL Server 2008

 A quantidade mínima de memória é usada para definir a quantidade de memória liberada para o SO quando não estiver sendo usado. Por padrão o SQL mantém configurado 0 MB de memória mínima, isso significa que toda a memória solicitada pelo SO é liberada para ele se não for mais necessário.

 A quantidade máxima de memória utilizada para o SQL Server. Por padrão ele atribui 2147483647 MB.

Para um bom desempenho do seu servidor de banco de dados, você deve configurar estas opções manualmente e restringir a quantidade  de memória que o SQL deve utilizar.

 Localização das Bases de Dados

 A localização das bases de dados é fundamental para o desempenho do SharePoint. Normalmente, durante a instalar o SQL, por padrão as bases são salvas no “C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\”, porém você pode alterar este caminho para melhorar o desempenho.

Existem três tipos de arquivos associados a um banco de dados do SQL Server, porém, um deles é opcional, são eles:

  • Primary data files: É o arquivo .mdf de banco de dados primário.
  • Transaction log files: É o arquivo .ldf que contém todas as modificações feitas para os arquivos de dados primário.
  • Secondary data files: O arquivo de dados .fdn secundário é opcional, e incluem todos os dados associados a um banco de dados

A fim de melhorar o desempenho de I/O, você deve separar os arquivos Primary Data Failes (.mdf) e Transaction Log Files (.ldf) em unidades físicas diferentes. Você também pode trabalhar com o armazenamento destes arquivos em RAID 5  ou RAID 10, fornecendo a redundância de dados em caso de falha de disco. 

 Configurações padrões da base de dados Model

 Como detalhado anteriormente, os bancos de dados de usuário criados pelo SharePoint herdam a maioria de das suas configurações do banco de dados de sistema Model. Depois de fazer a instalação do SharePoint, você deve fazer algumas configurações no banco de sistema Model. Estas configurações são feitas depois da instalação do SharePoint, mesmo ele já tendo criado dois bancos de dados de configurações, pois estes banco de administração não devem ser muito grande igual aos de bancos de dados de conteúdo.

 As configurações herdadas da base Model são:

  • Tamanho inicial dos dados primários
  • Tamanho inicial do log de transação
  • Modelo de recuperação (Recovery Model)

 É importante pré-configurar o tamanho dessas novas bases de dados, pois o tamanho inicial é pequeno e ela expandirá automaticamente usando um valor incremental. As configurações padrões para o arquivo de base de dados é de tamanho inicial de 2 MB e a de log é de 1 MB, sendo assim quando ele expandir automaticamente, usará estes valores pré-configurados. Se mantermos estas configurações e fizermos um upload de um documento de 20 MB em um site SharePoint, o banco de dados irá crescer automaticamente, cerca de 20 vezes para conseguir armazenar 20 MB, causando assim uma maior fragmentação e baixo desempenho.

  

Figura 2: Configuração de tamanho da base de dados Model

Você deve alterar estes valores analisando qual o melhor valor para o seu ambiente, pois não existe uma valor padrão, cada aplicação tem sua necessidade, assim ele garantirá uma melhor configuração e melhor desempenho.

Nota: Uma das boas práticas é manter o tamanho do banco de dados de conteúdo menor que 100 GB, mantendo assim um tempo bom para realizar recuperação de uma base de dados.

 Você pode configurar as bases de dados para diminuir o tamanho automaticamente usando o Auto Shrink, liberando assim espaço, mas tome cuidado ao utilizar esta opção. 

Nota: A opção Auto Shrink só deve ser utilizada em ambientes de desenvolvimento, pois esta opção provoca fragmentação e consome muitos recursos por ser executado a cada 30 minutos.

A melhor maneira de realizar este trabalho é fazê-lo manualmente, executando a operação durante as horas de menor atividade no servidor. Você pode utilizar o comando Transact-SQL:

USE Usuário;

GO

DBCC SHRINKFILE (NomeBanco, 7);

GO

Este banco não pode ser reduzido abaixo do seu tamanho original, no caso do exemplo acima, o número 7 significa o tamanho total do banco de dados.

  

Figura 3: Configuração de Auto Shrink base de dados Model

Uma das melhores práticas na instalação da instância do SQL Server para o SharePoint é também configurá-lo com o agrupamento Latin1_General_CI_AS_KS_WS, garantindo assim que ele é usado para todos os bancos criados nesta instância independente de onde é criado, se é pelo SQL Server ou pelo SharePoint.

 Em resumo, as configurações que devem ser atribuídas aos bancos de dados do SharePoint são:

  • Collation: deve ser Latin1_General_CI_AS_KS_WS
  • Recovery Model: Full para os bancos de dados de conteúdo
  • Transaction Log Files – Initial Size:  25% do tamanho inicial planejado
  • Transaction Log Files – Autogrowth: 25–50% do tamanho inicial planejado
  • Primary Data Files – Initial Size: Tamanho inicial planejado para quantidade de dados
  • Primary Data Files – Autogrowth: 25–50 % do tamanho inicial

  Modelo de recuperação de banco de dados 

É também importante alterar o modelo de recuperação de banco de dados na base Model para proporcionar a recuperação de informações em caso de falha de hardware. A configuração do modelo de recuperação determina como as informações do log de transações é administrador e depois esta informação é gravada na sua base de dados. Para o SharePoint, é interessante que suas bases estejam configuradas de modo Full, o que significa que será mantido todos os dados no log de transações depois de escrever para os arquivos de dados. Este modelo pode ser utilizado quando você precisa recuperar o conteúdo do SharePoint se um disco rígido quebrou.

 

Figura 4: Configuração de recovery model da base de dados Model

 O tipo de configuração pode afetar o desempenho do SharePoint e o log de transação pode ficar muito grande. Para reduzir o tamanho do log de transação é preciso fazer o backup completo da base.

Nota: Para ambientes de desenvolvimento modo de recuperação Simple é mais recomendado.

Otimizações no Tempdb

 Podemos melhorar ainda mais o desempenho do SharePoint se configurarmos o banco Tempdb corretamente. Todas informações gravadas neste banco são temporárias e limpadas quando é reiniciado o SQL Server. O banco Tempdb deve ser configurado da mesma forma que a base Model foi descrita, alterando as propriedades de tamanho da base, entre outros. Como melhor prática:

  • Pré-alocar o espaço para os arquivos do seu Temodb, definindo o tamanho inicial do arquivo maior.
  • Criar múltiplas bases para maximizar a largura de banda de disco, criando-os do mesmo tamanho.
  • Configure para crescer automaticamente.
  • Configure com o modelo de recuperação Simple.
  • Armazená-lo em um RAID 10. 

Recomendações de armazenamento

 É recomendado que você armazene seus dados em uma implementação RAID, segundo a seguinte recomendação:

  • Base de dados de conteúdo – RAID 5 ou 10
  • Transaction Log – RAID 10
  • Search Database – RAID 10
  • Tempdb – RAID 10
Anúncios