KB3173471 - CORRECCIÓN: Error "No se pudo rehacer el registro de registro" y la réplica se suspendió en SQL Server 2016, 2014 o 2012

Se aplica a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core

Síntomas

Tenga en cuenta el siguiente escenario:

  • Está utilizando Microsoft SQL Server 2016, 2014 o 2012.
  • Tiene una base de datos que forma parte del grupo de disponibilidad AlwaysOn.
  • En la réplica principal, se reducen los archivos de base de datos para reducir su tamaño.
  • La réplica principal envía todos los cambios registrados en el registro de transacciones a la réplica secundaria.
  • En la réplica secundaria, los subprocesos de puesta al día aplican los cambios del registro de transacciones a la base de datos que forma parte del grupo de disponibilidad.

En este escenario, la réplica se suspende.

Además, puede recibir un mensaje de error similar al siguiente:

Nota

< > marca de tiempo spid41s Error: 3456, Gravedad: 21, Estado: 1.
< > marca de tiempo spid41s No se pudo rehacer el registro de registro (#), para el id. de transacción (#), en la página (#), la base de datos '<dbname>' (id. de base de datos #). Página: LSN = (#), unidad de asignación = #, tipo = #. Log: OpCode = #, context #, PrevPageLSN: (#). Restaure a partir de una copia de seguridad de la base de datos o repare la base de datos.
<Marca> de tiempo SPID41S Grupos de disponibilidad AlwaysOn El movimiento de datos de la base de datos "<dbname>" se ha suspendido por el siguiente motivo: "system" (Source ID 2; Cadena de origen: 'SUSPEND_FROM_REDO'). Para reanudar el movimiento de datos en la base de datos, tendrá que reanudar la base de datos manualmente. Para obtener información acerca de cómo reanudar una base de datos de disponibilidad, consulte los Libros en pantalla de SQL Server.
< > marca de tiempo spid41s Error: 3313, Gravedad: 21, Estado: 2.Marca<> de tiempo spid41s Durante la repetición de una operación registrada en la base de datos "<dbname>", se produjo un error en el Id. de registro (#). Normalmente, el error específico se registra anteriormente como un error en el servicio Registro de eventos de Windows. Restaure la base de datos a partir de una copia de seguridad completa, o repare la base de datos.

Causa

Este problema se produce cuando se aplican cambios durante el proceso de puesta al día si el motor de base de datos encuentra LSN desordenados en las páginas del sistema (GAM, PFS).

Resolución

Este problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server:

Recomendación: instalar la actualización acumulativa más reciente para SQL Server

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Se recomienda descargar e instalar las actualizaciones acumulativas más recientes para SQL Server:

      

        
La actualización impide que se produzca este problema. Si el problema ya se ha producido, siga estos pasos para volver a unirse al grupo de disponibilidad AlwaysOn:

  1. Quite la réplica secundaria de AlwaysOn existente.
  2. Ejecute el siguiente comando en los archivos de datos afectados para quitar el espacio no asignado de la base de datos:
    DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)
  3. Haga una copia de seguridad de la base de datos y los archivos de registro.
  4. Restaure la base de datos y los registros en la réplica secundaria AlwaysOn.
  5. Únase al grupo de disponibilidad AlwaysOn.

      

Estado

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

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.