Descrição do suporte para arquivos de banco de dados de rede no SQL Server

Este artigo descreve o suporte para arquivos de banco de dados de rede em SQL Server e como configurar SQL Server para armazenar um banco de dados em um servidor em rede ou em um servidor de armazenamento NAS.

Versão original do produto: SQL Server
Número de KB original: 304261

Resumo

A Microsoft geralmente recomenda que você use uma SAN (Rede de Área de Armazenamento) ou disco anexado localmente para o armazenamento de seus arquivos de banco de dados do Microsoft SQL Server porque essa configuração otimiza SQL Server desempenho e confiabilidade. Por padrão, o uso de arquivos de banco de dados de rede armazenados em um servidor em rede ou em um servidor NAS (Armazenamento Anexado à Rede) não está habilitado para SQL Server.

No entanto, você pode configurar SQL Server para armazenar um banco de dados em um servidor em rede ou servidor NAS. Os servidores usados para essa finalidade devem atender aos requisitos SQL Server para ordenação de gravação de dados e garantias de gravação. Estes são detalhados na seção Mais Informações .

As seguintes condições descrevem o uso de arquivos de banco de dados de rede armazenados em um servidor em rede ou servidor NAS:

  • Esse uso está habilitado por padrão no Microsoft SQL Server 2008 R2 e versões posteriores.

  • Esse uso requer que o sinalizador de rastreamento de inicialização -T1807 funcione no Microsoft SQL Server 2008 e versões anteriores. Começando com SQL Server 2012, o sinalizador de rastreamento não é mais necessário. Para obter mais informações sobre como habilitar sinalizadores de rastreamento de inicialização, consulte Opções de Inicialização do Serviço de Mecanismo de Banco de Dados.

Dispositivos qualificados para WHQL (Laboratório de Qualidade de Hardware do Windows)

Servidores microsoft Windows e servidores em rede ou servidores de armazenamento NAS qualificados para WHQL (Windows Hardware Quality Lab) atendem automaticamente às garantias de ordenação e gravação de gravação de dados necessárias para dar suporte a um dispositivo de armazenamento SQL Server. A Microsoft dá suporte a problemas relacionados ao aplicativo e ao armazenamento nessas configurações.

Observação

Para ter suporte por SQL Server, a solução de armazenamento nas também deve atender a todos os requisitos listados no documento de download: SQL Server Requisitos do Programa de Confiabilidade de E/S.

Outros dispositivos

Se você usar um dispositivo de armazenamento não qualificado por WHQL com SQL Server que dá suporte às garantias de E/S para uso de banco de dados transacional descrito neste artigo, a Microsoft fornecerá suporte total para aplicativos baseados em SQL Server e SQL Server. No entanto, problemas com ou causados pelo dispositivo ou seu subsistema de armazenamento serão encaminhados ao fabricante do dispositivo. Se você usar um dispositivo de armazenamento não qualificado por WHQL que não dá suporte às garantias de E/S para uso de banco de dados transacional descrito neste artigo, a Microsoft não poderá fornecer suporte para aplicativos baseados em SQL Server ou SQL Server. Para determinar se seu dispositivo de armazenamento não qualificado por WHQL dá suporte às garantias de E/S para uso de banco de dados transacional descritas neste artigo ou são projetadas para uso de banco de dados, marcar com seu fornecedor de dispositivos. Além disso, entre em contato com o fornecedor de dispositivos para verificar se você implantou e configurou corretamente o dispositivo para uso de banco de dados transacional.

Mais informações

Por padrão, em SQL Server versões anteriores e 2008, você não pode criar um banco de dados SQL Server em um compartilhamento de arquivos de rede. Qualquer tentativa de criar um arquivo de banco de dados em um local de rede mapeado ou UNC gera uma das seguintes mensagens de erro:

  • Mensagem de erro 1

    5105 "Erro de ativação do dispositivo"

  • Mensagem de erro 2

    5110 "O arquivo 'file_name' está em um dispositivo de rede sem suporte para arquivos de banco de dados."

Esse comportamento é esperado. O sinalizador de rastreamento 1807 ignora o marcar e permite configurar SQL Server com arquivos de banco de dados baseados em rede. SQL Server e a maioria dos outros sistemas de banco de dados corporativos usam um log de transações e uma lógica de recuperação associada para manter a consistência do banco de dados transacional no caso de uma falha do sistema ou de um desligamento não gerenciado. Esses protocolos de recuperação dependem da capacidade de gravar diretamente na mídia de disco para que, quando uma solicitação de gravação de entrada/saída do sistema operacional (E/S) retornar ao gerenciador de banco de dados, o sistema de recuperação possa ter certeza de que a gravação está concluída ou que a conclusão da gravação pode ser garantida. Qualquer falha de qualquer componente de software ou hardware para honrar esse protocolo pode causar uma perda parcial ou total de dados ou corrupção no caso de uma falha no sistema. Para obter mais informações sobre esses aspectos dos protocolos de registro em log e recuperação no SQL Server, consulte Descrição de algoritmos de registro em log e armazenamento de dados que estendem a confiabilidade dos dados em SQL Server.

A Microsoft não dá suporte a SQL Server arquivos de banco de dados em rede no NAS ou servidores de armazenamento em rede que não atendem a esses requisitos de gravação e ordem de gravação.

Devido aos riscos de erros de rede que comprometem a integridade do banco de dados, juntamente com possíveis implicações de desempenho que podem resultar do uso de compartilhamentos de arquivos de rede para armazenar bancos de dados, a Microsoft recomenda que você armazene arquivos de banco de dados em subsistemas de disco locais ou em SANs (Redes de Área de Armazenamento).

