Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Applies to:Instância Gerenciada de SQL do Azure
Este artigo ensina como realizar failover de um banco de dados linked entre SQL Server e Instância Gerenciada de SQL do Azure usando o SQL Server Management Studio (SSMS) ou PowerShell, visando recuperação de desastres ou migração.
Pré-requisitos
Para fazer failover de bancos de dados para a réplica secundária por meio do link, é necessário ter os seguintes pré-requisitos:
- Uma assinatura de Azure ativa. Se você não tiver uma, crie uma conta gratuita.
- Versão com suporte do SQL Server com a atualização de serviço necessária instalada.
- Link configurado entre a réplica primária e a secundária.
- Você pode realizar o failover do link usando Transact-SQL começando com SQL Server 2022 CU13 (KB5036432).
Parar carga de trabalho
Caso esteja pronto para fazer failover do seu banco de dados para a réplica secundária, primeiro interrompa todas as cargas de trabalho de aplicativos na réplica primária durante suas horas de manutenção. Isso permite que a replicação de banco de dados alcance a réplica secundária para que você possa fazer failover para ela sem perda de dados. Garanta que seus aplicativos não estejam efetuando transações na primária antes do failover.
Verificar o atraso de replicação
É importante que a réplica secundária se sincronize com a réplica primária antes de executar um processo de failover planejado. O failover planejado pode expirar e falhar se a réplica secundária estiver significativamente atrasada em relação à réplica primária.
Use a seguinte consulta T-SQL em SQL Server e Instância Gerenciada de SQL para monitorar o atraso de replicação entre as réplicas:
-- Execute on SQL Server and SQL Managed Instance
USE master
DECLARE @link_name varchar(max) = '<DAGname>'
SELECT
ag.name [Link name],
ars1.role_desc [Link role],
ars2.connected_state_desc [Link connected state],
ars2.synchronization_health_desc [Link sync health],
drs.secondary_lag_seconds [Link replication latency (seconds)]
FROM
sys.availability_groups ag
JOIN sys.dm_hadr_availability_replica_states ars1
ON ag.group_id = ars1.group_id
JOIN sys.dm_hadr_availability_replica_states ars2
ON ag.group_id = ars2.group_id
JOIN sys.dm_hadr_database_replica_states drs
ON ars2.replica_id = drs.replica_id
WHERE
ag.is_distributed = 1 AND ag.name = @link_name AND ars1.is_local = 1 AND ars2.is_local = 0
GO
Se o atraso de replicação for alto, aguarde até que a réplica secundária acompanhe a réplica primária. Talvez seja necessário executar etapas adicionais de solução de problemas se o atraso persistir, como melhorar a taxa de transferência de rede de vínculo entre as duas instâncias ou aumentar a capacidade do recurso na réplica secundária.
Fazer failover de um banco de dados
Você pode executar o failover de um banco de dados vinculado usando Transact-SQL (T-SQL), SQL Server Management Studio ou PowerShell.
Você pode realizar o failover do link usando Transact-SQL a partir do SQL Server 2022 CU13 (KB5036432).
Para executar um failover planejado de um link, use o seguinte comando T-SQL na réplica primária:
ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER
Para executar um failover forçado, use o comando T-SQL apresentado a seguir na réplica secundária:
ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS
Importante
Depois de executar um failover planejado, o modo de replicação é definido como assíncrono.
Fazer failover de vários bancos de dados
Se você planeja realizar failover de vários bancos de dados das instâncias no mesmo servidor, para garantir desempenho e previsibilidade ideais, realize o failover de 8 bancos de dados por instância por vez. Por exemplo, se você tiver 10 instâncias com 32 bancos de dados vinculados cada, faça failover de 8 bancos de dados por vez de cada instância e repita o processo até que todos os bancos de dados tenham failover.
Ver banco de dados após failover
Para SQL Server 2022, se optar por manter o link, verifique se o grupo de disponibilidade distribuído existe em Disponibilidade em Pesquisador de Objetos em SQL Server Management Studio.
Se você tiver descartado o link durante o failover, poderá usar Pesquisador de Objetos para confirmar se o grupo de disponibilidade distribuído não existe mais. Se você optar por manter o grupo de disponibilidade, o banco de dados ainda será Sincronizado.
Limpar após o failover
A menos que o link Remove após o failover bem-sucedido esteja selecionado, o failover com SQL Server 2022 não interromperá o link. Você pode manter o link após o failover, o que mantém o grupo de disponibilidade e o grupo de disponibilidade distribuído ativos. Nenhuma outra ação é necessária.
Descartar o link apenas descarta o grupo de disponibilidade distribuído e deixa o grupo de disponibilidade ativo. Você pode decidir manter o grupo de disponibilidade ou descartá-lo.
Se você decidir descartar seu grupo de disponibilidade, substitua o seguinte valor e execute o código de T-SQL de exemplo:
-
<AGName>com o nome do grupo de disponibilidade no SQL Server (usado para criar o link).
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName>
GO
Estado inconsistente após failover forçado
Após um failover forçado, você pode encontrar um cenário de cérebro dividido em que ambas as réplicas estão na função principal, deixando o link em um estado inconsistente. Isso poderá acontecer se você realizar a transição para a réplica secundária durante um desastre e, em seguida, a réplica primária ficar online novamente.
Para resolver esse problema, confira Corrigir o cenário de divisão cerebral.
Conteúdo relacionado
Para usar o link:
- Preparar o ambiente para o link da Instância Gerenciada
- Configurar link entre SQL Server e Instância Gerenciada do SQL com SSMS
- Configurar link entre SQL Server e instância gerenciada do SQL com scripts
- Migrar com o link
- Práticas recomendadas para manter o link
- Solucionar problemas com o link
Para saber mais sobre o link:
- Visão geral do link de Instância Gerenciada
- Recuperação de desastres com link de Instância Gerenciada
Para outros cenários de replicação e migração, considere: