Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SQL Server Management Studio e o Microsoft SQL Server Agent fornecem uma maneira de monitorar eventos, como eventos do agente de replicação, usando alertas. O SQL Server Agent monitora o log de aplicativos do Windows para eventos associados a alertas. Se esse evento ocorrer, o SQL Server Agent responderá automaticamente executando uma tarefa que você definiu e/ou enviou um email ou uma mensagem de pager para um operador especificado. O SQL Server inclui um conjunto de alertas predefinidos para agentes de replicação que você pode configurar para executar uma tarefa e/ou notificar um operador. Para obter mais informações sobre como definir uma tarefa a ser executada, consulte a seção "Automatizando uma resposta a um alerta" neste tópico.
Os alertas a seguir são instalados quando um computador é configurado como um Distribuidor:
| ID da mensagem | Alerta predefinido | Condição que faz com que o alerta seja acionado | Insere informações adicionais em msdb..sysreplicationalerts |
|---|---|---|---|
| 14150 | Replicação: êxito do agente | O agente é desligado com êxito. | Sim |
| 14151 | Replicação: falha do agente | O agente é desligado com um erro. | Sim |
| 14152 | Replicação: nova tentativa do agente | O agente é desligado após tentar novamente uma operação sem êxito (o agente encontra um erro como servidor não disponível, deadlock, falha de conexão ou falha de tempo limite). | Sim |
| 14157 | Replicação: assinatura expirada descartada | A assinatura expirada foi descartada. | Não |
| 20572 | Replicação: assinatura reinicializada após falha de validação | O trabalho de resposta 'Reinicializar assinaturas em falha de validação de dados' reinicializa uma assinatura com êxito. | Não |
| 20574 | Replicação: o assinante falhou na validação de dados | Falha na validação de dados do Agente de Distribuição ou Mesclagem. | Sim |
| 20575 | Replicação: o assinante passou na validação de dados | O Agente de Distribuição ou de Mesclagem passa pela validação de dados. | Sim |
| 20578 | Replicação: desligamento personalizado do agente | ||
| 22815 | Alerta de detecção de conflito ponto a ponto | O Distribution Agent detectou um conflito quando tentou aplicar uma alteração em um nó peer-to-peer. | Sim |
Além desses alertas, o Replication Monitor fornece um conjunto de avisos e alertas relacionados ao status e ao desempenho. Para obter mais informações, consulte Definir limites e avisos na infraestrutura de alertas do Replication Monitor. Para obter mais informações, consulte Criar um evento de User-Defined.
Para configurar alertas de replicação predefinidos
- SQL Server Management Studio: configurar alertas de replicação predefinidos (SQL Server Management Studio)
Exibindo o log de aplicativos diretamente
Para exibir o log de aplicativos do Windows, use o Visualizador de Eventos do Microsoft Windows. O log do aplicativo contém mensagens de erro do SQL Server, bem como mensagens para muitas outras atividades no computador. Ao contrário do log de erros do SQL Server, um novo log de aplicativos não é criado sempre que você inicia o SQL Server (cada sessão do SQL Server grava novos eventos em um log de aplicativos existente); no entanto, você pode especificar por quanto tempo os eventos registrados serão mantidos. Ao exibir o log de aplicativos do Windows, você pode filtrar o log para eventos específicos. Para obter mais informações, consulte a documentação do Windows.
Automatizando uma resposta a um alerta
A replicação fornece um trabalho de resposta para assinaturas que falham na validação de dados e também fornece uma estrutura para criar respostas automatizadas adicionais para alertas. O trabalho de resposta é intitulado Reinitializar assinaturas sobre falha de validação de dados e é armazenado na pasta Trabalhos do SQL Server Agent no SQL Server Management Studio. Para obter informações sobre como habilitar esse trabalho de resposta, consulte Configurar alertas de replicação predefinidos (SQL Server Management Studio). Se os artigos em uma publicação transacional falharem na validação, o trabalho de resposta reinicializará somente os artigos que falharam. Se os artigos em uma publicação de mesclagem falharem na validação, o trabalho de resposta reinicializará todos os artigos na publicação.
Estrutura para automatizar respostas
Normalmente, quando ocorre um alerta, as únicas informações que você tem para ajudá-lo a entender o que causou o alerta e a ação apropriada a ser executada estão contidas na própria mensagem de alerta. Analisar essas informações pode ser propenso a erros e demorado. A replicação facilita a automatização de respostas fornecendo informações adicionais sobre o alerta na tabela do sistema sysreplicationalerts ; as informações fornecidas já são analisadas em um formulário facilmente usado por programas personalizados.
Por exemplo, se os dados na tabela Sales.SalesOrderHeader no Assinante A falharem na validação, o SQL Server poderá disparar a mensagem 20574, notificando você sobre essa falha. A mensagem recebida será: "Assinante 'A', assinatura do artigo 'SalesOrderHeader' na publicação 'MyPublication' falhou na validação de dados."
Se você criar uma resposta com base na mensagem, deverá analisar manualmente o nome do Assinante, o nome do artigo, o nome da publicação e o erro da mensagem. No entanto, como o Agente de Distribuição e o Agente de Mesclagem gravam essas mesmas informações em sysreplicationalerts (juntamente com detalhes como o tipo de agente, hora do alerta, banco de dados de publicação, banco de dados do Assinante e tipo de publicação), o trabalho de resposta pode consultar diretamente as informações relevantes da tabela. Embora a linha exata não possa ser associada a uma instância específica do alerta, a tabela tem uma coluna de status , que pode ser usada para controlar as entradas atendidas. As entradas nesta tabela são mantidas durante o período de retenção do histórico.
Por exemplo, se você for criar um trabalho de resposta no Transact-SQL que atende à mensagem de alerta 20574, poderá usar a seguinte lógica:
declare @publisher sysname, @publisher_db sysname, @publication sysname, @publication_type int, @article sysname, @subscriber sysname, @subscriber_db sysname, @alert_id int
declare hc cursor local for select publisher, publisher_db, publication, publication_type, article, subscriber,
subscriber_db, alert_id from
msdb..sysreplicationalerts where
alert_error_code = 20574 and status = 0
for read only
open hc
fetch hc into @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
while (@@fetch_status <> -1)
begin
/* Do custom work */
/* Update status to 1, which means the alert has been serviced. This prevents subsequent runs of this job from doing this again */
update msdb..sysreplicationalerts set status = 1 where alert_id = @alert_id
fetch hc into @publisher, @publisher_db, @publication, @publication_type, @article, @subscriber, @subscriber_db, @alert_id
end
close hc
deallocate hc
Consulte Também
Administração do agente de replicação
Práticas recomendadas para administração de replicação
Monitoramento (Replicação)