Tenho o SQL Server 2022 com Always On Availability Group em dois servidores.
SRVSQL01 - Réplica Primária
SRVSQL02 - Réplica Secundária
No SRVSQL01, o backup Full é executado normalmente. Quando o SRVSQL01 se torna uma réplica Secondary, a seguinte mensagem de erro aparece.
"Este comando BACKUP ou RESTORE não é suportado em um espelho de banco de dados ou réplica secundária."
O que devo fazer para que o backup do banco de dados continue sendo executado mesmo quando ocorrer failover?
Obrigado.
Supondo que você esteja fazendo o backup como parte de um trabalho do SQL Agent, crie uma nova etapa no trabalho que seja executada antes da etapa de backup, que execute este código:
Certifique-se de alterar a Ação em caso de falha na guia Avançado para Encerrar o trabalho relatando sucesso , pois esse é o comportamento que você deseja que ocorra.
Como alternativa, dê uma olhada na solução de manutenção Ola Hallengren , que já tem isso incorporado e é muito utilizada.
PS Você provavelmente quer que jobs idênticos sejam configurados no servidor secundário também, para que seus backups continuem sendo feitos após o failover. Isso é especialmente verdade com backups de LOG, caso contrário, seu arquivo de log começará a ficar cheio.
Há um artigo separado na documentação da Microsoft dedicado à configuração do backup na réplica secundária.
Resumindo, primeiro você precisa especificar nas configurações do AG onde você prefere fazer um backup:
Depois disso, você pode usar a função
sys.fn_hadr_backup_is_preferred_replica(@DBNAME)
em uma instância específica para entender se precisa fazer um backup aqui.