Usar alertas para eventos del Agente de replicación

 

Se aplica a: SQL Server 2016

SQL Server Management Studio y el Agente Microsoft SQL Server proporcionan un modo de supervisar eventos, tales como eventos de Agente de replicación, mediante alertas. SQL Server supervisa el registro de aplicación de Windows en busca de eventos que se asocian con alertas. Si se produce uno de esos eventos, el Agente SQL Server responde automáticamente, mediante la ejecución de una tarea que haya sido definida y/o el envío de un mensaje de correo electrónico o de buscapersonas a un operador especificado. SQL Server incluye un conjunto de alertas predefinidas para los agentes de replicación que se pueden configurar para ejecutar una tarea o notificar a un operador. Para obtener más información sobre cómo definir la ejecución de una tarea, vea la sección "Automatizar la respuesta a una alerta" en este tema.

Las siguientes alertas se instalan cuando un equipo se configura como distribuidor:

Id. del mensajeAlerta predefinidaCondición que desencadena la alertaEspecifica información adicional en msdb..sysreplicationalerts
14150Replicación: éxito de agenteUn agente termina correctamente.
14151Replicación: error de agenteUn agente termina con un error.
14152Replicación: reintento de agenteEl agente termina después de volver a intentar sin éxito una operación (el agente encuentra un error, por ejemplo que el servidor no está disponible, interbloqueo, error en la conexión o error de tiempo de espera).
14157Replicación: suscripción expirada quitadaSe quitó la suscripción expirada.No
20572Replicación: Suscripción reinicializada por no pasar la validaciónEl trabajo de respuesta "Reinicializar suscripciones con errores de validación de datos" reinicializa correctamente una suscripción.No
20574Replicación: el suscriptor no ha superado la validación de datosUn agente de distribución o de mezcla no puede validar los datos.
20575Replicación: El suscriptor ha pasado la validación de datosUn agente de distribución o de mezcla pasa la validación de los datos.
20578Replicación: cierre personalizado del agente
22815Alerta de detección de conflictos punto a puntoEl Agente de distribución detecta un conflicto cuando intenta aplicar un cambio en un nodo punto a punto.

Además de estas alertas, el Monitor de replicación proporciona una serie de advertencias y alertas relacionadas con el estado y el rendimiento. Para más información, consulte Set Thresholds and Warnings in Replication Monitor. También puede definir alertas para otros eventos de replicación con la infraestructura de alertas de SQL Server . Para obtener más información, consulte crear un evento definido por el usuario.

Para configurar las alertas de replicación predefinidas

Para ver el registro de aplicación Windows, utilice el Visor de eventos de Microsoft Windows. El registro de aplicación contiene mensajes de error de SQL Server así como mensajes de muchas otras actividades del equipo. A diferencia del registro de errores de SQL Server, no se crea un nuevo registro de aplicación cada vez que se inicia SQL Server (cada sesión de SQL Server escribe nuevos eventos en un registro de aplicación existente); no obstante, puede especificar durante cuánto tiempo desea mantener los eventos registrados. Al ver un registro de aplicación Windows, puede filtrar el registro en busca de eventos específicos. Para obtener más información, consulte la documentación de Windows.

La replicación proporciona un trabajo de respuesta para las suscripciones que no pueden validar los datos y también proporciona un marco de trabajo para la creación de respuestas automatizadas adicionales a las alertas. El trabajo de respuesta se llama Reinicializar suscripciones con errores de validación de datos y se almacena en la carpeta SQL Server Trabajos del Agente en SQL Server Management Studio. Para obtener información acerca de cómo habilitar este trabajo de respuesta, consulte Configurar alertas de replicación predefinidas & #40; SQL Server Management Studio & #41;. Si se produce un error en la validación de los artículos de una publicación transacional, el trabajo de respuesta reinicializa únicamente aquellos artículos que no se hayan validado. Si se produce un error en la validación de los artículos de una publicación de combinación, el trabajo de respuesta reinicializa todos los artículos de la publicación.

Marco de trabajo para la automatización de respuestas

Normalmente, cuando se produce una alerta, la única información de que dispone para comprender qué la ha provocado y la acción más apropiada que puede llevar a cabo está contenida en el propio mensaje de la alerta. El análisis de esta información puede estar sujeta a errores y lleva mucho tiempo. La replicación facilita la automatización de respuestas al proporcionar información adicional sobre la alerta en la tabla del sistema sysreplicationalerts ; la información que se proporciona ya está analizada de una forma que los programas personalizados pueden utilizar fácilmente.

Por ejemplo, si se produce un error al validar los datos de la tabla Sales.SalesOrderHeader en el suscriptor A, SQL Server puede desencadenar el mensaje 20574, que le notifica dicho error. El mensaje que reciba será: "La suscripción del suscriptor 'A' al artículo 'SalesOrderHeader' de la publicación 'MyPublication', no pasó la validación de datos."

Si crea un trabajo de respuesta basado en el mensaje, debe analizar manualmente el nombre del suscriptor, el nombre del artículo, el nombre de la publicación y el error del mensaje. Sin embargo, dado que el agente de distribución y el agente de mezcla escriben la misma información para sysreplicationalerts (junto con detalles como el tipo de agente, la hora de la alerta, la base de datos de publicación, la base de datos de suscriptor y el tipo de publicación), el trabajo de respuesta puede consultar directamente la información pertinente de la tabla. Aunque la fila exacta no puede asociarse con una instancia específica de la alerta, la tabla tiene una columna status que se puede utilizar para realizar un seguimiento de las entradas atendidas. Las entradas de esta tabla se mantienen durante el período de retención del historial.

Por ejemplo, si creara un trabajo de respuesta en Transact-SQL para dar servicio al mensaje de alerta 20574, podría utilizar la lógica siguiente:

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  

Administración del Agente de replicación
Prácticas recomendadas para la administración de replicación
La supervisión de & #40; Replicación y nº 41;

Adiciones de comunidad

AGREGAR
Mostrar: