Instalar o SQL Server com o armazenamento de compartilhamento de arquivo SMB

Aplica-se a: SQL Server - somente Windows

Do SQL Server 2012 (11.x) em diante, os bancos de dados do sistema (mestre, modelo, msdb e tempdb) e os bancos de dados de usuário Mecanismo de Banco de Dados podem ser instalados com um servidor de arquivos de protocolo SMB 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 sobre 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 UNC, consulte UNC.

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 seguintes formatos de caminho UNC não têm suporte:

  • Caminho de loopback, como \\localhost\...\ ou \\127.0.0.1\...\

  • Compartilhamentos administrativos, como \\servername\x$

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

  • Unidades de rede mapeadas

Instruções DDL (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)

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  
    

    A partir do SQL Server 2022 (16.x), leia os Termos de Licença do Software Microsoft SQL Server em aka.ms/useterms.

    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 das várias opções de parâmetro de linha de comando no SQL Server, veja Instalar o SQL Server 2016 por meio do Prompt de Comando.

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

Sistemas operacionais Windows diferentes têm versões de protocolo SMB diferentes e a versão do protocolo SMB é transparente para o SQL Server. Você pode localizar os benefícios das versões diferentes do protocolo SMB com relação ao SQL Server.

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 informações sobre como habilitar esse recurso, confira O que há de novo em 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://mskb.pkisolutions.com/kb/2536493).
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: conta de serviço do SQL Server, conta de serviço do SQL Server Agent e usuários do Windows com funções de servidor admin.

    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 o SQL Server deve ter permissões FULL CONTROL na pasta de compartilhamento de arquivos SMB usada como o diretório de dados ou qualquer outra pasta de dados (diretório de banco de dados de usuário, diretório de log de banco de dados de usuário, diretório de tempdb, diretório de log tempdb, diretório de backup) durante a instalação de 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.

Limitações e problemas conhecidos

  • Ao desanexar um banco de dados do SQL Server que reside no armazenamento anexado por rede, você poderá ter um problema de permissão de banco de dados ao tentar reanexar o banco de dados do SQL Server . Para obter mais informações, consulte Erro 5120.

  • 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';  
      
  • Ao hospedar arquivos de dados SQL Server em compartilhamentos de arquivos SMB, toda E/S em relação aos arquivos passará pela interface de rede no servidor ou na máquina virtual. Verifique se há largura de banda de rede suficiente para dar suporte à E/S exigida pela carga de trabalho.

  • Indisponibilidade do compartilhamento de arquivos que hospeda os arquivos de dados SQL Server devido a problemas de conectividade de rede ou outra falha pode resultar em atrasos de E/S ou falhas no SQL Server. Para cargas de trabalho de missão crítica, verifique se há redundância interna na rede e no compartilhamento de arquivos e se o compartilhamento de arquivos dá suporte a failover transparente SMB 3.0, também conhecido como disponibilidade contínua.

Confira também

Planejando uma instalação do SQL Server
Configurar contas de serviço e permissões do Windows