Compartilhar via


Instalar o SQL Server com o compartilhamento de arquivos SMB como uma opção de armazenamento

A partir SQL Server 2012, bancos de dados do sistema (Mestre, Modelo, MSDB e TempDB) e bancos de dados de usuário do Mecanismo de Banco de Dados podem ser instalados com o servidor de arquivos SMB (Bloco de Mensagens do Servidor) como uma opção de armazenamento. Isso se aplica a instalações autônomas do SQL Server e a FCI (instalações de cluster de failover) do SQL Server .

Observação

O fluxo de arquivos não tem suporte em um compartilhamento de arquivos SMB.

Considerações de instalação

Formatos de compartilhamento de arquivo SMB:

Embora especificando o compartilhamento de arquivos SMB, os formatos de caminho a seguir têm suporte da UNC (Convenção de Nomenclatura Universal) para bancos de dados autônomos e FCI.

  • \\Nomedoservidor\Nomedocompartilhamento\

  • \\Nomedoservidor\Nomedocompartilhamento

Para obter mais informações sobre a Convenção universal de nomenclatura, consulte UNC (https://go.microsoft.com/fwlink/?LinkId=245534).

O caminho UNC de loopback (um caminho UNC cujo nome de servidor é localhost, 127.0.0.1 ou o nome do computador local) não tem suporte. Como um caso especial, o SQL Server usando o cluster de servidor de arquivos que está hospedado no mesmo nó em que o SQL Server está sendo executado também não tem suporte. Para impedir essa situação, é recomendável que o SQL Server e o cluster de servidor de arquivos seja criado em clusters do Windows separados.

Os formatos de caminho UNC abaixo não têm suporte:

  • Caminho de Loopback como, por exemplo, \\localhost\..\ ou \\127.0.0.1\...\

  • Compartilhamentos administrativos, por exemplo, \\servername\x$

  • Outros formatos de caminho UNC como \\?\x:\

  • Unidades de rede mapeadas.

Instruções DLL (linguagem de definição de dados) com suporte

As instruções DDL de Transact-SQL e os procedimentos armazenados de mecanismo de banco de dados a seguir dão suporte a compartilhamentos de arquivos SMB:

  1. CREATE DATABASE (SQL Server Transact-SQL)

  2. ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)

  5. sp_attach_db (Transact-SQL)

  6. sp_attach_single_file_db (Transact-SQL)

Opções de instalação

  • Na página de interface do usuário de instalação "Configuração do Mecanismo de Banco de Dados", guia "Diretórios de Dados", defina o parâmetro Diretório raiz de dados como "\\fileserver1\share1".

  • Na instalação do prompt de comando, especifique "/INSTALLSQLDATADIR" como "\\fileserver1\share1".

    Veja aqui a sintaxe de exemplo para instalar o SQL Server em um servidor Autônomo usando a opção de compartilhamento de arquivos SMB:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<StrongPassword>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS  
    

    Para instalar uma instância de cluster de failover do SQL Server de nó único com o Mecanismo de Banco de Dados e o Serviços de análise, a instância padrão:

    setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="xxxxxxxxxxx" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="xxxxxxxxxxx" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="xxxxxxxxxxx" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS  
    

    Para obter mais informações sobre o uso de várias opções de parâmetro de linha de comando no SQL Server 2014, consulte Instalar SQL Server 2014 no Prompt de Comando.

Considerações sobre o sistema operacional (protocolo SMB versus SQL Server)

Diferentes sistemas operacionais Windows têm diferentes versões de protocolo SMB e a versão do protocolo SMB é transparente para SQL Server. Você pode encontrar os benefícios de diferentes versões de protocolo SMB em relação ao SQL Server 2014.

Sistema operacional versão do protocolo SMB2 Benefícios do SQL Server
Windows Server 2008 SP 2 2,0 Desempenho aprimorado em relação a versões de SMB anteriores.

