Compartilhar via


Noções básicas de disponibilidade do SQL Server para implantações do Linux

Aplica-se a:SQL Server no Linux

Começando com o SQL Server 2017 (14.x), o SQL Server é compatível no Linux e no Windows. Como as implantações do SQL Server baseadas no Windows, os bancos de dados e as instâncias do SQL Server precisam estar altamente disponíveis no Linux.

Este artigo aborda os aspectos técnicos de planejamento e implantação de instâncias e bancos de dados do SQL Server baseados em Linux altamente disponíveis e destaca as principais diferenças em relação às instalações baseadas no Windows. Como o SQL Server ou o Linux podem ser novos para você, este artigo aborda conceitos que podem já ser familiares para você.

Opções de disponibilidade do SQL Server para implantações do Linux

Além de backup e restauração, os mesmos três recursos de disponibilidade estão disponíveis no Linux como nas implantações baseadas no Windows:

No Windows, as FCIs exigem sempre um WSFC (cluster de failover do Windows Server) subjacente. Dependendo do cenário de implantação, um AG geralmente exige um WSFC subjacente, com a exceção sendo a nova variante None no SQL Server 2017 (14.x). Um WSFC não existe no Linux. A implementação de clustering no Linux é discutida em Pacemaker para grupos de disponibilidade e instâncias de cluster de failover no Linux.

Um rápido manual do Linux

Embora algumas instalações do Linux incluam uma interface, a maioria não. Use a linha de comando para quase tudo na camada do sistema operacional. O termo comum para essa linha de comando no mundo linux é um shell, sendo o mais comum bash.

No Linux, você precisa de privilégios elevados para executar muitos comandos, semelhantes à necessidade de privilégios de administrador no Windows Server. Você pode executar comandos com privilégios elevados de duas maneiras:

  1. Execute o comando como o usuário adequado. Para alterar para um usuário diferente, use o su comando. Se você executar su sem um nome de usuário, você entra em um shell como root se souber a senha.

  2. Use sudo antes do comando. Esse método é mais comum e mais seguro. Muitos exemplos neste artigo usam sudo.

Aqui estão alguns comandos comuns. Cada comando tem vários interruptores e opções que você pode pesquisar online.

  • cd - alterar o diretório
  • chmod – alterar as permissões de um arquivo ou diretório
  • chown – alterar as propriedade de um arquivo ou diretório
  • ls – mostrar o conteúdo de um diretório
  • mkdir – criar uma pasta (diretório) em uma unidade
  • mv – mover um arquivo de uma localização para outra
  • ps – mostrar todos os processos de trabalho
  • rm – excluir um arquivo localmente em um servidor
  • rmdir – excluir uma pasta (diretório)
  • systemctl – iniciar, parar ou habilitar serviços
  • Comandos do editor de texto. No Linux, há várias opções de editor de texto, como vi e emacs.

Tarefas comuns de configurações de disponibilidade do SQL Server no Linux

Esta seção aborda as tarefas comuns a todas as implantações do SQL Server baseadas no Linux.

Verifique se você pode copiar arquivos

Qualquer pessoa que administre o SQL Server no Linux deve ser capaz de copiar arquivos de um servidor para outro. Essa tarefa é essencial para configurações de AG.

Podem existir problemas de permissão em instalações baseadas no Linux e no Windows. No entanto, os usuários do Windows familiarizados com como copiar arquivos de servidor para servidor podem não estar familiarizados com a maneira como ele é feito no Linux. Um método comum é usar o utilitário scpde linha de comando, que significa cópia segura. Nos bastidores, scp o usa o OpenSSH. SSH significa shell seguro. Dependendo da distribuição do Linux, o OpenSSH pode não estar instalado. Se não estiver, você precisará instalar o OpenSSH.

Para obter mais informações sobre como configurar o OpenSSH para sua distribuição do Linux, consulte:

Observação

A partir do SQL Server 2025 (17.x), não há suporte para SLES (SUSE Linux Enterprise Server).

Ao usar scp, você deverá fornecer as credenciais do servidor se ele não for a origem ou o destino. Por exemplo, o comando a seguir copia o arquivo MyAGCert.cer para a pasta especificada no outro servidor:

scp MyAGCert.cer username@servername:/folder/subfolder

