Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Configurar o Grupo de Disponibilidade Always On do Microsoft SQL Server no OCI com Listener e Balanceador de Carga
Introdução
A implantação do Microsoft SQL Server na Oracle Cloud Infrastructure (OCI) oferece às empresas uma plataforma avançada para atender às metas de alta disponibilidade e continuidade dos negócios. Uma das abordagens mais eficazes para a alta disponibilidade do Microsoft SQL Server é o recurso de grupo de disponibilidade Always On. Os grupos de disponibilidade do Microsoft SQL Server Always On fornecem uma solução de alta disponibilidade e recuperação de desastres que permite failover contínuo e replicação de dados em várias instâncias do SQL Server.
Há várias maneiras de configurar um grupo de disponibilidade do Microsoft SQL Server. Uma abordagem é colocar suas máquinas virtuais do SQL Server em sub-redes separadas dentro da mesma rede virtual. Para implantar um grupo de disponibilidade do SQL Server usando uma arquitetura multisub-rede, consulte Implantando um banco de dados Microsoft SQL Server altamente disponível na OCI usando grupos de disponibilidade Always On e Implantar Grupos de Disponibilidade Always On do Microsoft SQL Server para HA e DR na OCI.
Seguindo este tutorial, você implantará e configurará um grupo de disponibilidade Always On do SQL Server no OCI usando máquinas virtuais em uma única sub-rede. Essa configuração inclui um Balanceador de Carga privado do OCI atuando como listener, permitindo conectividade perfeita do cliente e alta disponibilidade. Essa abordagem é ideal para ambientes onde a simplicidade e a confiabilidade são fundamentais, fornecendo failover automático, redundância de dados e acesso ininterrupto aos bancos de dados do SQL Server. Com essa configuração, sua infraestrutura está bem posicionada para oferecer suporte a cargas de trabalho de missão crítica com continuidade de negócios robusta. Para implantações de produção, considere a implementação de estratégias aprimoradas de monitoramento, registro em log, proteção de segurança e backup para complementar essa configuração de alta disponibilidade.
Se você estiver procurando implantar um grupo de disponibilidade Always On em uma única sub-rede, este tutorial fornecerá orientação passo a passo para configurá-lo usando máquinas virtuais do OCI e um Balanceador de Carga do OCI. Este tutorial orienta você na configuração de um grupo de disponibilidade Always On de dois nós no OCI usando máquinas virtuais em uma única sub-rede, com um Balanceador de Carga do OCI.
Arquitetura
A imagem a seguir mostra um exemplo de arquitetura de alto nível da solução.
Exclusões deste Tutorial
-
Configuração de serviços de domínio do Active Directory no OCI. Para obter mais informações, consulte Criando Serviços de Domínio do Active Directory no Oracle Cloud Infrastructure.
-
Instalação e configuração do SQL Server no OCI. Para obter mais informações, consulte Microsoft SQL Server no Oracle Cloud Infrastructure.
-
Configuração do Cluster de Failover do Windows. Para obter mais informações, consulte Criar o cluster.
-
Configuração da testemunha de compartilhamento de arquivos. Para obter mais informações, consulte Adicionar um compartilhamento de arquivos para um quorum de cluster.
Objetivos
- Implante e configure grupos de disponibilidade Always On do SQL Server no OCI usando máquinas virtuais em uma única sub-rede. Ele abrange a configuração do grupo de disponibilidade Always On do SQL Server 2022 e um Balanceador de Carga do OCI para permitir alta disponibilidade e failover automático com um listener para conectividade perfeita do cliente.
Pré-requisitos
-
Uma compreensão básica dos grupos de disponibilidade do SQL Server Always On é recomendada.
-
Acesso a uma tenancy do OCI com um compartimento definido para hospedar todos os recursos relacionados.
-
Uma VCN (Virtual Cloud Network) configurada com pelo menos uma sub-rede privada.
-
Pelo menos 6 endereços IP privados serão necessários para este tutorial.
- 1 para controlador de domínio
- 2 para dois nós do SQL Server
- 1 para IP do Cluster de Failover do Windows Server
- 1 para IP do listener do grupo de disponibilidade do SQL Server Always On
- 1 para o OCI Load Balancer
Como no endereço IP flutuante do OCI não há suporte, o endereço IP do listener do grupo de disponibilidade de SQL (AG) e do Balanceador de Carga do OCI será diferente.
-
Regras de lista de segurança configuradas para implementação dos grupos de disponibilidade do SQL Server Always On - portas
1433
e5022
abertas. -
Três instâncias de máquina virtual do OCI do Windows Server 2022.
- Uma VM configurada como controlador de domínio do Active Directory.
- Duas VMs com o SQL Server 2022 e o SQL Server Management Studio (SSMS) instalados.
-
É necessária uma testemunha de compartilhamento de arquivos para suportar a configuração de quorum.
- Para simplificar, para este tutorial, use uma pasta compartilhada no controlador de domínio para hospedar a testemunha de compartilhamento de arquivos.
- Para ambientes de produção, considere a implementação de modelos de quórum mais robustos.
-
Um Cluster de Failover do Windows deve ser configurado entre as duas VMs do SQL Server.
Tarefa 1: Configurar o SQL Server Always On Availability Group
Tarefa 1.1: Ativar Grupos de Disponibilidade nos Nós do SQL Server (DevSQL1
e DevSQL2
)
-
No nó
DevSQL1
, vá para Iniciar, pesquise e abra o SQL Server 2022 Configuration Manager. -
Selecione SQL Server Services, clique com o botão direito do mouse no serviço SQL Server (MSSQLSERVER) e selecione Propriedades. Se você estiver usando uma instância nomeada, será SQL Server (
INSTANCENAME
). -
Clique em Sempre em Grupos de Disponibilidade e selecione Ativar grupos de disponibilidade Sempre em.
-
Selecione Aplicar e clique em OK.
-
Reinicie o serviço SQL Server.
-
Repita a etapa 1 a 5 no outro nó (
DevSQL2
).
Tarefa 1.2: Criar um Banco de Dados no primeiro Nó do SQL Server (DevSQL1
) e fazer um Backup Completo
-
No nó
DevSQL1
, vá para Iniciar, pesquise SSMS e abra o SQL Server Management Studio (SSMS). -
Conecte-se ao SQL Server principal. Neste tutorial, é
DevSQL1
. -
Em Object Explorer, clique com o botão direito do mouse em Bancos de Dados e clique em Novo Banco de Dados.
-
Em Geral, digite Nome do banco de dados e, em Opções, selecione Completo como Modelo de Recuperação.
-
Clique em OK.
-
Para fazer um backup completo, clique com o botão direito do mouse em banco de dados "AdventureWorks2022", Tarefas e clique em Backup.
-
Em Geral, certifique-se de que o Tipo de Backup seja Completo e, em Destino, selecione Disco como Backup para, clique em Adicionar e informe o local e o nome do arquivo do backup completo.
-
Clique em OK.
Você também pode fazer um backup usando Transact-SQL. Por exemplo:
Transact-SQL:
BACKUP DATABASE [AdventureWorks2022] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\AdventuresWork2022.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2022-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Tarefa 1.3: Criar um Grupo de Disponibilidade
-
Abra o SQL Server Management Studio, conecte-se a
DevSQL1
. Em Object Explorer, clique com o botão direito do mouse em Sempre na Alta Disponibilidade e clique em Assistente do Novo Grupo de Disponibilidade.Isso abrirá uma página Novo Grupo de Disponibilidade. Clique em Próximo.
-
Em Especificar Opções, digite Nome do Grupo de Disponibilidade como
DevAG
, Tipo de cluster como Cluster de Failover do Windows Server e clique em Próximo. -
Em Selecionar Bancos de Dados, selecione o banco de dados que você deseja adicionar a esse grupo de disponibilidade. Em status, você deverá ver Atender aos pré-requisitos para poder adicionar o banco de dados ao grupo de disponibilidade. Se houver algum problema, ele informará o motivo e precisamos tomar as ações necessárias para atender aos pré-requisitos. Por exemplo, um backup completo do banco de dados pode estar pendente.
-
Em Especificar Réplicas, adicione as réplicas. Clique em Réplicas para garantir que ambos os nós sejam adicionados em Réplicas de Disponibilidade e altere o Modo de Disponibilidade para Compromisso Síncrono. Você pode ter um Modo de Disponibilidade diferente de acordo com seus requisitos.
-
Clique em Pontos Finais para garantir que os dois pontos finais estejam usando a mesma porta e que essas portas estejam abertas no firewall e na lista de segurança. Por padrão, será a porta
5022
.Observação: Para este tutorial, manteremos todas as outras opções como padrão. Não crie listener a partir de agora.
-
Em seguida, precisamos selecionar a sincronização de dados. Selecione Implantação Automática e clique em Próximo.
-
Em Validação, certifique-se de que a validação seja Sucesso e corrija quaisquer falhas. Você pode ignorar a advertência Verificando a configuração do listener, pois criaremos o listener posteriormente. Clique em Próximo e, depois que o grupo de disponibilidade for criado, selecione Fechar para fechar o assistente.
-
No Object Explorer, expanda Sempre na Alta Disponibilidade e, em seguida, expanda Grupos de Disponibilidade. Agora você deverá ver o novo grupo de disponibilidade neste contêiner. Clique com o botão direito do mouse no grupo de disponibilidade e selecione Mostrar Painel.
-
Abra o Failover Cluster Manager, vá para Iniciar, pesquise e abra o Failover Cluster Manager. Conecte-se ao seu cluster e clique em Atribuições.
O nome do grupo de disponibilidade que usamos é uma atribuição no cluster e esse grupo de disponibilidade não tem um endereço IP para conexões de cliente porque não configuramos um listener. Configuraremos o listener após criarmos um balanceador de carga do OCI.
Nesse estágio, o grupo de disponibilidade foi configurado com sucesso com duas réplicas do SQL Server, permitindo failover entre as instâncias. No entanto, a conectividade do cliente usando o listener ainda não é possível, pois um listener não foi configurado.
Tarefa 2: Criar um Balanceador de Carga do OCI e Configurar um Listener de Grupo de Disponibilidade
Existem várias abordagens para configurar um listener de grupo de disponibilidade Always On do SQL Server no OCI, incluindo o uso de uma configuração multisub-rede ou a atribuição de um endereço IP secundário a cada máquina virtual. Embora esses métodos sejam válidos, eles geralmente exigem configuração adicional ou scripts personalizados para gerenciar a movimentação de IP durante eventos de failover.
Se você quiser implantar um grupo de disponibilidade Always On em um único ambiente de sub-rede e preferir evitar scripts personalizados, o uso de um Balanceador de Carga privado do OCI oferecerá uma solução simplificada e confiável. Esta seção o guiará pela configuração do Balanceador de Carga do OCI para atuar como listener para seu grupo de disponibilidade Always On, permitindo conectividade contínua e tratamento de failover em uma única sub-rede.
Tarefa 2.1: Reservar um Endereço IP Privado Estático para o Listener do Grupo de Disponibilidade Always On do SQL Server
Reserve um IP privado estático no OCI que será designado posteriormente ao IP do listener do grupo de disponibilidade Always On do SQL Server no Cluster de Failover do Windows. Estamos reservando esse endereço IP para garantir que nenhum outro serviço ou VMs receba esse endereço IP no OCI. Esse endereço IP não será usado pelos clientes para estabelecer conexão, mas ajudará o failover do grupo de disponibilidade e garantirá que o Balanceador de Carga do OCI esteja roteando a conexão para o servidor principal correto.
-
Vá para a Console do OCI, navegue até Rede e clique em Redes Virtuais na Nuvem.
-
Vá para a VCN que você está usando para os nós do SQL Server.
-
Clique em Sub-redes, vá para a sub-rede que está sendo usada para nós do SQL Server.
-
Em Recursos, clique em IPv4 addresses.
-
Clique em Adicionar endereço IPv4 reservado.
-
Informe o endereço IP que você deseja designar ao listener do grupo de disponibilidade Always On do SQL Server. Este pode ser qualquer endereço IP não utilizado, observe que os clientes não poderão se conectar usando este endereço IP remotamente. Este é um IP fictício que estaremos designando ao listener do grupo de disponibilidade Always On do SQL Server no Cluster de Failover do Windows. Para este tutorial, usamos
10.0.0.148
.
Tarefa 2.2: Criar um Balanceador de Carga Privado do OCI
Observação: os campos que não são mencionados aqui são mantidos como padrão.
-
Vá para a Console do OCI, navegue até Rede e Balanceadores de Carga.
-
Clique em Balanceador de Carga e Criar balanceador de carga.
-
Informe o Nome do balanceador de carga e selecione Privado como Tipo de visibilidade.
-
Em Escolher Rede, selecione o nome do compartimento da VCN e da sub-rede que serão usadas para esse balanceador de carga. Use a mesma VCN e sub-rede que você usou para nós do SQL Server.
-
Em Gerenciamento, selecione o compartimento no qual esse balanceador de carga será criado. Certifique-se de ativar Impedir a exclusão do balanceador de carga, listeners e backends quando eles ainda estiverem ativos para evitar interrupção não intencional de serviços e clicar em Próximo.
-
Em Backends, especifique uma Política de balanceamento de carga como Round-robin Ponderado.
-
Em Selecionar servidores de backend, adicione os nós do SQL Server;
DevSQL1
eDevSQL2
. Altere o número da porta para1433
; caso você esteja usando uma porta diferente para o SQL Server, digite o respectivo número da porta. -
Em Especificar política de verificação de integridade, use o Protocolo TCP com o número de porta
59999
. Você pode usar qualquer porta não utilizada. -
Mantenha todas as outras definições como Padrão e estamos usando a lista de segurança para a VCN selecionada. Clique em Próximo.
-
Em Configurar Listener, digite o nome do Listener, o tráfego TCP e o número da Porta como
1433
. Mantendo todas as outras definições como padrão. -
Clique em Próximo, revise a configuração e clique em Enviar.
-
Depois que o OCI Load Balancer for provisionado, você poderá anotar o endereço IP privado do OCI Load Balancer indo para Rede, Balanceadores de Carga e clicando em Balanceador de Carga.
Neste tutorial, o endereço IP do balanceador de carga é 10.0.0.149
. Este é o endereço IP que os clientes usarão para estabelecer conexão com o listener do grupo de disponibilidade Always On do SQL Server.
Tarefa 2.3: Configurar o Listener do Grupo de Disponibilidade Always On do SQL Server
-
RDP (Remote Desktop Protocol) na VM que está hospedando a réplica principal. Neste tutorial, é
DevSQL1
. Para confirmar isso, você pode abrir o Gerenciador de Clusters de Failover do Windows, as Atribuições e, para a atribuição do grupo de disponibilidade de SQL, procure a coluna Nó do Proprietário para confirmar qual nó é a réplica principal. -
Vá para Redes e anote o Nome da rede como uma variável
$ClusterNetworkName
. -
Adicione o ponto de acesso do cliente. O ponto de acesso do cliente é o nome da rede que os aplicativos usam para estabelecer conexão com os bancos de dados em um grupo de disponibilidade.
-
No Failover Cluster Manager, expanda o nome do cluster e selecione Atribuições.
-
Clique em Atribuições, clique com o botão direito do mouse no nome do grupo de disponibilidade, selecione Adicionar Recurso e clique em Ponto de Acesso do Cliente.
-
Em Nome, crie um nome para esse novo listener. O nome do novo listener é o nome da rede que os aplicativos usam para estabelecer conexão com bancos de dados no grupo de disponibilidade do SQL Server.
-
Clique em Próximo duas vezes e selecione Finalizar. Não coloque o listener ou o recurso on-line neste momento.
-
-
Coloque off-line a atribuição de cluster para o grupo de disponibilidade. Em Gerenciador de Cluster de Failover, clique em Atribuições, clique com o botão direito do mouse na atribuição e selecione Interromper Atribuição.
-
Configure o recurso IP para o grupo de disponibilidade.
-
Clique em Recursos e expanda o ponto de acesso do cliente que você criou. O ponto de acesso do cliente está off-line.
-
Clique com o botão direito do mouse no recurso IP e selecione Propriedades. Observe o nome do endereço IP como uma variável
$IPResourceName
. Neste tutorial, o nome éIP Address 10.0.0.0
. -
Clique em Endereço IP e selecione Endereço IP Estático. Defina o endereço IP como o endereço IP que reservamos na Tarefa 2.1. Neste tutorial, é
10.0.0.148
.
-
-
Torne o grupo de disponibilidade do SQL Server dependente do ponto de acesso do cliente.
-
No Failover Cluster Manager, clique em Atribuições e selecione seu grupo de disponibilidade.
-
Clique em Recursos, em Outros Recursos, clique com o botão direito do mouse no recurso do grupo de disponibilidade e clique em Propriedades.
-
Clique em Dependências e adicione o nome do ponto de acesso do cliente (o listener).
-
Clique em OK.
-
-
Torne o ponto de acesso do cliente dependente do endereço IP.
-
No Failover Cluster Manager, clique em Atribuições e selecione seu grupo de disponibilidade.
-
Clique em Recursos, clique com o botão direito do mouse no ponto de acesso do cliente em Nome do Servidor e clique em Propriedades.
-
Clique em Dependências e verifique se o endereço IP é uma dependência. Caso contrário, defina uma dependência do endereço IP. Se vários recursos estiverem listados, verifique se os endereços IP têm OU, não AND, dependências e clique em OK.
-
-
Defina os parâmetros de cluster no Windows PowerShell.
-
Copie o script PowerShell a seguir para uma das suas instâncias do SQL Server. Atualize as variáveis do seu ambiente.
-
Localize o nome
$ClusterNetworkName
no Failover Cluster Manager selecionando Redes, clique com o botão direito do mouse na rede e selecione Propriedades. O$ClusterNetworkName
está em Nome na guia Geral. -
$IPResourceName
é o nome dado ao recurso de endereço IP no Failover Cluster Manager. Isso é encontrado no Failover Cluster Manager selecionando Atribuições, selecione o grupo de disponibilidade do SQL Server ou o nome do FCI, selecione Recursos em Nome do Servidor, clique com o botão direito do mouse no recurso de endereço IP e clique em Propriedades. O valor correto está em Nome na guia Geral. -
$ListenerILBIP
é o endereço IP que você criou no balanceador de carga do Azure para o listener do grupo de disponibilidade. Localize$ListenerILBIP
no Failover Cluster Manager na mesma página de propriedades que o nome do recurso do listener AG/FCI do SQL Server. -
$ListenerProbePort
é a porta configurada no balanceador de carga do Azure para o listener do grupo de disponibilidade, como59999
. Qualquer porta TCP não utilizada é válida.
$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "<IPResourceName>" # The IP address resource name. $ListenerILBIP = "<n.n.n.n>" # The IP address that we reserved in Task 2.1. This is the static IP address for the SQL Server AG Listener that you reserved in OCI Console. [int]$ListenerProbePort = <nnnnn> Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
Para este tutorial, usamos o seguinte:
$ClusterNetworkName = "Cluster Network 1" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "IP Address 10.0.0.0" # The IP address resource name. $ListenerILBIP = "10.0.0.148" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal. [int]$ListenerProbePort = 59999 Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
-
-
Defina os parâmetros do cluster executando o script PowerShell em um dos nós do cluster.
-
-
A adição de uma exclusão impedirá que outros processos do sistema sejam atribuídos dinamicamente à mesma porta. Para esse cenário, configure as exclusões a seguir em todos os nós do cluster.
netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent
-
Coloque on-line a atribuição de cluster para o grupo de disponibilidade. Em Gerenciador de Cluster de Failover, clique em Atribuições, clique com o botão direito do mouse na atribuição e selecione Iniciar Atribuição.
-
No SQL Server Management Studio, defina a porta do listener.
-
Abra o SQL Server Management Studio e conecte-se à réplica principal.
-
Vá para Sempre na Alta Disponibilidade, Grupos de disponibilidade e clique em listeners do grupo de disponibilidade.
-
Clique com o botão direito do mouse no nome do listener criado na Tarefa 2.2 e clique em Propriedades.
-
Em Porta, especifique o número da porta do listener do grupo de disponibilidade e clique em OK. O valor padrão é
1433
.
-
-
No seu servidor DNS, certifique-se de que haja um registro de Host A para o endereço IP privado do OCI Load Balancer apontando para o nome do listener do grupo de disponibilidade SQL. Certifique-se de que o objeto de computador do listener SQL não possa atualizar os registros DNS. Isso é para garantir que, após o failover, a entrada de DNS não seja atualizada para o endereço IP que está sendo usado no Cluster de Failover do Windows.
Neste tutorial, atualizamos o registro Host A do listener do grupo de disponibilidade SQL com o endereço IP
10.0.0.149
em vez de10.0.0.148
e atualizamos a Segurança para garantir que o objeto de computadorSQLAGL$
não possa atualizar esse registro e só possa lê-lo.
Pode haver mais métodos para conseguir isso, você pode implementar sua própria solução. O objetivo é ter um registro DNS para o listener do grupo de disponibilidade do SQL Server com endereço IP do Balanceador de Carga do OCI.
Agora você pode testar a conexão com o listener do grupo de disponibilidade do SQL Server a partir do SSMS ou de qualquer outra ferramenta cliente.
Links Relacionados
-
Implantar Grupos de Disponibilidade do Microsoft SQL Server Always On para HA e DR na OCI
-
Grupos de disponibilidade de escala de leitura na Oracle Cloud Infrastructure
-
Criando Serviços de Domínio do Active Directory no Oracle Cloud Infrastructure
Confirmações
- Autor - Deviprasad Moolya (Arquiteto de Nuvem Principal)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Configure Microsoft SQL Server Always On Availability Group on OCI with Listener and Load Balancer
G33422-01
Copyright ©2025, Oracle and/or its affiliates.