Durabilidade, que ajuda a recuperar de pequenos problemas de rede temporários.
Windows Server 2008 R2 SP1, incluindo o Server Core 2.1 Suporte para MTU grande, que beneficia transferências de dados grandes, como backup e restauração de SQL. Este recurso deve ser habilitado pelo usuário. Para obter mais detalhes sobre como habilitar esse recurso, consulte Novidades no SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Melhorias de desempenho significativas, especificamente para cargas de trabalho de estilo OLTP do SQL. Estas melhorias de desempenho exigem a aplicação de um hotfix. Para obter mais informações sobre o hotfix, confira aqui (https://go.microsoft.com/fwlink/?LinkId=237320).
Windows Server 2012incluindo o Server Core 3.0 O suporte para failover transparente de compartilhamentos de arquivos fornece zero tempo de inatividade sem a intervenção de administrador exigida para DBA do SQL ou administrador de servidor de arquivos em configurações do cluster de servidor de arquivos.

Suporte para ES usando diversas interfaces de rede simultaneamente, assim como tolerância para falhas de interface de rede.

Suporte para interfaces de rede com recursos de RDMA.

Para obter mais informações sobre esses recursos e o protocolo SMB, confira Visão geral do protocolo SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Suporte SoFS (Servidor de arquivo de expansão) com disponibilidade contínua.
Windows Server 2012 R2, incluindo o Server Core 3.2 O suporte para failover transparente de compartilhamentos de arquivos fornece zero tempo de inatividade sem a intervenção de administrador exigida para DBA do SQL ou administrador de servidor de arquivos em configurações do cluster de servidor de arquivos.

Suporte para IO usando diversas interfaces de rede simultaneamente, assim como tolerância para falhas de interface de rede, usando SMB Multichannel.

Suporte para interfaces de rede com recursos de RDMA usando SMB Direct.

Para obter mais informações sobre esses recursos e o protocolo SMB, confira Visão geral do protocolo SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Suporte SoFS (Servidor de arquivo de expansão) com disponibilidade contínua.

Otimizado para leitura/gravação aleatória pequena de E/S comum para o SQL Server OLTP.

O MTU (Unidade de transmissão máxima) é ativado por padrão, o que melhora significativamente o desempenho em grandes transferências sequenciais como data warehouse do SQL Server e o backup de banco de dados ou restauração.

Considerações de segurança

  • A conta de serviço SQL Server e a conta de serviço SQL Server Agent devem ter as permissões de compartilhamento FULL CONTROL e permissões NTFS nas pastas de compartilhamento SMB. A conta de serviço do SQL Server podem ser uma conta de domínio ou uma conta de sistema se for usado um servidor de arquivos SMB. Para obter mais informações sobre permissões de compartilhamento e NTFS, confira Permissões de compartilhamento e NTFS em um servidor de arquivos (https://go.microsoft.com/fwlink/?LinkId=245535).

    Observação

    As permissões de compartilhamento FULL CONTROL e as permissões NTFS nas pastas de compartilhamento SMB devem ser restritas a: SQL Server conta de serviço, SQL Server Agent conta de serviço e usuários do Windows com funções de servidor administrador.

    Era recomendado usar a conta de domínio como uma conta de serviço do SQL Server. Se a conta do sistema for usada como uma conta de serviço, conceda as permissões para a conta do computador no formato: <domain_name>\<computer_name>$.

    Observação

    • Durante instalação do SQL Server, será necessário especificar a conta de domínio como uma conta de serviço se o compartilhamento de arquivos SMB for especificado como uma opção de armazenamento. Com o compartilhamento de arquivos SMB, a conta de Sistema somente poderá ser especificada como uma conta de serviço após a instalação do SQL Server .
    • Contas virtuais não podem ser autenticadas em um local remoto. Todas as contas virtuais usam a permissão da conta de máquina. Provisione a conta do computador no formato <domain_name>\<computer_name>$.
  • A conta usada para instalar SQL Server deve ter permissões FULL CONTROL na pasta de compartilhamento de arquivos SMB usada como o diretório de dados ou quaisquer outras pastas de dados (diretório de banco de dados do usuário, diretório de log do banco de dados do usuário, diretório tempDB, diretório de log tempDB, diretório de backup) durante a Instalação do Cluster.

  • A conta usada para instalar o SQL Server deve ter privilégios SeSecurityPrivilege no servidor de arquivos SMB. Para conceder esse privilégio, use o console Política de Segurança Local no servidor de arquivos para adicionar a conta de instalação do SQL Server à política Gerenciar a auditoria e o log de segurança. Essa configuração está disponível na seção Atribuições de Direitos do Usuário, em Políticas Locais, no console Política de Segurança Local.

Problemas conhecidos

  • Depois de desanexar um banco de dados SQL Server 2014 que reside no armazenamento anexado à rede, você poderá encontrar um problema de permissão de banco de dados ao tentar reanexar o banco de dados SQL Server. O problema é definido neste artigo do KB (https://go.microsoft.com/fwlink/?LinkId=237321). Para resolver este problema, consulte a seção Mais Informações no artigo da Base de Dados de Conhecimento.

  • Alguns terceiros, como o dispositivo NetApp, não dão suporte a todas as chamadas de API do SQL Server. Com eles, você pode obter:
    2015-06-04 13:14:19.97 spid9s Erro: 17053, Severidade: 16, Estado: 1.
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : Erro do sistema operacional 1(Função incorreta.) encontrado.

    Para NTFS, o erro é inofensivo. No entanto, para ReFS, o erro pode causar uma degradação significativa no desempenho.

  • Se o compartilhamento de arquivos SMB é usado como uma opção de armazenamento para uma instância clusterizada do SQL Server, por padrão o log de diagnóstico do cluster de failover do SQL Server não pode ser gravado no compartilhamento de arquivos porque a DLL de recursos do SQL Server não tem a permissão de leitura/gravação no compartilhamento de arquivos. Para resolver esse problema, tente um dos seguintes métodos:

    1. Conceda permissões de leitura/gravação no compartilhamento de arquivos a todos os objetos de computador no cluster.

    2. Defina o local dos logs de diagnóstico como um caminho de arquivo local. Consulte o seguinte exemplo:

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      

Consulte Também

Planejando uma instalação do SQL Server
Tópicos de instruções sobre a instalação
Configurar contas de serviço e permissões do Windows