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
Para criar um grupo de disponibilidade distribuído, você deve criar dois grupos de disponibilidade, cada um com seu próprio ouvinte. Em seguida, você combina esses grupos de disponibilidade em um grupo de disponibilidade distribuído. As etapas a seguir fornecem um exemplo básico no Transact-SQL. Este exemplo não cobre todos os detalhes da criação de grupos de disponibilidade e ouvintes; em vez disso, concentra-se em destacar os principais requisitos.
Para obter uma visão geral técnica dos grupos de disponibilidade distribuídos, consulte Grupos de disponibilidade distribuídos.
Pré-requisitos
Para configurar um grupo de disponibilidade distribuído, você deve ter o seguinte:
- Uma versão suportada do SQL Server.
Observação
Se você configurou o ouvinte para seu grupo de disponibilidade em seu SQL Server na VM do Azure usando um DNN (nome de rede distribuído), não há suporte para a configuração de um grupo de disponibilidade distribuída sobre seu grupo de disponibilidade. Para saber mais, consulte Interoperabilidade de funcionalidades do SQL Server em VM no Azure com listener AG e DNN.
Permissões
Requer a permissão CREATE AVAILABILITY GROUP no servidor para criar um grupo de disponibilidade e sysadmin realizar failover de um grupo de disponibilidade distribuído.
Definir os pontos de extremidade de espelhamento do banco de dados para escutar em todos os endereços IP
Verifique se os pontos de extremidade de espelhamento do banco de dados podem se comunicar entre os diferentes grupos de disponibilidade no grupo de disponibilidade distribuída. Se um grupo de disponibilidade estiver definido para uma rede específica no ponto de extremidade de espelhamento do banco de dados, o grupo de disponibilidade distribuído não funcionará corretamente. Em cada servidor que hospeda uma réplica no grupo de disponibilidade distribuída, defina o ponto de extremidade de espelhamento do banco de dados para escutar em todos os endereços IP (LISTENER_IP = ALL).
Crie um ponto de extremidade de espelhamento de banco de dados para escutar em todos os endereços IP
Por exemplo, o script a seguir cria um novo ponto de extremidade de espelhamento de banco de dados na porta TCP 5022 que escuta em todos os endereços IP.
CREATE ENDPOINT [aodns-hadr]
STATE = STARTED
AS TCP
(
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING
(
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
Alterar um ponto de extremidade de espelhamento de banco de dados existente para escutar todos os endereços IP
Por exemplo, o script a seguir altera um ponto de extremidade de espelhamento de banco de dados existente para escutar todos os endereços IP.
ALTER ENDPOINT [aodns-hadr]
AS TCP
(
LISTENER_IP = ALL
);
GO
Criar primeiro grupo de disponibilidade
Criar o grupo de disponibilidade principal no primeiro cluster
Crie um grupo de disponibilidade no primeiro WSFC (Cluster de Failover do Windows Server). Neste exemplo, o grupo de disponibilidade é nomeado ag1 para o banco de dados db1. A réplica primária do grupo de disponibilidade principal é conhecida como primária global em um grupo de disponibilidade distribuída. Server1 é o primário global neste exemplo.
CREATE AVAILABILITY GROUP [ag1]
FOR DATABASE db1
REPLICA ON N'server1' WITH (ENDPOINT_URL = N'TCP://server1.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server2' WITH (ENDPOINT_URL = N'TCP://server2.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Observação
O exemplo anterior usa a sementeação automática, onde SEEDING_MODE está configurado para AUTOMATIC tanto para as réplicas como para o Grupo de Disponibilidade Distribuída. Essa configuração define as réplicas secundárias e o grupo de disponibilidade secundária para serem preenchidos automaticamente sem a necessidade de backup e restauração manuais do banco de dados primário.
Associar as réplicas secundárias ao grupo de disponibilidade principal
Todas as réplicas secundárias devem ser adicionadas ao grupo de disponibilidade com ALTER AVAILABILITY GROUP com a opção JOIN. Como a propagação automática é usada neste exemplo, você também deve chamar ALTER AVAILABILITY GROUP com a opção GRANT CREATE ANY DATABASE . Essa configuração permite que o grupo de disponibilidade crie o banco de dados e comece a semeá-lo automaticamente a partir da réplica primária.
Neste exemplo, os comandos a seguir são executados na réplica secundária, server2, para ingressar no grupo de ag1 disponibilidade. O grupo de disponibilidade tem permissão para criar bancos de dados no secundário.
ALTER AVAILABILITY GROUP [ag1] JOIN
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE
GO
Observação
Quando o grupo de disponibilidade cria um banco de dados em uma réplica secundária, ele define o proprietário do banco de dados como a conta que executou a ALTER AVAILABILITY GROUP instrução para conceder permissão para criar qualquer banco de dados. Para obter informações completas, consulte Conceder permissão para criar banco de dados em réplica secundária para grupo de disponibilidade.
Criar um ouvinte para o grupo de disponibilidade principal
Em seguida, adicione um ouvinte para o grupo de disponibilidade principal no primeiro WSFC. Neste exemplo, o ouvinte é chamado ag1-listener. Para obter instruções detalhadas sobre como criar um ouvinte, consulte Criar ou configurar um ouvinte de grupo de disponibilidade (SQL Server).
ALTER AVAILABILITY GROUP [ag1]
ADD LISTENER 'ag1-listener' (
WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) ,
PORT = 60173);
GO
Criar segundo grupo de disponibilidade
Em seguida, no segundo WSFC, crie um segundo grupo de disponibilidade, ag2. Nesse caso, o banco de dados não é especificado, porque é automaticamente semeado do grupo de disponibilidade principal. A réplica primária do grupo de disponibilidade secundário é conhecida como o encaminhador em um grupo de disponibilidade distribuído. Neste exemplo, server3 é o encaminhador.
CREATE AVAILABILITY GROUP [ag2]
FOR
REPLICA ON N'server3' WITH (ENDPOINT_URL = N'TCP://server3.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server4' WITH (ENDPOINT_URL = N'TCP://server4.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Observação
- O grupo de disponibilidade secundário deve usar o mesmo ponto de extremidade de espelhamento de banco de dados (neste exemplo, a porta 5022). Caso contrário, a replicação será interrompida após um failover local.
- Os grupos de disponibilidade subjacentes devem estar no mesmo modo de disponibilidade - ambos os grupos de disponibilidade devem estar no modo de confirmação síncrona ou ambos devem estar no modo de confirmação assíncrona. Se não tens certeza de qual usar, coloca ambos em modo de confirmação assíncrona até estares pronto para efetuar o failover.
Associar as réplicas secundárias ao grupo de disponibilidade secundário
Neste exemplo, os comandos a seguir são executados na réplica secundária, server4, para ingressar no grupo de ag2 disponibilidade. O grupo de disponibilidade é então permitido a criar bases de dados no secundário para dar suporte ao provisionamento automático.
ALTER AVAILABILITY GROUP [ag2] JOIN
ALTER AVAILABILITY GROUP [ag2] GRANT CREATE ANY DATABASE
GO
Criar um ouvinte para o grupo de disponibilidade secundário
Em seguida, adicione um ouvinte para o grupo de disponibilidade secundário no segundo WSFC. Neste exemplo, o ouvinte é chamado ag2-listener. Para obter instruções detalhadas sobre como criar um ouvinte, consulte Criar ou configurar um ouvinte de grupo de disponibilidade (SQL Server).
ALTER AVAILABILITY GROUP [ag2]
ADD LISTENER 'ag2-listener' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173);
GO
Criar grupo de disponibilidade distribuída no primeiro cluster
No primeiro WSFC, crie um grupo de disponibilidade distribuído (nomeado distributedAG neste exemplo). Use o comando CREATE AVAILABILITY GROUP com a opção DISTRIBUTED . O parâmetro AVAILABILITY GROUP ON especifica os grupos ag1 de disponibilidade de membros e ag2.
- de semeadura automática
- Semeadura manual
Para criar seu grupo de disponibilidade distribuída usando a propagação automática, use o seguinte código Transact-SQL:
CREATE AVAILABILITY GROUP [distributedAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Observação
O LISTENER_URL especifica o ouvinte para cada grupo de disponibilidade, juntamente com o ponto de extremidade de espelhamento de banco de dados do grupo de disponibilidade. Neste exemplo, essa é a porta 5022 (não a porta 60173 usada para criar o ouvinte). Se você estiver usando um balanceador de carga, por exemplo, no Azure, adicione uma regra de balanceamento de carga para a porta do grupo de disponibilidade distribuída. Adicione a regra para a porta de escuta, além da porta da instância do SQL Server.
Cancelar a semeadura automática para o encaminhador
Se, por qualquer motivo, for necessário cancelar a inicialização do forwarder antes que os dois grupos de disponibilidade sejam sincronizados, ALTER o grupo de disponibilidade distribuído para definir o parâmetro SEEDING_MODE do forwarder como MANUAL e cancele imediatamente o seeding. Execute o comando na primária global:
-- Cancel automatic seeding. Connect to global primary but specify DAG AG2
ALTER AVAILABILITY GROUP [distributedAG]
MODIFY
AVAILABILITY GROUP ON
'ag2' WITH
( SEEDING_MODE = MANUAL );
Junte-se ao grupo de disponibilidade distribuída no segundo cluster
Em seguida, junte-se ao grupo de disponibilidade distribuída no segundo WSFC.
- de semeadura automática
- Semeadura manual
Para ingressar no seu grupo de disponibilidade distribuído usando a sementeira automática, use o seguinte código Transact-SQL:
ALTER AVAILABILITY GROUP [distributedAG]
JOIN
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Junte-se ao banco de dados no secundário do segundo grupo de disponibilidade
Se o segundo grupo de disponibilidade foi configurado para usar sementeira automática, avance para o passo 2.
Se o segundo grupo de disponibilidade estiver usando semeadura manual, então restaure o backup que você fez no primário global para o secundário do segundo grupo de disponibilidade.
RESTORE DATABASE [db1] FROM DISK = '<full backup location>' WITH NORECOVERY; RESTORE LOG [db1] FROM DISK = '<log backup location>' WITH NORECOVERY;Depois que o banco de dados na réplica secundária do segundo grupo de disponibilidade estiver em um estado de restauração, você precisará associá-lo manualmente ao grupo de disponibilidade.
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [ag2];
Alternância automática num grupo de disponibilidade distribuído
Como o SQL Server 2022 (16.x) introduziu o suporte a grupos de disponibilidade distribuída para a configuração, as instruções para fazer failover de uma disponibilidade distribuída são diferentes para o SQL Server 2022 e versões posteriores do que para o REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT SQL Server 2019 e versões anteriores.
Para um grupo de disponibilidade distribuída, o único tipo de failover suportado é o iniciado manualmente pelo utilizador FORCE_FAILOVER_ALLOW_DATA_LOSS. Portanto, para evitar a perda de dados, você deve executar etapas adicionais (descritas em detalhes nesta seção) para garantir que os dados sejam sincronizados entre as duas réplicas antes de iniciar o failover.
No caso de uma emergência em que a perda de dados é aceitável, você pode iniciar um failover sem garantir a sincronização de dados executando:
ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
Pode utilizar o mesmo comando para alternar para o encaminhador, assim como para regressar ao primário global.
No SQL Server 2022 (16.x) e posterior, você pode definir a REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT configuração para um grupo de disponibilidade distribuído, que foi projetado para garantir que não haja perda de dados quando um grupo de disponibilidade distribuído fizer failover. Se essa configuração estiver definida, siga as etapas nesta seção para fazer failover do seu grupo de disponibilidade distribuída. Se você não quiser usar a REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT configuração, siga as instruções para fazer failover de um grupo de disponibilidade distribuído no SQL Server 2019 e versões anteriores.
Observação
A configuração REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT como 1 significa que a réplica primária aguarda a confirmação das transações na réplica secundária antes de serem confirmadas na réplica primária, o que pode prejudicar o desempenho. Embora não seja necessário limitar ou interromper transações no primário global para que o grupo de disponibilidade distribuída sincronize no SQL Server 2022 (16.x), isso pode melhorar o desempenho para transações de usuário e sincronização de grupo de disponibilidade distribuída com REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT definido como 1.
Etapas para garantir que não haja perda de dados
Para garantir que não haja perda de dados, você deve primeiro configurar o grupo de disponibilidade distribuída para não oferecer suporte a nenhuma perda de dados seguindo estas etapas:
- Para se preparar para o failover, verifique se o encaminhador e o primário global estão no modo . Caso contrário, defina-os através
SYNCHRONOUS_COMMITdo ALTER AVAILABILITY GROUP. - Defina o grupo de disponibilidade distribuída como confirmação de sincronização, tanto no primário global como no encaminhador.
- Aguarde até que o grupo de disponibilidade distribuída seja sincronizado.
- Na primária global, defina a configuração do grupo
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITde disponibilidade distribuída como 1 usando ALTER AVAILABILITY GROUP. - Verifique se todas as réplicas nos AGs locais e no grupo de disponibilidade distribuída estão íntegras e se o grupo de disponibilidade distribuída está SINCRONIZADO.
- Na réplica primária global, defina a função de grupo de disponibilidade distribuída como
SECONDARY, o que torna o grupo de disponibilidade distribuída indisponível. - No encaminhador (o novo primário pretendido), faça failover do grupo de disponibilidade distribuída usando ALTER AVAILABILITY GROUP com
FORCE_FAILOVER_ALLOW_DATA_LOSS. - No novo secundário (a réplica primária global anterior), defina o grupo
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITde disponibilidade distribuída como 0. - Opcional: Se os grupos de disponibilidade estiverem em uma distância geográfica que causa latência, altere o modo de disponibilidade para
ASYNCHRONOUS_COMMIT. Isso reverte a alteração da primeira etapa, se necessário.
Exemplo de T-SQL
Esta seção fornece as etapas em um exemplo detalhado para fazer failover do grupo de disponibilidade distribuído nomeado distributedAG usando o Transact-SQL. O ambiente de exemplo tem um total de 4 nós para o grupo de disponibilidade distribuída. O grupo global de disponibilidade de host primário N1 e N2ag1, e o grupo de disponibilidade do encaminhador de host N3 e N4ag2. O grupo distributedAG de disponibilidade distribuída envia as alterações de ag1 para ag2.
Consulta para verificar as primárias dos grupos de disponibilidade local que formam o grupo de disponibilidade distribuído
SYNCHRONOUS_COMMIT. Execute o seguinte T-SQL diretamente no encaminhador e no primário global:SELECT DISTINCT ag.name AS [Availability Group], ar.replica_server_name AS [Replica], ar.availability_mode_desc AS [Availability Mode] FROM sys.availability_replicas AS ar INNER JOIN sys.availability_groups AS ag ON ar.group_id = ag.group_id INNER JOIN sys.dm_hadr_database_replica_states AS rs ON ar.group_id = rs.group_id AND ar.replica_id = rs.replica_id WHERE ag.name IN ('ag1', 'ag2') AND rs.is_primary_replica = 1 ORDER BY [Availability Group]; --if needed, to set a given replica to SYNCHRONOUS for node N1, default instance. If named, change from N1 to something like N1\SQL22 ALTER AVAILABILITY GROUP [testag] MODIFY REPLICA ON N'N1\SQL22' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);Defina o grupo de disponibilidade distribuída como confirmação síncrona executando o seguinte código no primário global e no encaminhador:
-- sets the distributed availability group to synchronous commit ALTER AVAILABILITY GROUP [distributedAG] MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);Observação
Em um grupo de disponibilidade distribuída, o status de sincronização entre os dois grupos de disponibilidade depende do modo de disponibilidade de ambas as réplicas. Para o modo de confirmação síncrona, tanto o grupo de disponibilidade primária atual quanto o grupo de disponibilidade secundária atual devem estar no modo de disponibilidade
SYNCHRONOUS_COMMIT. Por esse motivo, você deve executar esse script na réplica primária global e no encaminhador.Aguarde até que o status do grupo de disponibilidade distribuída mude para
SYNCHRONIZED. Execute a consulta seguinte na primária global:-- Run this query on the Global Primary -- Check the results to see if synchronization_state_desc is SYNCHRONIZED SELECT ag.name, drs.database_id AS [Availability Group], db_name(drs.database_id) AS database_name, drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id WHERE ag.name = 'distributedAG' ORDER BY [Availability Group];Prossiga após o grupo de disponibilidade synchronization_state_desc estar
SYNCHRONIZED.Para SQL Server 2022 (16.x) e posterior, na primária global, defina
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITcomo 1 usando o seguinte T-SQL:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1);Verifique se os seus grupos de disponibilidade estão íntegros em todas as réplicas, interrogando o primário global e o encaminhador:
SELECT ag.name AS [AG Name], db_name(drs.database_id) AS database_name, ar.replica_server_name AS [replica], drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id INNER JOIN sys.availability_replicas AS ar ON drs.replica_id = ar.replica_id AND drs.replica_id = ar.replica_id WHERE ag.name IN ('ag1', 'ag2', 'distributedAG');Na primária global, defina a função do grupo de disponibilidade distribuída como
SECONDARY. Neste ponto, o grupo de disponibilidade distribuída não está disponível. Após a conclusão desta etapa, você não poderá fazer failback até que o restante das etapas seja executado.ALTER AVAILABILITY GROUP distributedAG SET (ROLE = SECONDARY);Faça failover do primário global executando a seguinte consulta no encaminhador para fazer a transição dos grupos de disponibilidade e colocar o grupo de disponibilidade distribuído online novamente:
-- Run the following command on the forwarder, the SQL Server instance that hosts the primary replica of the secondary availability group. ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;Após este passo:
- As transições primárias globais de
N1paraN3. - O transitário transita de
N3paraN1. - O grupo de disponibilidade distribuída está disponível.
- As transições primárias globais de
No novo encaminhador (primário global anterior,
N1), limpe a propriedadeREQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITdo grupo de disponibilidade distribuída definindo-a como 0:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0);OPCIONAL: Se os grupos de disponibilidade estiverem em uma distância geográfica que cause latência, considere alterar o modo de disponibilidade de volta para
ASYNCHRONOUS_COMMITno primário global e no encaminhador. Isso reverte a alteração feita na primeira etapa, se necessário.-- If applicable: sets the distributed availability group to asynchronous commit: ALTER AVAILABILITY GROUP distributedAG MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT);
Remover um grupo de disponibilidade distribuída
A instrução Transact-SQL a seguir remove um grupo de disponibilidade distribuído chamado distributedAG:
DROP AVAILABILITY GROUP distributedAG;
Criar grupo de disponibilidade distribuída em instâncias de cluster de failover
Você pode criar um grupo de disponibilidade distribuído usando um grupo de disponibilidade em uma FCI (instância de cluster de failover). Nesse caso, não precisas de um ouvinte do grupo de disponibilidade. Use o nome da rede virtual (VNN) para a réplica primária da instância FCI. O exemplo a seguir mostra um grupo de disponibilidade distribuído chamado SQLFCIDAG. O grupo de disponibilidade é o SQLFCIAG. SQLFCIAG tem duas réplicas de FCI. A VNN para a réplica FCI primária é SQLFCIAG-1 e a VNN para a réplica FCI secundária é SQLFCIAG-2. O grupo de disponibilidade distribuída também inclui SQLAG-DR, para recuperação de desastres.
A DDL a seguir cria esse grupo de disponibilidade distribuída:
CREATE AVAILABILITY GROUP [SQLFCIDAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-1.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'SQLAG-DR' WITH
(
LISTENER_URL = 'tcp://SQLAG-DR.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
A URL do ouvinte é a VNN da instância FCI primária.
Failover manual do FCI num grupo de disponibilidade distribuída
Para fazer failover manualmente do grupo de disponibilidade FCI, atualize o grupo de disponibilidade distribuída para refletir a alteração da URL do ouvinte. Por exemplo, execute a seguinte DDL no primário global do AG distribuído e no encaminhador do AG distribuído do SQLFCIDAG:
ALTER AVAILABILITY GROUP [SQLFCIDAG]
MODIFY AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-2.contoso.com:5022'
)