Você deve ter permissões e, possivelmente, propriedade do arquivo para copiá-lo, portanto, talvez seja necessário usar chown antes de copiar. De modo semelhante, no lado de recebimento, o usuário certo precisa de acesso para manipular o arquivo. Por exemplo, para restaurar esse arquivo de certificado, o usuário mssql deve ser capaz de acessá-lo.

Samba, que é a variante do Linux do protocolo SMB, também pode ser usado para criar compartilhamentos acessados por caminhos UNC, como \\SERVERNAME\SHARE. Para obter mais informações sobre como configurar Samba, confira as informações nos links a seguir para cada distribuição:

Observação

A partir do SQL Server 2025 (17.x), não há suporte para SLES (SUSE Linux Enterprise Server).

Você também pode usar compartilhamentos SMB baseados no Windows. Os compartilhamentos SMB não precisam ser baseados em Linux, desde que a parte do cliente do Samba esteja configurada corretamente no servidor Linux que hospeda o SQL Server e o compartilhamento tenha o acesso certo. Para clientes em um ambiente misto, essa abordagem permite que você use a infraestrutura existente para implantações do SQL Server baseadas em Linux.

A versão do Samba que você implanta deve estar em conformidade com o SMB 3.0. Quando o suporte a SMB foi adicionado no SQL Server 2012 (11.x), ele exigia que todos os compartilhamentos fossem compatíveis com o SMB 3.0. Se você usar o Samba para o compartilhamento e não o Windows Server, o compartilhamento baseado em Samba deverá usar o Samba 4.0 ou posterior e, idealmente, 4.3 ou posterior, que dá suporte ao SMB 3.1.1. Uma boa fonte de informações sobre SMB e Linux é SMB3 in Samba.

Por fim, o uso de um compartilhamento NFS (Network File System) é uma opção. Você não pode usar o NFS em implantações baseadas no Windows do SQL Server e ele só pode ser usado para implantações baseadas em Linux.

Configurar o firewall

Semelhantes ao Windows, as distribuições do Linux têm um firewall interno. Se sua organização usar um firewall externo para os servidores, você poderá desabilitar os firewalls no Linux. No entanto, independentemente de onde você habilita o firewall, você precisa abrir portas. A tabela a seguir lista as portas comuns necessárias para implantações altamente disponíveis do SQL Server no Linux.

Número da Porta Tipo Descrição
111 TCP/UDP NFS – rpcbind/sunrpc
135 TCP Samba (se usado) – Mapeador de Ponto de extremidade
137 UDP Samba (se usado) – Serviço de nome NetBIOS
138 UDP Samba (se usado) – Datagrama NetBIOS
139 TCP Samba (se usado) – Sessão NetBIOS
445 TCP Samba (se usado) – SMB sobre TCP
1433 TCP SQL Server – porta padrão; se desejar, pode mudar com mssql-conf set network.tcpport <portnumber>
2049 TCP, UDP NFS (se usado)
2224 TCP Pacemaker – usado por pcsd
3121 TCP Pacemaker – Obrigatório se houver nós remotos do Pacemaker
3260 TCP Iniciador iSCSI (se usado) – Pode ser alterado em /etc/iscsi/iscsid.config (RHEL), mas deve corresponder à porta do destino iSCSI
5022 TCP SQL Server – porta padrão usada para um ponto de extremidade do AG; pode ser alterada ao criar o ponto de extremidade
5403 TCP Pacemaker
5404 UDP Pacemaker – Exigido por Corosync se estiver usando o UDP multicast
5405 UDP Pacemaker – Exigido por Corosync
21064 TCP Pacemaker – Exigido pelos recursos que usam a DLM
Variável TCP Porta do ponto de extremidade do AG; o padrão é 5022
Variável TCP NFS – porta para LOCKD_TCPPORT (encontrada em /etc/sysconfig/nfs no RHEL)
Variável UDP NFS – porta para LOCKD_UDPPORT (encontrada em /etc/sysconfig/nfs no RHEL)
Variável TCP/UDP NFS – porta para MOUNTD_PORT (encontrada em /etc/sysconfig/nfs no RHEL)
Variável TCP/UDP NFS – porta para STATD_PORT (encontrada em /etc/sysconfig/nfs no RHEL)

Para outras portas que o Samba usa, consulte Uso da Porta de Samba.

Por outro lado, você pode adicionar o nome do serviço em Linux como uma exceção em vez da porta. Por exemplo, use high-availability para o Pacemaker. Consulte sua distribuição para obter os nomes apropriados. No RHEL, por exemplo, o comando a ser adicionado ao Pacemaker é:

