Tenho uma situação parecida com essa da imagem:
2 servidores sql1 e sql2 que estão em um grupo de disponibilidade e um terceiro servidor que é basicamente um servidor de relatórios.
Preciso criar uma replicação transacional, o publicador está no grupo de disponibilidade, o assinante no servidor cliente.
o que eu estava planejando fazer é:
- cliente também é distribuidor
- a publicação reside em um ouvinte , então o distribuidor não sabe se é sql1 ou sql2 que está ativo
- em caso de failover ou failback, os trabalhos de replicação ficam ativos apenas no nó primário.
O ideal seria que outro servidor ou grupo de disponibilidade fosse apenas o distribuidor, mas isso não é possível.
isso pode funcionar ou há alguma ponte que não posso cruzar nessa topologia?
Sim, desde que você siga o fluxo de trabalho adequado para replicação em AGs . Eu pessoalmente não gostaria de dar suporte à replicação em AGs, no entanto. Você também terá que seguir as tarefas de gerenciamento adequadas , caso seja necessário. Essas configurações não são triviais, certifique-se de estar extremamente familiarizado com todo o processo, topologia e tratamento de problemas comuns antes de usá-lo na produção. Eu pessoalmente descobri que elas não valem o incômodo.
Eu absolutamente não habilitaria isso se você se importa com sua configuração de replicação e integridade de dados. Ele permite que transações não confirmadas sejam enviadas para assinantes, o que pode levar à incorreção de dados no caso de uma falha. Você terá que corrigir manualmente seus dados no distribuidor/assinante nesse ponto.