Esse monitoramento verifica o estado dos agentes de Distribuição para todas as publicações distribuídas por este Distribuidor.
Um ou mais agentes de Distribuição falharam.
Alguns dos motivos que podem explicar as falhas dos agentes de Distribuição são os seguintes:
A assinatura não foi inicializada e o instantâneo não está disponível.
O agente de Distribuição está sendo executado sob uma conta que não possui permissões suficientes.
Tempo limite para consultas.
Há uma violação da Chave Primária ou um erro de "coluna não encontrada" no Assinante.
Uma conexão não pode ser realizada aos bancos de dados do Distribuidor ou do Assinante.
Esgotamento de memória para o heap da área de trabalho não interativo. http://support.microsoft.com/kb/949296
O Agente de Distribuição falhou ao criar um arquivo temporário no diretório 'C:\Arquivos de Programas\Microsoft SQL Server\100\COM' (Aplicável ao SQL 2008 e ao SQL 2008 R2) http://support.microsoft.com/kb/956032
O Agente de Distribuição não consegue visualizar os arquivos de Instantâneos.
O Serviço de Agente do SQL não possui os privilégios necessários.
Parâmetros incorretos passados ao Agente de Distribuição.
O Agente de Distribuição está sendo executado sob uma conta que não possui permissões suficientes.
Se houver múltiplos servidores envolvidos na topologia de Replicação, os SQL Server agents devem ser executados sob uma conta de domínio.
A conta do agente de Distribuição deve ser membro da função fixa [db_owner] nos bancos de dados de Distribuição e de Assinante.
Tempo limite de consulta.
Verifique o bloqueio do Distribuidor e do Assinante e verifique se o Agente de Distribuição está bloqueado. Resolva o bloqueio e reinicie o agente.
Aumente o tempo limite da consulta do Agente de Distribuição para um valor maior.
Há uma violação da Chave Primária ou um erro de "linha não encontrada" no Assinante..
Verifique as propriedades do artigo para confirmar se todas as inserções estão sendo replicadas, além disso, atualize e exclua comandos para não pular nenhuma inserção.
Verifique que os usuários não tenham acesso de gravação ao banco de dados do Assinante.
Configure o Agente do Distribuidor para usar o parâmetro -skiperrors para ignorar esses erros (use isso como uma correção temporária e resolva o problema subjacente).
Uma conexão não pode ser realizada aos bancos de dados do Distribuidor ou do Assinante.
A conta do Agente de Distribuição deve ser um membro da função fixa [db_owner] nos bancos de dados de Distribuição e de Assinante. Verifique se uma conexão pode ser feita entre o SQL Server Management Studio e os bancos de dados do Distribuidor e do Assinante.
No Distribuidor e no Publicador, habilite as portas TCP e UDP usadas pelo SQL Server no Firewall.
Esgotamento de memória para heap não interativo de desktop.
Use uma destas soluções alternativas deste KB para resolver o problema.
O Agente de Distribuição falhou ao criar arquivos temporários em 'C:\Program Files\Microsoft SQL Server\100\COM' directory (Aplicável a SQL 2008 e SQL 2008 R2)
Use a solução alternativa deste KB para resolver o problema.
O Agente de Distribuição não consegue ler arquivos de Instantâneo.
Use um caminho UNC para armazenar a pasta de instantâneos. Compartilhe a pasta e conceda permissões de leitura à conta do agente de Distribuição.
O Serviço SQL Agent não tem os privilégios necessários.
Siga http://msdn.microsoft.com/library/ms143504.aspx E certifique-se de que o SID de Serviço do SQL Agent possui os seguintes direitos:
Fazer logon como serviço (SeServiceLogonRight)
Substituir um token no nível de processo (SeAssignPrimaryTokenPrivilege)
Ignorar a verificação completa (SeChangeNotifyPrivilege)
Ajustar quotas de memória para um processo (SeIncreaseQuotaPrivilege)
Parâmetros incorretos foram passados ao comando do agente de Distribuição.
Verificar parâmetros passados à linha de comando do agente de Distribuição.
O processo não pôde ser copiado em massa para a tabela
Reduza o valor passado ao parâmetro –BCPBatchSize no trabalho do agente de Distribuição
Execute o agente de Distribuição novamente e adicione o parâmetro -OutputVerboseLevel 2. Assim, você obterá mais detalhes sobre a instrução com falha.
Apenas membros das funções sysadmin ou db_owner podem realizar esta operação.
Se o banco de dados de distribuição e o Assinante estiverem em domínios diferentes e não houver relação de confiança entre os domínios (especificamente, se o domínio do Assinante não confiar no domínio de distribuição), deverá ser usada uma conta com nome específico.
Analise os detalhes do erro do SQL Server Agent no Assinante. O nome do Assinante será a primeira parte da "Assinatura" exibida.
No Assinante, verifique se essa conta de logon do agente é um logon válido.
No Assinante, verifique que a conta de logon do agente tem as funções "sysadmin" ou "db_owner" para o banco de dados que está sendo replicado.
http://technet.microsoft.com/library/ms147328.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.Distributor | ||
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.DistributionAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" 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.DistributionAgentState.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/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericDistributor']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Distribution$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>true</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>