sudo firewall-cmd --permanent --add-service=high-availability

Documentação do firewall

Observação

A partir do SQL Server 2025 (17.x), não há suporte para SLES (SUSE Linux Enterprise Server).

Instalar pacotes do SQL Server para disponibilidade

Em uma instalação do SQL Server baseada no Windows, alguns componentes são instalados mesmo em uma instalação básica do mecanismo, enquanto outros não são. No Linux, somente o mecanismo do SQL Server é instalado como parte do processo de instalação. Tudo o mais é opcional. Para instâncias do SQL Server altamente disponíveis no Linux, dois pacotes devem ser instalados com o SQL Server:

  • SQL Server Agent (mssql-server-agent)
  • o pacote de HA (alta disponibilidade) (mssql-server-ha)

Embora o SQL Server Agent seja tecnicamente opcional, ele é o agendador padrão para trabalhos do SQL Server e é exigido pelo envio de logs, portanto, a instalação é recomendada.

No SQL Server 2017 (14.x) com CU 4 e versões posteriores, o SQL Server Agent está incluído no pacote do mecanismo de banco de dados, mas você ainda precisa habilitá-lo. Em instalações baseadas no Windows, o SQL Server Agent não é opcional.

Observação

O SQL Server Agent é o agendador de trabalho interno do SQL Server. Ele é usado para agendar tarefas como backups e manutenção de rotina. No Windows, o SQL Server Agent é executado como um serviço separado. No Linux, ele é executado no contexto do próprio SQL Server.

Quando você configura AGs ou FCIs em uma configuração baseada no Windows, elas são compatíveis com clusters. O reconhecimento de cluster significa que o SQL Server tem DLLs de recurso específicas que um WSFC conhece (sqagtres.dll e sqsrvres.dll para FCIs, hadrres.dll para AGs) e são usadas pelo WSFC para garantir que a funcionalidade clusterizada do SQL Server esteja ativa, em execução e funcionando corretamente.

Como o clustering é externo não apenas ao SQL Server como ao próprio Linux, a Microsoft teve de codificar o equivalente a uma DLL de recurso para implantações de FCI e AG baseadas no Linux. Esse recurso é o mssql-server-ha pacote, também conhecido como o agente de recursos do SQL Server para Pacemaker. Para instalar o pacote mssql-server-ha, confira Implantar um cluster do Pacemaker para o SQL Server no Linux.

No Linux, Full-Text Search (mssql-server-fts) e Integration Services (mssql-server-is) são pacotes opcionais do SQL Server e não são necessários para uma FCI ou AG.

Parceiros de alta disponibilidade e recuperação de desastre do SQL Server

Para fornecer alta disponibilidade e recuperação de desastres para seus serviços do SQL Server, escolha entre as várias ferramentas do setor. Esta seção destaca empresas parceiras da Microsoft com soluções de recuperação de desastres e disponibilidade alta com suporte ao Microsoft SQL Server.

Partner (parceiro) Descrição
DH2i DxEnterprise é uma solução de gerenciamento de disponibilidade para ambientes Windows, Linux e de contêiner. Ele dá suporte à alta disponibilidade, reduz o tempo de inatividade planejado e não planejado e simplifica o gerenciamento de recursos físicos e lógicos.

- Implantar grupos de disponibilidade com o DH2i DxEnterprise no Kubernetes
- Tutorial: configurar um grupo de disponibilidade Always On de três nós com o DH2i DxEnterprise
HPE Serviceguard O HPE SGLX oferece opções de monitoramento e recuperação sensíveis ao contexto para a Instância de Cluster de Failover e os Grupos de Disponibilidade Always On. Maximize o tempo de atividade com HPE SGLX sem comprometer a integridade de dados e o desempenho.

- Tutorial: configurar um grupo de disponibilidade Always On de três nós com o HPE Serviceguard para Linux.
Pacemaker O Pacemaker é um gerenciador de recursos de cluster de alta disponibilidade de código aberto. Com o Corosync, um sistema de comunicação de grupo de código aberto, o Pacemaker pode detectar falhas de componentes e orquestrar os procedimentos de failover necessários para minimizar interrupções nos aplicativos.

- Pacemaker para Grupos de Disponibilidade e instâncias de cluster de failover no Linux
- Implantar um cluster do Pacemaker para o SQL Server no Linux