Agente de registro del LOG de replicación

Se aplica a:SQL ServerAzure SQL Managed Instance

La réplica Agente Lector de Registros es un ejecutable que supervisa el registro de transacciones de cada base de datos configurada para la replicación transaccional y copia las transacciones marcadas para su replicación desde el registro de transacciones a la base de datos de distribución.

Nota:

Los parámetros se pueden especificar en cualquier orden. Cuando no se especifican parámetros opcionales, se utilizan valores predefinidos basados en el perfil de agente predeterminado.

Sintaxis

  
logread [-?]   
-Publisher server_name[\instance_name]   
-PublisherDB publisher_database   
[-Continuous]  
[-DefinitionFile def_path_and_file_name]  
[-Distributor server_name[\instance_name]]  
[-DistributorLogin distributor_login]  
[-DistributorPassword distributor_password]  
[-DistributorSecurityMode [0|1]]  
[-EncryptionLevel [0|1|2]]  
[-ExtendedEventConfigFile configuration_path_and_file_name]  
[-HistoryVerboseLevel [0|1|2]]  
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]  
[-LoginTimeOut login_time_out_seconds]  
[-LogScanThreshold scan_threshold]  
[-MaxCmdsInTran number_of_commands]  
[-MessageInterval message_interval]
[-MultiSubnetFailover [0|1]]
[-Output output_path_and_file_name]  
[-OutputVerboseLevel [0|1|2|3|4]]  
[-PacketSize packet_size]  
[-PollingInterval polling_interval]  
[-ProfileName profile_name]   
[-PublisherFailoverPartner server_name[\instance_name] ]  
[-PublisherSecurityMode [0|1]]  
[-PublisherLogin publisher_login]  
[-PublisherPassword publisher_password]   
[-QueryTimeOut query_time_out_seconds]  
[-ReadBatchSize number_of_transactions]   
[-ReadBatchThreshold read_batch_threshold]  
[-RecoverFromDataErrors]  

Argumentos

-?
Muestra información de uso.

-Publisherserver_name[\instance_name]
Es el nombre del publicador. Especifique server_name para la instancia predeterminada de Microsoft SQL Server en ese servidor. Especifique server_name\instance_name para una instancia con nombre de SQL Server en ese servidor.

-PublisherDBpublisher_database
Es el nombre de la base de datos del publicador.

-Continuous
Especifica si el agente intenta sondear las transacciones replicadas continuamente. Si se especifica, el agente sondea las transacciones replicadas del origen en intervalos de sondeo, aunque no haya ninguna transacción pendiente.

