Usar alertas para eventos del Agente de replicaciónUse Alerts for Replication Agent Events

SQL Server Management StudioSQL Server Management Studio y el Agente MicrosoftMicrosoft SQL ServerSQL Server proporcionan un modo de supervisar eventos, tales como eventos de Agente de replicación, mediante alertas. Agent provide a way to monitor events, such as replication agent events, using alerts. El Agente SQL ServerSQL Server supervisa el registro de aplicación de Windows en busca de eventos que se asocian con alertas. Agent monitors the Windows application log for events that are associated with alerts. Si se produce uno de esos eventos, el Agente SQL ServerSQL 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.If such an event occurs, SQL ServerSQL Server Agent responds automatically, by executing a task that you have defined and/or sending e-mail or a pager message to a specified operator. SQL ServerSQL Server incluye un conjunto de alertas predefinidas para los agentes de replicación que puede configurar para ejecutar una tarea y/o notificar a un operador. includes a set of predefined alerts for replication agents that you can configure to execute a task and/or notify an operator. 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.For more information about defining a task to execute, see the section "Automating a Response to an Alert" in this topic.

Las siguientes alertas se instalan cuando un equipo se configura como distribuidor:The following alerts are installed when a computer is configured as a Distributor:

Id. del mensajeMessage ID Alerta predefinidaPredefined alert Condición que desencadena la alertaCondition causing the alert to fire Especifica información adicional en msdb..sysreplicationalertsEnters additional information in msdb..sysreplicationalerts
1415014150 Replicación: éxito de agenteReplication: agent success Un agente termina correctamente.Agent shuts down successfully. Yes
1415114151 Replicación: error de agenteReplication: agent failure Un agente termina con un error.Agent shuts down with an error. Yes
1415214152 Replicación: reintento de agenteReplication: agent retry El 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).Agent shuts down after unsuccessfully retrying an operation (agent encounters an error such as server not available, deadlock, connection failure, or time-out failure). Yes
1415714157 Replicación: suscripción expirada quitadaReplication: expired subscription dropped Se quitó la suscripción expirada.Expired subscription was dropped. NoNo
2057220572 Replicación: Suscripción reinicializada por no pasar la validaciónReplication: Subscription reinitialized after validation failure El trabajo de respuesta "Reinicializar suscripciones con errores de validación de datos" reinicializa correctamente una suscripción.Response job 'Reinitialize subscriptions on data validation failure' reinitializes a subscription successfully. NoNo
2057420574 Replicación: el suscriptor no ha superado la validación de datosReplication: Subscriber has failed data validation Un agente de distribución o de mezcla no puede validar los datos.Distribution or Merge Agent fails data validation. Yes
2057520575 Replicación: El suscriptor ha pasado la validación de datosReplication: Subscriber has passed data validation Un agente de distribución o de mezcla pasa la validación de los datos.Distribution or Merge Agent passes data validation. Yes
2057820578 Replicación: cierre personalizado del agenteReplication: agent custom shutdown
2281522815 Alerta de detección de conflictos punto a puntoPeer-to-peer conflict detection alert El Agente de distribución detecta un conflicto cuando intenta aplicar un cambio en un nodo punto a punto.Distribution Agent detected a conflict when it tries to apply a change at a peer-to-peer node. Yes

Además de estas alertas, el Monitor de replicación proporciona una serie de advertencias y alertas relacionadas con el estado y el rendimiento.In addition to these alerts, Replication Monitor provides a set of warnings and alerts related to status and performance. Para más información, consulte Set Thresholds and Warnings in Replication Monitor.For more information, see 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 ServerSQL Server .You can also define alerts for other replication events using the SQL ServerSQL Server alerts infrastructure. Para obtener más información, consulte Create a User-Defined Event (Crear un evento definido por el usuario).For more information, see Create a User-Defined Event.

Para configurar las alertas de replicación predefinidasTo configure predefined replication alerts

  • SQL Server Management StudioSQL Server Management Studio: [Configurar alertas de replicación predefinidas (SQL Server Management Studio)](../../../relational-databases/replication/administration/configure-predefined-replication-alerts-sql-server-management-studio.md)(../../../relational-databases/replication/administration/configure-predefined-replication-alerts-sql-server-management-studio.md)

Ver directamente el registro de aplicaciónViewing the Application Log Directly

