Síntomas

Cuando se produce un error en el agente de lector del registro de duplicación de Microsoft SQL Server, recibirá un mensaje de error similar al siguiente en el registro de SQL Server:

< hora > spid98 replicación Replication Log de transacciones
Subsistema: error en agente logreadername. El proceso no pudo ejecutar 'sp_replcmds'
en '< nombreDeServidor >'.
< hora > spid258 Error: 14151, gravedad: 18, estado: 1.
< hora > spid258 replicación Replication Log de transacciones
Subsistema: error en agente logreadername. El proceso no pudo ejecutar 'sp_replcmds'
en '< nombreDeServidor >'.


Además, puede recibir uno o varios mensajes de error similares a los siguientes:

  • 18805/18836 el lector del registro no se pudo construir replica comando

    < hora > estado: 0, código: 20011, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.
    < hora > el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.
    < hora > estado: código 0,: 18836, texto: ' bloque de información de texto no válido para UpdateText: m_pHead -> GetType(): 1, m_TextDataType: 0, m_TextOpType: 3, ti: {RowsetId 7746362867712, {TextTimeStamp 480235880448, {RowId {PageId 2680944, FileId 1}, RanuraID 21}}, coloffset -1, textInfoFlags, 0 x 4, textSize 177, desplazamiento a 177, oldSize, 0, 0 de newSize}.'.
    < hora > estado: 0, código: 18805, texto: 'Lector del registro no se pudo construir el comando replicado desde el LSN {00150725:00014316:009 d}.'. < hora > estado: 0, código: 22037, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.

  • 18805/18836 el lector del registro no se pudo construir replica comando

    < hora > estado: 0, código: 20011, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.
    < hora > el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.
    < hora > estado del agente Repl: 6
    < hora > estado: 0, código: 18805, texto: ' el agente de lector del registro no se pudo construir un comando replicado de número de secuencia de registro (LSN) {00033a89:0000969 c: 000a}. Atrás hasta la base de datos de publicación y póngase en contacto con los servicios de soporte al cliente.'.
    < hora > estado: 0, código: 22037, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.

  • Tiempo de espera de lector del registro

    El agente se está ejecutando. Utilice al Monitor de réplica para ver los detalles de esta sesión del agente.
    Estado del agente REPL: 3
    Publisher: {llamar a sp_repldone (0x0000172a0002ac900001, 0x0000172a0002ac900001, 0, 0)}
    Publisher: {llamar a sp_replcmds (500, 0)}
    Estado: código 2: 0, el texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombre de publicador >'.'.
    El proceso no pudo ejecutar 'sp_replcmds' en '< nombre de publicador >'.
    Estado del agente REPL: 5
    Estado: código 2: 0, el texto: 'Tiempo de espera ha caducado'.
    Desconectar de Publisher '< nombre de publicador >'
    El agente no pudo con un estado 'Reintento'. Pruebe a ejecutar al agente en un momento posterior.


  • Aserción

    < hora > estado: 0, código: 20011, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.
    < hora > el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.
    < hora > estado: 0, código: 18773, texto: 'No se puede encontrar registros de texto para la columna "ClientPreferences", 30 ID durante la construcción del comando'..
    < hora > estado: 0, código: 3624, texto: ' ha fallado una comprobación de aserción del sistema. Compruebe el registro de errores de SQL Server para obtener más detalles. Normalmente, un error de aserción se debe a una corrupción de datos o error de software. Para comprobar si hay daños en la base de datos, considere la posibilidad de ejecutar DBCC CHECKDB. Si decidió enviar volcados a Microsoft durante la instalación, se enviará un mini volcado a Microsoft. Una actualización esté disponible en el Service Pack más reciente o en un QFE del soporte técnico de Microsoft. '.
    < hora > estado: 0, código: 22037, texto: 'el proceso no pudo ejecutar 'sp_replcmds' en '< nombreDeServidor >'.'.

Solución de problemas

  • Mensaje de error 1: "Error de lector del registro de 18805/18836 comando replicado de construcción"
    En este mensaje, puede determinar el objeto y el cambio que ha creado la transacción en el registro. Para ello, utilice la siguiente información:

    • Código 18836 proporciona el identificador de la página en la que puede buscar el objeto.

      Nota: Puede utilizar el comando DBCC PAGE para ver el contenido de las páginas de la base de datos.

    • Código 18805 le proporciona un número de secuencia de registro (LSN) que puede proporcionar el objeto:

      dbcc Log(master, 3, 'lsn', '0x00000208:000000a0:0004', 'numrecs', 1)



  • Mensaje de error 2: "Error de lector del registro de 18805/18836 comando replicado de construcción"
    La diferencia principal entre el mensaje de error 1 y 2 del mensaje de error es que el error 2 no contiene el mensaje de estado y no apunta a la columna "textinfo". Este problema conocido se corrige en la actualización acumulativa paquete 11 para el Service Pack 3 (SP3) de Microsoft SQL Server 2008.

    El problema sólo se produce en las tablas que tienen datos de objeto binario grande (BLOB) de columnas de tipo y que el artículo no está usando los comandos parametrizados para poder replicar. Para resolver este problema, siga estos pasos:

    1. Determinar si el artículo utiliza los comandos parametrizados. Para ello, ejecute la siguiente consulta:

      select status, name from sysarticles where name =''
    2. Convertir los valores de estado en formato binario. Por ejemplo, para un valor de estado de 41, el valor binario es 101001 y el quinto bit desde el lado derecho, también conocido como el bit de estado está activada. Si el bit de estado es 1, entonces ya establecerlo. Si el bit de estado es 0, entonces no establecerlo. Por lo tanto, deberá ejecutar sp_changearticle para configurar los comandos parametrizados. Para cambiar el bit de estado, ejecute el siguiente comando:

      sp_changearticle 'ConstituentRequest_ETL_Trans', 'CRProfile', 'status', 'parameters' 




  • Mensaje de error 3: "Tiempo de espera de lector del registro"
    Para resolver este problema, utilice uno de los métodos siguientes:

    • Aumente el valor para el parámetro QueryTimeout del Agente lector del registro.

      Nota de forma predeterminada, el valor de este parámetro es 1.800 segundos (30 minutos).

    • Establezca el valor para el parámetro QueryTimeout en cero (0) con el fin de deshabilitar el tiempo de espera.

    • Reducir el valor para ReadBatchSize parámetro del Agente lector del registro.



  • Mensaje de error 4: "Aserción"
    Compruebe el registro de errores de SQL Server para la aserción y compare la pila de subprocesos con los problemas en los siguientes artículos de Microsoft Knowledge Base. Estos artículos describen dos aserciones comunes que se producen en SQL Server:

    • CORREGIR 923296 : se produce un error en el agente de lector del registro y se registra un mensaje de error de aserción cuando utiliza la duplicación transaccional en SQL Server 2005.

    • CORREGIR 956273 : mensaje de Error al sincronizar datos para una replicación transaccional en SQL Server 2005: "subsistema de lector del registro de transacciones de replicación de replicación: agente < nombre de agente > error"


    Si la aserción en el registro de errores coincide con los problemas de estos artículos de Knowledge Base, instale la revisión apropiada.



Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×