-DefinitionFiledef_path_and_file_name
Es la ruta de acceso del archivo de definición de agente. Un archivo de definición de agente contiene los argumentos de línea de comandos para el agente. El contenido del archivo se analiza como un archivo ejecutable. Utilice las comillas tipográficas (") para especificar valores de argumento que contienen caracteres arbitrarios.

-Distributorserver_name[\instance_name]
Es el nombre del distribuidor. Especifique server_name para la instancia predeterminada de SQL Server en ese servidor. Especifique server_name\instance_name para una instancia con nombre de SQL Server en ese servidor.

-DistributorLogindistributor_login
Es el nombre de inicio de sesión del distribuidor.

-DistributorPassworddistributor_password
Es la contraseña del distribuidor.

-DistributorSecurityMode [ 0| 1]
Especifica el modo de seguridad del distribuidor. Un valor de 0 hace referencia al modo de autenticación de SQL Server (valor predeterminado) y un valor de 1 hace referencia al modo de autenticación de Microsoft Windows.

-EncryptionLevel [ 0 | 1 | 2 ]
Es el nivel de cifrado de la Seguridad de la capa de transporte (TLS), conocida anteriormente como Capa de sockets seguros (SSL), utilizado por el Agente de lectura del LOG cuando realiza conexiones.

Valor de EncryptionLevel Descripción
0 Especifica que no se utiliza TLS.
1 Especifica que se utiliza TLS, pero el agente no comprueba que un emisor confiable haya firmado el certificado del servidor TLS/SSL.
2 Especifica que se usa TLS y que se ha comprobado el certificado.

Nota:

Un certificado TLS/SSL válido se define con un nombre de dominio completo de SQL Server. Para que el agente se conecte correctamente al establecer -EncryptionLevel en 2, cree un alias en la instancia local de SQL Server. El parámetro "Alias Name" debe ser el nombre del servidor, mientras que el parámetro "Server" se debe establecer en el nombre completo de la instancia de SQL Server.

Para más información, consulte Ver y modificar la configuración de seguridad de la replicación.

-ExtendedEventConfigFileconfiguration_path_and_file_name
Especifica el nombre y la ruta del archivo para el archivo de configuración XML de eventos extendidos. El archivo de configuración de eventos extendidos le permite configurar sesiones y habilitar eventos para su seguimiento.
Solo para uso interno.

-HistoryVerboseLevel [ 0| 1| 2]
Especifica la cantidad de historial registrado durante una operación del lector de registro. Puede minimizar el efecto sobre el rendimiento del registro del historial seleccionando 1.

Valor HistoryVerboseLevel Descripción
0
1 Predeterminada. Siempre actualiza un mensaje del historial anterior del mismo estado (inicio, progreso, éxito, etc.). Si no existe ningún registro anterior con el mismo estado, inserta un nuevo registro.
2 Inserta nuevos registros de historial a menos que el registro sea para mensajes de inactividad o mensajes de trabajos de ejecución prolongada, en cuyo caso actualiza los registros anteriores.

-KeepAliveMessageIntervalkeep_alive_message_interval_seconds
Es el número de segundos antes de que el subproceso del historial compruebe si cualquiera de las conexiones existentes está esperando una respuesta del servidor. Este valor se puede reducir para evitar que la comprobación del agente marque al agente de registro del LOG como sospechoso al ejecutar un lote de ejecución prolongada. El valor predeterminado es 300 segundos.

-LoginTimeOutlogin_time_out_seconds
Es el número de segundos antes de que el inicio de sesión exceda el tiempo de espera. El valor predeterminado es 15 segundos.

-LogScanThresholdscan_threshold
Solo para uso interno.

-MaxCmdsInTrannumber_of_commands
Especifica el número máximo de instrucciones agrupadas en una transacción cuando el Agente de registro del LOG escribe comandos en la base de datos de distribución. El uso de este parámetro permite al Agente de registro del LOG y al Agente de distribución dividir las transacciones grandes (compuestas por muchos comandos) del publicador en varias transacciones más pequeñas cuando se aplican en el suscriptor. Especificando este parámetro se puede reducir la contención en el distribuidor y la latencia entre el publicador y el suscriptor. Puesto que la transacción original se aplica en unidades más pequeñas, el suscriptor puede obtener acceso a las filas de una transacción lógica del publicador de gran tamaño antes de que finalice la transacción original, lo que interrumpe la estricta atomicidad transaccional. El valor predeterminado es 0, que conserva los límites de la transacción del publicador.

Nota:

Este parámetro se omite para las publicaciones que no son de SQL Server. Para obtener más información, vea la sección "Configurar el trabajo del conjunto de transacciones" en Performance Tuning for Oracle Publishers.

Advertencia

MaxCmdsInTran no se ha diseñado para estar siempre activado. Su función es evitar los casos en los que alguien ha realizado accidentalmente un gran número de operaciones de DML en una sola transacción (lo que produce un retraso en la distribución de comandos hasta que toda la transacción está en la base de datos de distribución, se establecen los bloqueos, etc.). Si se encuentra habitualmente esta situación, revise las aplicaciones y busque formas de reducir el tamaño de las transacciones.

Advertencia

MaxCmdsInTran no se admite si la base de datos de publicación especificada está habilitada tanto para la captura de datos modificados como para la replicación. El uso de MaxCmdsInTran en esta configuración puede provocar la pérdida de datos en las tablas de cambios de CDC. También puede provocar errores de PK si se agrega y quita el parámetro MaxCmdsInTran al replicar una transacción grande.

-MessageIntervalintervalo_de_mensajes
Es el intervalo de tiempo utilizado para el registro del historial. Un evento del historial se registra cuando se alcanza el valor de MessageInterval una vez registrado el último evento de historial.

Si no hay ninguna transacción replicada disponible en el origen, el agente envía un mensaje de no transacción al distribuidor. Esta opción especifica cuánto tiempo espera el agente para enviar otro mensaje que indica que no hay ninguna transacción. Los agentes siempre envían un mensaje que indica que no hay ninguna transacción cuando detectan que no hay ninguna transacción disponible en el origen después de procesar previamente las transacciones replicadas. El valor predeterminado es 60 segundos.

-MultiSubnetFailover [0|1] Especifica si la propiedad MultiSubnetFailover está habilitada o no. En un grupo de disponibilidad (AG) Always On en subredes diferentes, al establecer MultiSubnetFailover en 1 (true), se detecta más rápidamente el servidor (actualmente) activo y se acelera la conexión a este.

Al configurar una publicación transaccional en un grupo de disponibilidad, el Agente de registro del log crea un servidor vinculado dinámico para que el agente de escucha compruebe los metadatos. A partir de SQL Server 2022 CU10, hay un cambio en la configuración del servidor vinculado dinámico. Para más información, consulte KB5031778.

Se aplica a: SQL Server (a partir de SQL Server 2019 (15.x)).

-Outputoutput_path_and_file_name
Es la ruta de acceso del archivo de salida del agente. Si no se proporciona un nombre de archivo, el resultado se envía a la consola. Si el nombre de archivo especificado existe, el resultado se anexa al archivo.

-OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
Especifica si el resultado debería ser detallado.

Value Descripción
0 Solo se imprimen los mensajes de error.
1 Se imprimen todos los mensajes de informe de progreso de agente.
2 (predeterminado) Se imprimen todos los mensajes de error y mensajes de informe de progreso de agente.
3 Se imprimen los primeros 100 bytes de cada comando replicado.
4 Se imprimen todos los comandos replicados.

Valora 2-4 son útiles al depurar.

-PacketSizepacket_size
Es el tamaño del paquete, en bytes. El valor predeterminado es 4096 (bytes).

-PollingIntervalpolling_interval
Es la frecuencia, en segundos, con la que el registro recibe consultas de transacciones replicadas. El valor predeterminado es 5 segundos.

-ProfileNameprofile_name
Especifica un perfil de agente para utilizar para los parámetros del agente. Si ProfileName es NULL, el perfil de agente se deshabilita. Si no se especifica ProfileName , se utiliza el perfil predeterminado para el tipo de agente. Para obtener información, vea Perfiles del Agente de replicación.

-PublisherFailoverPartnerserver_name[\instance_name]
Especifica la instancia del asociado de conmutación por error de SQL Server que participa en una sesión de creación de reflejo de la base de datos con la base de datos de publicación. Para obtener más información, vea Replicación y creación de reflejo de la base de datos (SQL Server).

-PublisherSecurityMode [ 0| 1]
Especifica el modo de seguridad del publicador. Un valor de 0 hace referencia a la autenticación de SQL Server (valor predeterminado) y un valor de 1 hace referencia al modo de autenticación de Windows.

-PublisherLoginpublisher_login
Es el nombre de inicio de sesión del publicador.

-PublisherPasswordcontraseña_de_publicador
Es la contraseña del publicador.

-QueryTimeOutquery_time_out_seconds
Es el número de segundos antes de que el inicio de sesión exceda el tiempo de espera de la consulta. El valor predeterminado es 1800 segundos.

-ReadBatchSizenumber_of_transactions
Es el número máximo de transacciones leídas del registro de transacciones de la base de datos de publicación por ciclo de procesamiento, con un valor predeterminado de 500 y un máximo de 10000. El agente continuará leyendo las transacciones en lotes hasta que se lean todas las transacciones del registro. Este parámetro no se admite en publicadores de Oracle.

-ReadBatchThresholdnumber_of_commands
Es el número de comandos de replicación que se deben leer del registro de transacciones antes de que el Agente de distribución las envíe al Suscriptor. El valor predeterminado es 0. Si no se especifica este parámetro, el Agente de registro del LOG leerá al final del registro o al número especificado en -ReadBatchSize (número de transacciones).

-RecoverFromDataErrors
Especifica que el Agente de registro del LOC continúe ejecutándose cuando encuentra errores en datos de columna publicados en un Publicador que no es de SQL Server. De forma predeterminada, tales errores hacen el Agente de registro del LOG devuelva un error. Al utilizar -RecoverFromDataErrors, los datos de columna erróneos se replican como NULL o un valor nonnull adecuado y los mensajes de advertencia se registran en la tabla MSlogreader_history . Este parámetro solamente se admite en publicadores de Oracle.

Comentarios

Importante

Si ha instalado el agente de SQL Server para que se ejecute en una cuenta de sistema local en lugar de debajo de una cuenta de usuario de dominio (el valor predeterminado), el servicio puede tener acceso solamente al equipo local. Si el Agente de registro del LOG que se ejecuta en el agente de SQL Server se configura para utilizar el modo de autenticación de Windows cuando inicia sesión en una instancia de SQL Server, el Agente de registro del LOC devuelve un error. La configuración predeterminada es la autenticación de SQL Server. Para obtener más información acerca de cómo cambiar cuentas de seguridad, vea View and Modify Replication Security Settings.

Para iniciar el Agente de registro del LOG, ejecute logread.exe en el símbolo del sistema. Para obtener información, vea Conceptos de los ejecutables del Agente de replicación.

Historial de cambios

Contenido actualizado
Se ha agregado el parámetro -ExtendedEventConfigFile .
Se ha agregado el parámetro -MultiSubnetFailover.

Consulte también

Administración del Agente de replicación