Um sistema NAS (armazenamento anexado à rede) é um sistema de armazenamento baseado em arquivo ao qual os clientes anexam por meio do redirecionador de rede usando um protocolo de rede (como TCP/IP). Por padrão, se o acesso a um recurso de disco exigir que um compartilhamento seja mapeado ou se o recurso de disco aparecer como um servidor remoto por meio de um caminho UNC (por exemplo, \Servername\Sharename) na rede, o sistema de armazenamento de disco não terá suporte como local para bancos de dados SQL Server.

Problemas de desempenho

SQL Server, como outros sistemas de banco de dados corporativos, podem colocar uma grande carga em um subsistema de E/S. Na maioria dos aplicativos de banco de dados grandes, a configuração física de E/S e o ajuste desempenham uma função significativa no desempenho geral do sistema. Há três principais fatores de desempenho de E/S a considerar:

  • Largura de banda de E/S: a largura de banda agregada, normalmente medida em megabytes por segundo que podem ser sustentadas em um dispositivo de banco de dados.
  • Latência de E/S: a latência, normalmente medida em milissegundos, entre uma solicitação de E/S pelo sistema de banco de dados e o ponto em que a solicitação de E/S é concluída.
  • Custo da CPU: o custo da CPU do host, normalmente medido em microssegundos de CPU, para que o sistema de banco de dados conclua uma única E/S.

Qualquer um desses fatores de E/S pode se tornar um gargalo e você deve considerar todos esses fatores ao projetar um sistema de E/S para um aplicativo de banco de dados.

Em sua forma mais simples, uma solução NAS usa uma pilha de software de redirecionamento de rede padrão, interface de rede padrão cartão (NIC) e componentes Ethernet padrão. A desvantagem dessa configuração é que toda a E/S do arquivo é processada por meio da pilha de rede e está sujeita às limitações de largura de banda da própria rede. Isso pode criar problemas de desempenho e confiabilidade de dados, especialmente em programas que exigem altos níveis de E/S do arquivo, como SQL Server. Em algumas configurações do NAS testadas pela Microsoft, a taxa de transferência de E/S foi de um terço (1/3) a de uma solução de armazenamento anexada direta no mesmo servidor. Nessa mesma configuração, o custo da CPU para concluir uma E/S por meio do dispositivo NAS foi o dobro de uma E/S local. À medida que os dispositivos NAS e a infraestrutura de rede evoluem, essas taxas também podem melhorar em relação ao armazenamento ou SANs anexados diretos. Além disso, se os dados do aplicativo estiverem armazenados principalmente em cache no pool de buffers de banco de dados e você não encontrar nenhum dos gargalos de E/S descritos, o desempenho em um sistema baseado em NAS provavelmente será adequado para seu aplicativo.

Considerações sobre backup e restauração

SQL Server fornece a VDI (Virtual Device Interface) para backup. O VDI fornece aos fornecedores de software de backup um meio de alto desempenho, escalonável e confiável para executar backups quentes e para restaurar SQL Server bancos de dados.

O software de backup opera em arquivos de banco de dados armazenados em dispositivos NAS por meio de VDI sem suporte especial específico para o NAS. No entanto, isso resulta em muito tráfego de rede adicional durante o backup e a restauração. Durante o backup por meio do VDI, SQL Server lê os arquivos remotamente e passa os dados para o software de backup de terceiros que está em execução no computador SQL Server. A operação de restauração é análoga.

Para evitar a sobrecarga de rede extra, o fornecedor de backup deve fornecer suporte específico do NAS pelo fornecedor de backup e pelo fornecedor do NAS. SQL Server VDI permite que o software de backup aproveite as tecnologias de hardware (split-espelho) ou software (cópia na gravação) compatíveis com os dispositivos NAS para fazer cópias rápidas dos arquivos de banco de dados locais para o NAS. Essas tecnologias não só evitam a sobrecarga de copiar os arquivos na rede para backup, como também podem reduzir os tempos de restauração por ordens de magnitude.

Os backups armazenados no NAS são vulneráveis às mesmas falhas que afetam arquivos de banco de dados armazenados no NAS. Você deve considerar proteger esses backups copiando-os para mídia alternativa.

Cuidado

Você pode sofrer corrupção de banco de dados no backup se usar tecnologias de backup do NAS sem SQL Server suporte a VDI. Essa corrupção inclui páginas rasgadas ou inconsistências entre os arquivos de log e dados se eles forem armazenados em dispositivos separados. SQL Server pode não detectar as páginas rasgadas ou inconsistências até restaurar o banco de dados e acessar os dados corrompidos. A Microsoft não dá suporte ao uso de tecnologias de backup do NAS que não são coordenadas com SQL Server.

O suporte de backup e o suporte do fornecedor nas para SQL Server VDI varia. Verifique com seus fornecedores de software nas e backup para obter detalhes sobre o suporte ao VDI.

A Microsoft insta os clientes que estão considerando a implantação de uma solução NAS para bancos de dados SQL Server consultar o fornecedor do NAS para garantir que o design da solução de ponta a ponta seja para uso de banco de dados. Muitos fornecedores do NAS têm guias de prática recomendada e configurações certificadas para esse uso. A Microsoft também recomenda que os clientes avaliem seu desempenho de E/S para garantir que nenhum dos fatores de E/S mencionados anteriormente cause um gargalo em seu aplicativo.

A lista a seguir descreve o suporte para arquivos baseados em rede em clusters de Failover do SQL:

Observações adicionais

O uso incorreto do software de banco de dados com um produto NAS ou uso de banco de dados com um produto NAS configurado incorretamente pode resultar em perda de dados, incluindo perda total de banco de dados. Se o dispositivo NAS ou o software de rede não honrar completamente as garantias de dados, como ordenação de gravação ou gravação, hardware, software ou até mesmo falhas de energia poderão comprometer seriamente a integridade dos dados.

Referências