Este monitoramento verifica o status do serviço do Agente de Mesclagem de Replicação por Assinatura. Observe que o Serviço Windows do SQL Server Agent não tem suporte em nenhuma edição do SQL Server Express. Portanto, esse monitoramento não se aplica aos casos do SQL Server Express.
O Agente de Mesclagem de Replicação é um executável que aplica aos Assinantes o instantâneo inicial mantido nas tabelas de banco de dados. Ele também mescla as alterações incrementais de dados ocorridas no Publicador após a criação do instantâneo inicial. O agente também reconcilia conflitos usando as regras configuradas ou usa um resolvedor personalizado. Observe que o Serviço Windows do SQL Server Agent não tem suporte em nenhuma edição do SQL Server Express. Portanto, esse monitoramento não se aplica aos casos do SQL Server Express.
Um agente de mesclagem pode falhar devido a uma das seguintes causas:
Não é possível conectar o Agente de Mesclagem ao banco de dados do Publicador (assinatura pull)
Não é possível conectar o Agente de Mesclagem ao banco de dados do assinante (assinatura push)
Os metadados de replicação de mesclagem foram excluídos do Assinante porque o agente de mesclagem não foi sincronizado no período de retenção
A assinatura está marcada como expirada.
Erros de tempo limite de consulta
Erros de conectividade de rede
O Agente de Mesclagem não pode inicializar devido ao esgotamento de memória para o heap da área de trabalho não interativo
Parâmetros incorretos passados ao executável do agente
Para resolver este problema de erro de agente, verifique se:
Não é possível conectar o Agente de Mesclagem ao Publicador nem ao Assinante. Configure o acesso ao dbo para a conta do agente de mesclagem nos bancos de dados do Publicador e do Assinante
Se a assinatura está marcada como expirada, reinicialize a assinatura
Resolva problemas de rede ou conectividade entre os servidores quando o agente de mesclagem está em execução
Se os metadados de assinatura forem excluídos do Publicador, remova e recrie a assinatura. Isso pode ocorrer quando o agente de mesclagem não é sincronizado com o Assinante/Publicador em dupla no período de retenção.
Verifique se os parâmetros corretos são passados ao agente executável.
Aumente o heap da área de trabalho conforme mencionado em http://support.microsoft.com/kb/949296
Consulte as tabelas msmerge_agents e msmerge_history no banco de dados de distribuição para obter mais informações sobre a falha do agente. A tabela Msrepl_errors também contém informações sobre as falhas do agente.
Problema de heap de desktop
http://support.microsoft.com/kb/949296
Agente de Mesclagem de Replicação
http://msdn.microsoft.com/library/ms147839.aspx
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Erro |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Duração Estimada do Trabalho | Limite que está sendo usado para verificar a conformidade do plano de trabalho | 15 |
Gera Alertas | Define se o fluxo de trabalho gera ou não um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 300 |
Exibir Trabalhos com Estado Desconhecido | Incluir trabalhos com estado desconhecido na saída do monitoramento e no contexto de alerta. Afetará a integridade. | Não |
Tempo de Sincronização | Tempo de Sincronização |
|
Tempo limite (segundos) | Especifica a quantidade de tempo que o fluxo de trabalho tem permissão para executar antes de ser fechado e marcado como com falha. | 200 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado. | 15 |
Target | Microsoft.SQLServer.Replication.Windows.Subscription | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Core.RunAs.Monitoring |
<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscription" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Merge$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$$Target/Host/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscriber']/ConnectionString$$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/SubscriptionName$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>false</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>