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 planejamento e da implantação de bancos de dados e instâncias do SQL Server baseados em Linux altamente disponíveis, bem como algumas das diferenças em relação às instalações baseadas no Windows. Como o SQL Server pode ser novo para profissionais Linux e o Linux pode ser novo para profissionais do SQL Server, o artigo às vezes apresenta conceitos que podem ser familiares para alguns e desconhecidos para outros.
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 possam ser instaladas com uma interface, a maioria não é, o que significa que quase tudo na camada do sistema operacional é feito via linha de comando. O termo comum para esta linha de comando no mundo Linux é um shell bash.
No Linux, muitos comandos precisam ser executados com privilégios elevados, assim como muitas coisas precisam ser feitas no Windows Server como administrador. Existem dois métodos principais para executar com privilégios elevados:
Executar no contexto do usuário adequado. Para alterar para um usuário diferente, use o comando
su. Sesufor executado por conta própria sem um nome de usuário, desde que você saiba a senha, você estará em um shell comoroot.A maneira mais comum e consciente de segurança para executar as coisas é usar
sudoantes de executar qualquer coisa. Muitos dos exemplos neste artigo usamsudo.
Alguns comandos comuns, cada um dos quais tem várias opções e parâmetros que podem ser pesquisados 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 os ficheiros podem ser copiados
Copiar arquivos de um servidor para outro é uma tarefa que qualquer pessoa que use o SQL Server no Linux deve ser capaz de fazer. Esta tarefa é muito importante para configurações AG.
Coisas como problemas de permissão podem existir no Linux e em instalações baseadas no Windows. No entanto, aqueles familiarizados com como copiar de servidor para servidor no Windows podem não estar familiarizados com como isso é feito no Linux. Um método comum é usar o utilitário scpde linha de comando , que significa cópia segura. Nos bastidores, scp usa OpenSSH. SSH significa shell seguro. Dependendo da distribuição Linux, o OpenSSH em si pode não estar instalado. Se não estiver, o OpenSSH precisa ser instalado primeiro. Para obter mais informações sobre como configurar o OpenSSH, consulte as informações nos seguintes links para cada distribuição:
Ao usar scp, tu deves fornecer as credenciais do servidor se ele não for a fonte ou o destino. Por exemplo, usando
scp MyAGCert.cer username@servername:/folder/subfolder
Copia o arquivo MyAGCert.cer para a pasta especificada no outro servidor. Você deve ter permissões - e possivelmente propriedade - do arquivo para copiá-lo, portanto chown pode ser necessário 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:
Compartilhamentos SMB baseados em Windows também podem ser usados; 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 aqueles em um ambiente misto, essa seria uma maneira de usar a infraestrutura existente para implantações do SQL Server baseadas em Linux.
Uma coisa importante é que a versão do Samba implantada 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 estiver usando o Samba para o compartilhamento e não para o Windows Server, o compartilhamento baseado no Samba deverá estar usando o Samba 4.0 ou posterior e, idealmente, o 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. O uso de NFS não é uma opção em implantações baseadas em Windows do SQL Server e só pode ser usado para implantações baseadas em Linux.
Configurar o firewall
Semelhante ao Windows, as distribuições Linux têm um firewall integrado. Se sua empresa estiver usando um firewall externo para os servidores, desativar os firewalls no Linux pode ser aceitável. No entanto, independentemente de onde o firewall está ativado, as portas precisam ser abertas. A tabela a seguir documenta 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 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 obter portas adicionais que podem ser usadas pelo Samba, consulte Uso da porta do Samba.
Por outro lado, o nome do serviço no Linux também pode ser adicionado como uma exceção em vez da porta; por exemplo, high-availability para o Pacemaker. Consulte a sua distribuição para obter os nomes, caso seja esta a direção que pretendes seguir. Por exemplo, no RHEL o comando para adicionar no Pacemaker é
sudo firewall-cmd --permanent --add-service=high-availability
Documentação do firewall
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, ele é o agendador do SQL Server para trabalhos 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 ainda precisa ativá-lo. Em instalações baseadas no Windows, o SQL Server Agent não é opcional.
Observação
Para aqueles que são novos no SQL Server, o SQL Server Agent é o agendador de tarefas interno do SQL Server. Você pode agendar coisas como backups e outras manutenções do SQL Server. Ao contrário de uma instalação baseada no Windows do SQL Server, onde o SQL Server Agent é um serviço completamente diferente, no Linux, o SQL Server Agent é executado no contexto do próprio SQL Server.
Quando AGs ou FCIs são configurados em uma configuração baseada no Windows, eles reconhecem cluster. 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 é o mssql-server-ha pacote, também conhecido como agente de recursos do SQL Server para Pacemaker. Para instalar o mssql-server-ha pacote, consulte Implantar um cluster Pacemaker para SQL Server no Linux.
Os outros pacotes opcionais para SQL Server no Linux, SQL Server Full-Text Search (mssql-server-fts) e SQL Server Integration Services (mssql-server-is), não são necessários para alta disponibilidade, seja para uma FCI ou uma 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 é um software de disponibilidade inteligente para Windows, Linux ou Docker que ajuda você a alcançar o tempo de inatividade planejado e não planejado mais próximo de zero, desbloqueia enormes economias de custos, simplifica drasticamente o gerenciamento e obtém consolidação física e lógica. - 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 |