Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server em Linux
A partir do SQL Server 2017 (14.x), o SQL Server tem suporte no Linux e no Windows. Como as implantações do SQL Server baseadas no Windows, os bancos de dados e instâncias do SQL Server precisam estar altamente disponíveis no Linux.
Este artigo aborda os aspetos técnicos do planeamento e implementação de instâncias e bases de dados SQL Server baseadas em Linux altamente disponíveis, destacando as principais diferenças em relação às instalações baseadas em Windows. Como tanto o SQL Server como o Linux podem ser novos para si, este artigo discute conceitos que talvez já lhe sejam familiares.
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 para implantações baseadas em Windows:
- Grupos de disponibilidade para SQL Server no Linux
- Instâncias de cluster de failover - SQL Server no Linux
- Introdução ao envio de logs no Linux
No Windows, as FCIs exigem sempre um cluster de failover subjacente do Windows Server (WSFC). Dependendo do cenário de implantação, um AG geralmente requer um WSFC subjacente, com exceção da nova variante Nenhum no SQL Server 2017 (14.x). Um WSFC não existe no Linux. A implementação de clusters no Linux é abordada no Pacemaker para grupos de disponibilidade e instâncias de cluster de failover no Linux.
Introdução rápida ao Linux
Embora algumas instalações Linux incluam uma interface, a maioria não tem. Usas a linha de comandos para quase tudo na camada do sistema operativo. O termo comum para esta linha de comandos no mundo Linux é shell, sendo o mais comum bash.
No Linux, precisas de privilégios elevados para executar muitos comandos, semelhante a precisar de privilégios de administrador no Windows Server. Podes executar comandos com privilégios elevados de duas formas:
Executa o comando como utilizador correto. Para mudar para outro utilizador, use o
sucomando. Se executarsusem nome de utilizador, entra numa shell como utilizadorrootse souber a palavra-passe.Use
sudoantes do comando. Este método é mais comum e mais seguro. Muitos exemplos neste artigo utilizamsudo.
Aqui estão alguns comandos comuns. Cada comando tem vários interruptores e opções que podes pesquisar online:
-
cd- alterar o diretório -
chmod- alterar as permissões de um arquivo ou diretório -
chown- alterar a propriedade de um arquivo ou diretório -
ls- mostrar o conteúdo de um diretório -
mkdir- criar uma pasta (diretório) numa unidade -
mv- mover um arquivo de um local para outro -
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 ativar serviços - Comandos do editor de texto. No Linux, existem várias opções de editor de texto, como vi e emacs.
Tarefas comuns para configurações de disponibilidade do SQL Server no Linux
Esta seção aborda tarefas que são comuns a todas as implantações do SQL Server baseadas em Linux.
Certifique-se de que pode copiar ficheiros
Qualquer pessoa que administre SQL Server no Linux deve conseguir copiar ficheiros de um servidor para outro. Esta tarefa é essencial para configurações AG.
Podem existir problemas de permissões tanto em instalações Linux como em Windows. No entanto, utilizadores do Windows familiarizados com copiar ficheiros de servidor para servidor podem não estar familiarizados com a forma como se faz no Linux. Um método comum é usar a utilidade scpde linha de comandos , que significa cópia segura. Nos bastidores, scp usa OpenSSH. SSH significa secure shell. Dependendo da distribuição Linux, o OpenSSH em si pode não estar instalado. Se não estiver, tens de instalar o OpenSSH.
Para mais informações sobre como configurar o OpenSSH para a sua distribuição Linux, veja:
Observação
A partir do SQL Server 2025 (17.x), o SUSE Linux Enterprise Server (SLES) não é suportado.
Quando usa scp, deve fornecer as credenciais do servidor se não for a origem ou destino. Por exemplo, o seguinte comando copia o ficheiro MyAGCert.cer para a pasta especificada no outro servidor:
scp MyAGCert.cer username@servername:/folder/subfolder
Deve ter permissões, e possivelmente a propriedade, do ficheiro para o copiar, por isso pode ser necessário usar chown antes de copiar. Da mesma forma, no lado recetor, o usuário certo precisa de acesso para manipular o arquivo. Por exemplo, para restaurar esse arquivo de certificado, o mssql usuário deve ser capaz de acessá-lo.
O Samba, que é a variante Linux do bloco de mensagens do servidor (SMB), também pode ser usado para criar compartilhamentos acessados por caminhos UNC, como \\SERVERNAME\SHARE. Para obter mais informações sobre como configurar o Samba, consulte as informações nos seguintes links para cada distribuição:
Observação
A partir do SQL Server 2025 (17.x), o SUSE Linux Enterprise Server (SLES) não é suportado.
Também pode usar partilhas SMB baseadas no Windows. As partilhas SMB não precisam de ser baseadas em Linux, desde que a parte cliente do Samba esteja configurada corretamente no servidor Linux que aloja o SQL Server e a partilha tenha o acesso correto. Para clientes num ambiente misto, esta abordagem permite usar a infraestrutura existente para implementações SQL Server baseadas em Linux.
A versão do Samba que implementas deve ser compatível com SMB 3.0. Quando o suporte a SMB foi adicionado no SQL Server 2012 (11.x), ele exigiu que todos os compartilhamentos oferecessem suporte ao SMB 3.0. Se usares Samba para a partilha e não o Windows Server, a partilha baseada em Samba deve usar Samba 4.0 ou posterior, e idealmente 4.3 ou posterior, que suporta SMB 3.1.1. Uma boa fonte de informação sobre SMB e Linux é o SMB3 no Samba.
Finalmente, usar uma partilha de sistema de ficheiros de rede (NFS) é uma opção. Não podes usar NFS em implementações SQL Server baseadas em Windows, e só pode ser usado para implementações baseadas em Linux.
Configurar o firewall
Semelhante ao Windows, as distribuições Linux têm um firewall integrado. Se a sua organização usar um firewall externo para os servidores, pode conseguir desativar os firewalls no Linux. No entanto, independentemente de onde ativas o firewall, precisas de abrir portas. A tabela seguinte lista as portas comuns necessárias para implementações SQL Server altamente disponíveis no Linux.
| Número da porta | Tipo | Descrição |
|---|---|---|
111 |
TCP/UDP | NFS - rpcbind/sunrpc |
135 |
TCP | Samba (se usado) - Mapeador de Pontos Finais |
137 |
UDP | Samba (se usado) - NetBIOS Name Service |
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 utilizado) |
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 de grupo de disponibilidade (AG); pode ser alterada ao criar o ponto de extremidade |
5403 |
TCP | Marcapasso |
5404 |
UDP | Pacemaker - Exigido pelo Corosync se estiver usando UDP multicast |
5405 |
UDP | Pacemaker - Exigido pelo Corosync |
21064 |
TCP | Pacemaker - Necessário para recursos que utilizam DLM |
| Variável | TCP | Porta de ponto final AG; o padrão é 5022 |
| Variável | TCP | NFS - porta para LOCKD_TCPPORT (encontrado em /etc/sysconfig/nfs no RHEL) |
| Variável | UDP | NFS - porta para LOCKD_UDPPORT (encontrado em /etc/sysconfig/nfs no RHEL) |
| Variável | TCP/UDP | NFS - porta para MOUNTD_PORT (encontrado em /etc/sysconfig/nfs no RHEL) |
| Variável | TCP/UDP | NFS - porta para STATD_PORT (encontrado em /etc/sysconfig/nfs no RHEL) |
Para outros portos que o Samba utiliza, veja Uso do Porto do Samba.
Por outro lado, pode adicionar o nome do serviço no Linux como exceção em vez da porta. Por exemplo, use high-availability para o Pacemaker. Consulte o seu sistema de distribuição para os nomes apropriados. No RHEL, por exemplo, o comando para adicionar o Pacemaker é:
sudo firewall-cmd --permanent --add-service=high-availability
Documentação do firewall
Observação
A partir do SQL Server 2025 (17.x), o SUSE Linux Enterprise Server (SLES) não é suportado.
Instalar pacotes do SQL Server para disponibilidade
Numa instalação de SQL Server baseada no Windows, alguns componentes são instalados mesmo numa instalação básica do motor, enquanto outros não. No Linux, somente o mecanismo do SQL Server é instalado como parte do processo de instalação. Tudo o resto é opcional. Para instâncias altamente disponíveis do SQL Server no Linux, dois pacotes devem ser instalados com o SQL Server:
- Agente do SQL Server (
mssql-server-agent) - o pacote de alta disponibilidade (HA) (
mssql-server-ha)
Embora o SQL Server Agent seja tecnicamente opcional, é o escalonador padrão para trabalhos SQL Server e é exigido pelo envio de logs, por isso 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 ainda precisa ativá-lo. Em instalações baseadas no Windows, o SQL Server Agent não é opcional.
Observação
O Agente do SQL Server é o agendador de tarefas incorporado para o SQL Server. É usado para agendar tarefas como backups e manutenção rotineira. No Windows, o SQL Server Agent funciona como um serviço separado. No Linux, corre no contexto do próprio SQL Server.
Quando configuras AGs ou FCIs numa configuração baseada em Windows, eles são compatíveis com clusters. Consciência de cluster significa que o SQL Server tem DLLs de recursos específicos que um WSFC conhece (sqagtres.dll e sqsrvres.dll para FCIs, hadrres.dll para AGs) e que são utilizadas pelo WSFC para garantir que a funcionalidade clusterizada do SQL Server esteja ativa, em execução e a funcionar corretamente.
Como o clustering é externo não apenas ao SQL Server, mas ao próprio Linux, a Microsoft teve que codificar o equivalente a uma DLL de recurso para implantações AG e FCI baseadas em Linux. Este recurso é o mssql-server-ha pacote, também conhecido como agente de recurso SQL Server para o Pacemaker. Para instalar o mssql-server-ha pacote, consulte Implantar um cluster Pacemaker para SQL Server no Linux.
No Linux, Full-Text Search (mssql-server-fts) e Integration Services (mssql-server-is) são pacotes SQL Server opcionais e não são obrigatórios para uma FCI ou AG.
Parceiros de alta disponibilidade e recuperação de desastres do SQL Server
Para fornecer alta disponibilidade e recuperação de desastres para seus serviços do SQL Server, escolha entre uma ampla variedade de ferramentas líderes do setor. Esta seção destaca as empresas parceiras da Microsoft com soluções de alta disponibilidade e recuperação de desastres que oferecem suporte ao SQL Server.
| Parceiro | Descrição |
|---|---|
| DH2i | O DxEnterprise é uma solução de gestão de disponibilidade para Windows, Linux e ambientes de contentores. Suporta alta disponibilidade, reduz o tempo de inatividade planeado e não planeado, e simplifica a gestão de recursos físicos e lógicos. - Implantar grupos de disponibilidade com DH2i DxEnterprise no Kubernetes - Tutorial: Configurar um grupo de disponibilidade Always On de três nós com DH2i DxEnterprise |
| HPE Serviceguard | O HPE SGLX oferece opções de monitorização e recuperação sensíveis ao contexto para Instâncias de Cluster de Failover e Grupos de Disponibilidade Always On. Maximize o tempo de atividade com o HPE SGLX sem comprometer a integridade e o desempenho dos dados. - Tutorial: Configure um grupo de disponibilidade Always On de três nós com o HPE Serviceguard para Linux. |
| Marcapasso | 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 detetar falhas de componentes e orquestrar os procedimentos de failover necessários para minimizar as interrupções nos aplicativos. - Marcapasso para grupos de disponibilidade e instâncias de cluster de failover no Linux - Implantar um cluster Pacemaker para SQL Server no Linux |