P: É mais barato/mais eficiente para um Distributor
servidor usar 1 publication
para 2 subscribers
ou usar 2 publications
com o mesmo articles
indo para um único subscriber
cada?
Detalhes:
Temos tido um problema recentemente com nossos Transactional Replication
processos Distributor
para Subscriber
interromper e não recuperar normalmente. É quase como se algumas transações fossem ignoradas ou aplicadas fora de ordem. Historicamente, acabamos de resolver isso com reinitializing
o publication
e seguindo em frente.
Reduzimos isso a um problema de utilização de recursos no Distributor
servidor. Na maioria das vezes, podemos resolver reiniciando o servidor, Azure
mas os maiores publications
nem sempre recuperam por conta própria.
Todas as nossas articles
necessidades devem ser entregues a dois servidores diferentes (um para funções de relatórios pertencentes ao departamento de TI e outro para funções de relatórios pertencentes a uma equipe de analistas de dados). Vamos dividir os vários artigos em grupos, cada grupo recebendo 2 publications
e enviá-los para o nosso Distributor
servidor separado que aceita ambos Publications
. Um publication
vai para o servidor de TI, o outro vai para o servidor Data Analyst. Algo como abaixo:
O problema de utilização de recursos em parte se deve a consultas caras no servidor Data Analyst blocking
a aplicação dos replication
comandos. Estamos trabalhando com essa equipe para melhorar as consultas, mas também quero ver se podemos fazer um ajuste de arquitetura para ajudar.
Estou olhando para ver se há alguma razão pela qual seria menos caro Distributor
enviar 1 publication
para 2 subscribers
em vez de usar 2 publications
indo para um único subscriber
cada. Algo como abaixo:
Alguém tem alguma experiência com este tipo potencial de implementação?
Acho que não deve fazer muita diferença, mas geralmente, a menos que haja a necessidade de um segundo editor no mesmo artigo (cada um usando filtros de linha ou coluna diferentes, por exemplo), não há motivo para ter dois editores e causaria algum pequeno trabalho extra para o Distribuidor gerir dois em vez de um.
Se meus servidores de memória estiverem corretos, os Distribuidores de Replicação Transacional copiam primeiro os comandos para as transações a serem replicadas no servidor do Assinante e, em seguida, são aplicados. Portanto, se o seu problema é um bloqueio / bloqueio em um dos assinantes, isso não deve ter nada a ver com sua arquitetura de editor para distribuidor.