Estou usando Grupos de Disponibilidade (nível de banco de dados) SQL Server 2017:
Configurei meu grupo de disponibilidade para "preferir secundário". Eu permiti o acesso de leitura na réplica. Criei um plano de manutenção com backups completos em todos os bancos de dados em réplica usando "somente cópia" e depois também no primário.
Mas agora estou me perguntando se AG realmente toma alguma decisão? Ambos os planos de manutenção serão executados e, pelo que posso dizer, não alterarão "somente cópia" para o plano de manutenção do primário se houver um failover.
Além de apenas me impedir de executar backups se eu alterar a configuração... além de impor regras para o que [outro] dba pode ou não ser capaz de fazer: qual é o objetivo disso?
Ou eu configurei meus backups totalmente errados?
Não, o grupo de disponibilidade não faz nada para controlar onde os backups ocorrem. As configurações de preferência de backup em um grupo de disponibilidade estão lá para que o software de backup possa fazer referência a elas para determinar onde executar o backup. Se o software de backup em uso não tiver nenhum código para fazer referência a essas configurações, eles não terão impacto nesse software de backup e ele apenas executará os backups no servidor ao qual se conectar.
A maioria dos softwares de backup que oferece suporte a grupos de disponibilidade fará referência à configuração de preferência de backup e fará backups de acordo. Os backups do Plano de Manutenção seguirão a preferência de backup configurada no grupo de disponibilidade.
Uma opção que eu recomendaria para a configuração de backup somente cópia - crie seu trabalho do SQL Agent para executar um backup somente cópia. A primeira etapa do trabalho seria verificar se o servidor é o principal e, em caso afirmativo, encerrar o trabalho. Se não for o primário, execute o backup somente cópia.
A primeira etapa do trabalho pode usar a função fn_hadr_is_primary_replica para determinar se o servidor é o principal de um determinado banco de dados:
Consulte sys.fn_hadr_is_primary_replica (Transact-SQL).