Como monitorar programaticamente a replicação (Programação Transact-SQL de replicação)
O Replication Monitor é uma ferramenta gráfica que permite monitorar uma topologia de replicação. Você pode acessar os mesmos dados monitorando programaticamente os procedimentos armazenados que usam a replicação. Esses procedimentos armazenados permitem programar as seguintes tarefas:
Monitorar o estado de Publicadores, publicações e assinaturas.
Monitorar as sessões do Merge Agent em um ou mais Assinantes.
Monitorar os comandos transacionais que estão esperando para serem aplicados em um ou mais Assinantes.
Definir os limites métricos que determinam quando uma publicação requer intervenção.
Para monitorar Publicador, publicações e assinatura a partir do Distribuidor
No Distribuidor, no banco de dados de distribuição, execute sp_replmonitorhelppublisher. Isso retornará informações para todos os Publicadores que usarem esse Distribuidor. Para limitar o conjunto de resultados a um único Publicador, especifique @publisher.
No Distribuidor do banco de dados de distribuição, execute sp_replmonitorhelppublication. Isso retornará informações para todas as publicações que usarem esse Distribuidor. Para limitar o conjunto de resultados a um único Publicador, publicação ou banco de dados publicado, especifique @publisher, @publication ou @publisher_db, respectivamente.
No Distribuidor do banco de dados de distribuição, execute sp_replmonitorhelpsubscription. Isso retornará informações para todas as assinaturas que usarem esse Distribuidor. Para limitar o conjunto de resultados às assinaturas pertencentes a um único Publicador, publicação ou banco de dados publicado, especifique @publisher, @publication ou @publisher_db, respectivamente.
Para monitorar os comandos transacionais que estão esperando para serem aplicados no Assinante.
- No Distribuidor do banco de dados de distribuição, execute sp_replmonitorsubscriptionpendingcmds. Isso retornará informações de monitoração para todos os comandos pendentes, de todas as assinaturas que usam esse Distribuidor. Para limitar o conjunto de resultados aos comandos pendentes das assinaturas pertencentes a um único Publicador, publicação ou banco de dados publicado, especifique @publisher, @subscriber, @publication ou @publisher_db, respectivamente.
Para monitorar as alterações de mesclagem a espera de serem carregadas ou baixadas
No Publicador do banco de dados de publicação, execute sp_showpendingchanges. Isso retornará um conjunto de resultados que mostra informações sobre as alterações esperando para ser replicadas nos Assinantes. Para limitar o conjunto de resultados às mudanças, que pertencem a um único Publicador, publicação ou artigo, especifique @publication ou @article, respectivamente.
Em um Assinante, no banco de dados da assinatura, execute sp_showpendingchanges. Isso retornará um conjunto de resultados que mostra informações sobre as alterações esperando para ser replicadas no Publicador. Para limitar o conjunto de resultados às mudanças pertencentes a um único Publicador, publicação ou artigo, especifique @publication ou @article, respectivamente.
Para monitorar sessões do Merge Agent
No Distribuidor do banco de dados de distribuição, execute sp_replmonitorhelpmergesession. Isso retornará informações de monitoração, inclusive Session_id, em todas as sessões do Merge Agent de todas as assinaturas que usam esse Distribuidor. Você também pode obter o Session_id consultando a tabela do sistema MSmerge_sessions.
No Distribuidor, no banco de dados de distribuição, execute sp_replmonitorhelpmergesession. Especifique um valor de Session_id da etapa 1 para @session_id. Isso exibirá informações de monitoramento detalhadas sobre a sessão.
Repita a etapa 2 para cada sessão que interessar.
Para monitorar sessões do Merge Agent para assinatura pull do Assinante
No Assinante, no banco de dados da assinatura, execute sp_replmonitorhelpmergesession. Para uma assinatura determinada, especifique @publisher, @publication e o nome do banco de dados de publicação para @publisher_db. Isso retornará informações de monitoração das últimas cinco sessões do Merge Agent para essa assinatura. Observe que o valor de Session_id para as sessões que interessarem, no conjunto de resultados.
No Assinante, no banco de dados da assinatura, execute sp_replmonitorhelpmergesessiondetail. Especifique um valor de Session_id da etapa 1 para @session_id. Isso exibirá informações de monitoramento detalhadas sobre a sessão.
Repita a etapa 2 para cada sessão que interessar.
Para exibir e modificar as métricas de limite do monitor para uma publicação
No Distribuidor, no banco de dados de distribuição, execute sp_replmonitorhelppublicationthresholds. Isso retornará o conjunto de limites de monitoramento, para todas as publicações que usam esse Distribuidor. Para limitar o conjunto de resultados e monitorar os limites das publicações pertencentes a um único Publicador, a um banco de dados publicado ou a uma única publicação, especifique @publisher, @publisher_db ou @publication, respectivamente. Observe o valor de Metric_id para qualquer limite que deva ser alterado. Para obter mais informações, consulte Definindo os limites e avisos no Replication Monitor.
No Distribuidor, no banco de dados de distribuição, execute sp_replmonitorchangepublicationthreshold. Especifique o seguinte, quando necessário:
O valor Metric_id obtido na etapa 1 para @metric_id.
Um valor novo para a métrica de limite do monitor para @value.
O valor 1 para @shouldalert, para ser registrado um alerta, quando esse limite for atingido, ou o valor 0, se não for necessário um alerta.
Um valor 1 para @mode, para habilitar a métrica de limite do monitor ou um valor 2 para desabilitá-la.