Para ver el registro de aplicación Windows, utilice el Visor de eventos de MicrosoftMicrosoft Windows.To view the Windows application log, use the MicrosoftMicrosoft Windows Event Viewer. El registro de aplicación contiene mensajes de error de SQL ServerSQL Server así como mensajes de muchas otras actividades del equipo.The application log contains SQL ServerSQL Server error messages as well as messages for many other activities on the computer. A diferencia del registro de errores de SQL ServerSQL Server , no se crea un nuevo registro de aplicación cada vez que se inicia SQL ServerSQL Server (cada sesión de SQL ServerSQL Server escribe nuevos eventos en un registro de aplicación existente); no obstante, puede especificar durante cuánto tiempo desea mantener los eventos registrados.Unlike the SQL ServerSQL Server error log, a new application log is not created each time you start SQL ServerSQL Server (each SQL ServerSQL Server session writes new events to an existing application log); however, you can specify how long logged events will be retained. Al ver un registro de aplicación Windows, puede filtrar el registro en busca de eventos específicos.When you view the Windows application log, you can filter the log for specific events. Para obtener más información, consulte la documentación de Windows.For more information, see the Windows documentation.

Automatizar la respuesta a una alertaAutomating a Response to an Alert

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.Replication provides a response job for subscriptions that fail data validation, and also provides a framework for creating additional automated responses to alerts. El trabajo de respuesta se llama Reinicializar suscripciones con errores de validación de datos y se almacena en la carpeta SQL ServerSQL Server Trabajos del Agente en SQL Server Management StudioSQL Server Management Studio.The response job is titled Reinitialize subscriptions on data validation failure and is stored in the SQL ServerSQL Server Agent Jobs folder in SQL Server Management StudioSQL Server Management Studio. Para obtener información sobre cómo habilitar este trabajo de respuesta, consulte Configure Predefined Replication Alerts (SQL Server Management Studio) (Configurar alertas predefinidas de replicación [SQL Server Management Studio]).For information about enabling this response job, see Configure Predefined Replication Alerts (SQL Server Management Studio). 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.If articles in a transactional publication fail validation, the response job reinitializes only those articles that failed. 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.If articles in a merge publication fail validation, the response job reinitializes all articles in the publication.

Marco de trabajo para la automatización de respuestasFramework for Automating Responses

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.Usually, when an alert occurs, the only information you have to help you understand what caused the alert and the appropriate action to take is contained in the alert message itself. El análisis de esta información puede estar sujeta a errores y lleva mucho tiempo.Parsing this information can be error-prone and time-consuming. 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.Replication makes automating responses easier by providing additional information about the alert in the sysreplicationalerts system table; the information provided is already parsed in a form easily used by customized programs.

Por ejemplo, si se produce un error al validar los datos de la tabla Sales.SalesOrderHeader en el suscriptor A, SQL ServerSQL Server puede desencadenar el mensaje 20574, que le notifica dicho error.For example, if the data in the Sales.SalesOrderHeader table at Subscriber A fails validation, SQL ServerSQL Server can trigger message 20574, notifying you of that failure. 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."The message you receive will be: "Subscriber 'A', subscription to article 'SalesOrderHeader' in publication 'MyPublication' failed data validation."

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.If you create a response based on the message, you must manually parse the Subscriber name, article name, publication name, and error from the message. Sin embargo, como el Agente de distribución y el Agente de mezcla escriben la misma información en sysreplicationalerts (junto con detalles como el tipo de agente, la hora de la alerta, la base de datos de publicaciones, la base de datos del suscriptor y el tipo de publicación), el trabajo de respuesta puede consultar directamente la información relevante en dicha tabla.However, because the Distribution Agent and Merge Agent write that same information to sysreplicationalerts (along with details such as the type of agent, time of the alert, publication database, Subscriber database, and type of publication) the response job can directly query the relevant information from the table. 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.Although the exact row cannot be associated with a specific instance of the alert, the table has a status column, which can be used to keep track of serviced entries. Las entradas de esta tabla se mantienen durante el período de retención del historial.The entries in this table are maintained for the history retention period.

Por ejemplo, si creara un trabajo de respuesta en Transact-SQLTransact-SQL para dar servicio al mensaje de alerta 20574, podría utilizar la lógica siguiente:For example, if you were to create a response job in Transact-SQLTransact-SQL that services alert message 20574, you might use the following logic:

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  

Vea tambiénSee Also

Administración del Agente de replicación Replication Agent Administration
Best Practices for Replication Administration Best Practices for Replication Administration
Monitoring (Replication) (Monitorización [replicación]) Monitoring (Replication)