Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
O Replication Monitor é uma ferramenta gráfica que permite monitorizar uma topologia de replicação. Pode aceder programaticamente aos mesmos dados de monitorização utilizando procedimentos armazenados de replicação do Transact-SQL ou os objetos de gestão de replicação (RMO). Estes objetos permitem-lhe programar as seguintes tarefas:
Monitorizar o estado das editoras, publicações e subscrições.
Monitorize as sessões do Merge Agent em um ou mais Subscritores.
Monitorize os comandos transacionais à espera de serem aplicados a um ou mais subscritores.
Defina as métricas de limiar que determinam quando uma publicação necessita de intervenção.
Monitoriza o estado dos tokens de rastreamento.
Transact-SQL
Monitorizar Editores, publicações e subscrições do Distribuidor
No Distribuidor, na base de dados de distribuição, execute o comando sp_replmonitorhelppublisher. Isto devolve informações de monitorização para todos os Editores que utilizam este Distribuidor. Para limitar o conjunto de resultados a um único Publisher, especifique @publisher.
No Distribuidor, na base de dados de distribuição, execute sp_replmonitorhelppublication. Este devolve informações de monitorização para todas as publicações que utilizam este Distribuidor. Para limitar o conjunto de resultados a um único publicador, publicação ou base de dados publicada, especifique @publisher, @publication ou @publisher_db, respetivamente.
No Distribuidor, na base de dados de distribuição, execute sp_replmonitorhelpsubscription. Isto devolve informações de monitorização para todas as subscrições que utilizam este Distribuidor. Para limitar o conjunto de resultados a subscrições pertencentes a um único Publisher, publicação ou base de dados publicada, especifique @publisher, @publication ou @publisher_db, respetivamente.
Para monitorizar os comandos transacionais à espera de serem aplicados no Subscritor
- No distribuidor, na base de dados de distribuição, execute sp_replmonitorsubscriptionpendingcmds. Isto devolve a informação de monitorização de todos os comandos pendentes para todas as subscrições que utilizam este Distribuidor. Para limitar o conjunto de resultados aos comandos pendentes de subscrições que pertençam a um único Publisher, Subscriber, publication ou base de dados publicada, especifique @publisher, @subscriber, @publication ou @publisher_db, respetivamente.
Para monitorizar as alterações de integração à espera de serem enviadas ou transferidas
No Publicador, na base de dados de publicação, execute sp_showpendingchanges. Isto devolve um conjunto de resultados que mostra informações sobre alterações que estão à espera de serem replicadas para os Assinantes. Para limitar o conjunto de resultados a alterações que pertencem a uma única publicação ou artigo, especifique @publication ou @article, respetivamente.
Num subscritor na base de dados de subscrição, execute sp_showpendingchanges. Isto devolve um conjunto de resultados que mostra informações sobre alterações que estão à espera de serem replicadas para o Publisher. Para limitar o conjunto de resultados a alterações que pertencem a uma única publicação ou artigo, especifique @publication ou @article, respetivamente.
Para monitorizar as sessões do Merge Agent
No Distribuidor, na base de dados de distribuição, execute sp_replmonitorhelpmergesession. Este devolve informações de monitorização, incluindo Session_id, em todas as sessões Merge Agent para todas as subscrições que utilizam este Distribuidor. Também pode obter Session_id consultando a tabela do sistema MSmerge_sessions .
No Distribuidor, na base de dados de distribuição, execute sp_replmonitorhelpmergesessiondetail. Especifique um valor de Session_id do passo 1 para @session_id. Isto mostra informações detalhadas do monitor sobre a sessão.
Repita o passo 2 em cada sessão de interesse.
Para monitorizar as sessões do Merge Agent para extrair subscrições do Assinante
No Subscritor da base de dados de subscrição, execute sp_replmonitorhelpmergesession. Para uma determinada subscrição, especifique @publisher, @publication e o nome da base de dados de publicações para @publisher_db. Isto devolve a informação de monitorização das últimas cinco sessões do Merge Agent para esta subscrição. Note o valor da Session_id para sessões de interesse no conjunto de resultados.
No Subscritor, na base de dados de subscrição, execute sp_replmonitorhelpmergesessiondetail. Especifique um valor de Session_id do passo 1 para @session_id. Isto apresenta informações detalhadas de monitorização sobre a sessão.
Repita o passo 2 em cada sessão de interesse.
Visualizar e modificar as métricas de limiar de monitorização para uma publicação
No distribuidor, na base de dados de distribuição, execute sp_replmonitorhelppublicationthresholds. Isto devolve os limiares de monitorização definidos para todas as publicações que utilizam este Distribuidor. Para limitar o conjunto de resultados aos limiares de monitorização de forma a incluir publicações pertencentes a um único Publisher, a uma única base de dados publicada ou a uma única publicação, especifique @publisher, @publisher_db ou @publication, respetivamente. Note o valor de Metric_id para quaisquer limiares que tenham de ser alterados. Para mais informações, consulte Definir Limiares e Avisos no Monitor de Replicação.
No Distribuidor, na base de dados de distribuição, execute sp_replmonitorchangepublicationthreshold. Especifique o seguinte, conforme necessário:
O valor Metric_id obtido no passo 1 para @metric_id.
Um novo valor para a métrica de limiar do monitor para @value.
Um valor de 1 para @shouldalert para que um alerta seja registado quando este limiar é atingido, ou um valor de 0 se o alerta não for necessário.
Um valor de 1 para @mode para ativar a métrica de limiar do monitor ou um valor de 2 para a desativar.
Objetos de Gestão de Replicação (RMO)
Para monitorizar uma subscrição de uma publicação de fusão no Subscritor
Crie uma ligação ao Assinante usando a ServerConnection classe.
Crie uma instância da classe MergeSubscriberMonitor, defina as propriedades Publisher, Publication, PublisherDB e SubscriberDB para a subscrição e defina a propriedade ConnectionContext para o ServerConnection criado no passo 1.
Ligue para um dos seguintes métodos para devolver informações sobre as sessões do Merge Agent para esta subscrição:
GetSessionsSummary - devolve um array de objetos MergeSessionSummary com informações sobre, no máximo, as últimas cinco sessões do Merge Agent. Anote o valor de SessionId de quaisquer sessões do seu interesse.
GetSessionsSummary - devolve um array de objetos MergeSessionSummary com informações sobre as sessões do Merge Agent que ocorreram durante o número de horas anteriores indicado no parâmetro hours (até às cinco sessões mais recentes). Anote o valor SessionId de quaisquer sessões do seu interesse.
GetLastSessionSummary- devolve um MergeSessionSummary objeto com informação sobre a última sessão do Merge Agent. Anote o valor SessionId desta sessão.
GetSessionsSummaryDataSet- devolve um DataSet objeto com informação sobre até às últimas cinco sessões do Merge Agent, uma em cada linha. Note o valor da coluna Session_id para quaisquer sessões de interesse.
GetLastSessionSummaryDataRow- devolve um DataRow objeto com informação sobre a última sessão do Merge Agent. Note o valor da coluna Session_id para esta sessão.
(Opcional) Chamar RefreshSessionSummary para atualizar os dados do MergeSessionSummary objeto passado como mss, ou chamar RefreshSessionSummary para atualizar os dados no DataRow objeto passado como drRefresh.
Usando o ID de sessão obtido no passo 3, chame um dos seguintes métodos para devolver informação sobre os detalhes de uma sessão particular:
GetSessionDetails - devolve um array de objetos MergeSessionDetail para o SessionId fornecido.
GetSessionDetailsDataSet - devolve um DataSet objeto com informação para o SessionID especificado.
Para monitorizar as propriedades de replicação de todas as publicações num Distribuidor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Crie uma instância da ReplicationMonitor classe.
Defina a propriedade ConnectionContext para o ServerConnection criado no passo 1.
Chame o método LoadProperties para obter as propriedades do objeto.
Execute um ou mais dos seguintes métodos para devolver informação de replicação a todos os Editores que utilizem este Distribuidor.
EnumDistributionAgents - devolve um DataSet objeto que contém informação sobre todos os Agentes de Distribuição deste Distribuidor.
EnumErrorRecords - devolve um DataSet objeto que contém informação sobre erros armazenados no Distribuidor.
EnumLogReaderAgents - devolve um DataSet objeto que contém informação sobre todos os Agentes Leitores de Registo no Distribuidor.
EnumMergeAgents - devolve um DataSet objeto que contém informação sobre todos os Agentes de Fusão no Distribuidor.
EnumMiscellaneousAgents - devolve um DataSet objeto que contém informação sobre todos os outros agentes de replicação no Distribuidor.
EnumPublishers - devolve um DataSet objeto que contém informação sobre todos os Editores deste Distribuidor.
EnumPublishers2 - devolve um objeto DataSet que devolve os publicadores que utilizam este distribuidor.
EnumQueueReaderAgents - devolve um DataSet objeto que contém informação sobre todos os Agentes Leitores de Fila no Distribuidor.
EnumQueueReaderAgentSessionDetails - devolve um DataSet objeto que contém detalhes sobre o Agente Leitor de Fila especificado e a sessão.
EnumQueueReaderAgentSessions - devolve um DataSet objeto que contém informação de sessão sobre o Agente Leitor de Fila especificado.
EnumSnapshotAgents - devolve um DataSet objeto que contém informação sobre todos os Agentes de Snapshot no Distribuidor.
Para monitorizar as propriedades de publicação de um editor específico no distribuidor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Obtenha um objeto PublisherMonitor de uma das seguintes formas.
Crie uma instância da PublisherMonitor classe. Defina a propriedade Name para o Publisher e defina a propriedade ConnectionContext para o ServerConnection criado no passo 1. Chame o método LoadProperties para obter as propriedades do objeto. Se este método devolver falso, ou o nome Publisher foi definido incorretamente ou a publicação não existe.
A partir do PublisherMonitorCollection ao qual se acede através da propriedade PublisherMonitors de um objeto ReplicationMonitor existente.
Execute um ou mais dos seguintes métodos para devolver informação de replicação para todas as publicações que pertencem a este Publisher.
EnumDistributionAgentSessionDetails- devolve um DataSet objeto que contém detalhes sobre o Distribution Agent e a sessão especificados.
EnumDistributionAgentSessions- devolve um DataSet objeto que contém informação de sessão sobre o Distribution Agent especificado.
EnumErrorRecords - devolve um DataSet objeto que contém informação de registo de erro sobre o erro especificado.
EnumLogReaderAgentSessionDetails - devolve um DataSet objeto que contém detalhes do Agente Leitor de Registo especificado e da sessão.
EnumLogReaderAgentSessions - devolve um DataSet objeto que contém informação de sessão para o Agente Leitor de Registo especificado.
EnumMergeAgentSessionDetails- devolve um DataSet objeto que contém detalhes sobre o Merge Agent e a sessão especificados.
EnumMergeAgentSessionDetails2- devolve um DataSet objeto que contém detalhes adicionais sobre o Merge Agent e a sessão especificados.
EnumMergeAgentSessions- devolve um DataSet objeto que contém informação de sessão para o Merge Agent especificado.
EnumMergeAgentSessions2- devolve um DataSet objeto que contém informação adicional de sessão para o Merge Agent especificado.
EnumPublications - devolve um DataSet objeto que contém informação sobre todas as publicações deste Distribuidor.
EnumPublications2 - devolve um DataSet objeto que contenha informações adicionais sobre todas as publicações deste Distribuidor.
EnumSnapshotAgentSessionDetails- devolve um DataSet objeto que contém detalhes sobre o Snapshot Agent e a sessão especificados.
EnumSnapshotAgentSessions- devolve um DataSet objeto que contém informação de sessão para o Snapshot Agent especificado.
EnumSubscriptions - devolve um DataSet objeto que contém informações sobre todas as subscrições de publicações neste Distribuidor.
Monitorizar propriedades de uma publicação específica no Distribuidor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Obtenha um objeto PublicationMonitor de uma das seguintes formas.
Crie uma instância da PublicationMonitor classe. Defina as propriedades DistributionDBName, PublisherName, PublicationDBName e Name para a publicação e defina a propriedade ConnectionContext como o ServerConnection criado no passo 1. Chame o método LoadProperties para obter as propriedades do objeto. Se este método devolver falso, ou as propriedades de publicação foram definidas incorretamente ou a publicação não existe.
A partir do PublicationMonitorCollection ao qual se acede através da propriedade PublicationMonitors de um objeto PublisherMonitor existente.
Execute um ou mais dos seguintes métodos para devolver informações sobre esta publicação.
EnumErrorRecords - devolve um DataSet objeto que contém registos de erro sobre o erro especificado.
EnumLogReaderAgent - devolve um objeto DataSet que contém informação sobre o Agente de Leitura de Registos para esta publicação.
EnumMonitorThresholds - devolve um objeto DataSet que contém informações sobre os limiares de aviso de monitorização definidos para esta publicação.
EnumQueueReaderAgent - devolve um DataSet objeto que contém informação sobre o Agente Leitor de Fila utilizado por esta publicação.
EnumSnapshotAgent - devolve um objeto DataSet que contém informações sobre o Snapshot Agent para esta publicação.
EnumSubscriptions - devolve um DataSet objeto que contenha informação sobre subscrições desta publicação.
EnumSubscriptions2 - devolve um objeto DataSet que contém informações adicionais sobre subscrições para esta publicação com base no SubscriptionResultOption fornecido.
EnumTracerTokenHistory - devolve um DataSet objeto que contém informação de latência para o token traçador especificado.
EnumTracerTokens - devolve um objeto DataSet que contém informação sobre todos os tokens de rastreio inseridos nesta publicação.
Para monitorizar comandos transacionais que estão à espera de ser aplicados no Subscritor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Obtenha um objeto PublicationMonitor de uma das seguintes formas.
Crie uma instância da PublicationMonitor classe. Defina as propriedades DistributionDBName, PublisherName, PublicationDBName e Name para a publicação e defina a propriedade ConnectionContext para a ServerConnection criada no passo 1. Chame o método LoadProperties para obter as propriedades do objeto. Se este método devolver falso, ou as propriedades de publicação foram definidas incorretamente ou a publicação não existe.
A partir do PublicationMonitorCollection ao qual se acede através da propriedade PublicationMonitors de um objeto PublisherMonitor existente.
Execute o TransPendingCommandInfo método, que devolve um PendingCommandInfo objeto.
Use as propriedades deste PendingCommandInfo objeto para determinar o número estimado de comandos pendentes e o tempo que levará para concluir a entrega desses comandos.
Para definir os limiares de aviso do monitor para uma publicação
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Obtenha um objeto PublicationMonitor de uma das seguintes formas.
Crie uma instância da PublicationMonitor classe. Defina as propriedades DistributionDBName, PublisherName, PublicationDBName e Name para a publicação e defina a propriedade ConnectionContext como a ServerConnection criada no passo 1. Chame o método LoadProperties para obter as propriedades do objeto. Se este método devolver falso, ou as propriedades de publicação foram definidas incorretamente ou a publicação não existe.
A partir do PublicationMonitorCollection ao qual se acede através da propriedade PublicationMonitors de um objeto PublisherMonitor existente.
Executa o EnumMonitorThresholds método. Note as definições atuais de limiar no retorno ArrayList dos MonitorThreshold objetos.
Executa o ChangeMonitorThreshold método. Passe os seguintes parâmetros:
metricID - um Int32 valor que representa a métrica de limiar de monitorização da tabela seguinte:
Value Description 1 expiração - monitoriza a proximidade da expiração das subscrições de publicações transacionais. 2 Latência - monitoriza o desempenho das subscrições a publicações transacionais. 4 MergeExpiration - monitoriza a expiração iminente das subscrições das publicações da fusão. 5 Mergeslowrunduration - Monitoriza a duração das sincronizações de fusão em ligações de baixa largura de banda (dial-up). 6 mergefastrunduration - monitoriza a duração das sincronizações de fusão em ligações de alta largura de banda (LAN). 7 mergefastrunspeed - monitoriza a taxa de sincronização das sincronizações de fusão em ligações de alta largura de banda (LAN). 8 mergeslowrunspeed - Monitoriza a taxa de sincronização das sincronizações de fusão em ligações de baixa largura de banda (dialup). enable - Boolean valor que indica se a métrica está ativada para a publicação.
thresholdValue - valor inteiro que define o limiar.
shouldAlert - inteiro que indica se este limiar deve gerar um alerta.