Compartir por


MSSQLSERVER_9004

Se aplica a: SQL Server

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 9004
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico LOG_CORRUPT
Texto del mensaje Se produjo un error mientras se procesaba el registro para la base de datos '%.*ls'. If possible, restore from backup. Si no dispone de una copia de seguridad, puede ser necesario generar de nuevo el registro.

Explicación

Se encontró un error al procesar el registro durante la operación de reversión, recuperación o replicación. Esto podría indicar un error detectado por el sistema operativo o un error de coherencia interno detectado por SQL Server.
El Motor de base de datos de SQL Server realiza comprobaciones lógicas sobre la coherencia del contenido del registro de transacciones a medida que lee y procesa. No se comprueban todos los aspectos del encabezado de registro, de los bloques de registro y de las entradas de registro. El número de estado proporciona más información sobre el tipo de error:

  • Estado 1 El encabezado del archivo de registro del archivo de registro virtual (VLF) estaba dañado. Si se encuentra un encabezado del archivo de registro dañado como parte del inicio de la base de datos al iniciar el servicio, es posible que aparezca el error 9004 en el REGISTRO DE ERRORES. El encabezado del archivo de registro es la primera parte de cada VLF dentro de un registro de transacciones. El encabezado del archivo de registro no es el mismo que el encabezado de un solo archivo o que los primeros 8 KB del archivo de registro. Si el encabezado de archivo del archivo de registro está dañado, puede recibir el mensaje 5172, de forma similar a lo que ocurre cuando la página del encabezado de archivos de bases de datos está dañada.
  • Estados 2 y 3 Un bloque de registro no era válido al realizar la recuperación durante una operación de RESTAURACIÓN.
  • Estados 4 a 12 Son todas las comprobaciones de los bloques de registro al procesar los registros. Entre ellas se incluyen la paridad, el sector y otras comprobaciones lógicas de la coherencia del registro de transacciones.

En la mayoría de los casos, este error solo aparece en el REGISTRO DE ERRORES o en el registro de eventos de la aplicación de Windows con el identificador de evento 9004, porque la operación que procesa el registro no se basa en un comando de usuario directo (como una recuperación que se ejecuta cuando se inicia el motor de SQL Server). En estas situaciones, el error 9004 suele aparecer junto con el error 3414. Sin embargo, algunas consultas como ALTER DATABASE podrían requerir el procesamiento del registro y, por tanto, aparecerán estos errores. Dado que el error se presenta como Gravedad=21, la sesión de usuario se desconecta.

Causa

El error 9004 es un error general que indica que el contenido del registro de transacciones está dañado. La razón por la que el registro se vuelve incoherente es similar a cualquier problema de daños en la base de datos detectado por el motor de SQL Server. Para encontrar la causa de los daños en el registro, debe seguir técnicas similares que se usan para los daños en la base de datos, incluido un análisis de posibles problemas de hardware, del sistema de archivos y de E/S. Tenga en cuenta que DBCC CHECKDB no comprueba el registro de transacciones como parte de sus operaciones y no puede detectar errores de daños en el registro. El motor de SQL Server genera el error 9004.

Acción del usuario

Este error se corregirá con una de las siguientes acciones:

  • Restaurar desde una copia de seguridad: restaure a partir de una copia de seguridad correcta conocida para recuperarse de este problema. Si la parte del registro de la copia de seguridad de una base de datos o de un registro incluye contenido dañado, puede que se produzca el error 9004 en la RESTAURACIÓN. En esta situación, el registro de transacciones de la copia de seguridad está dañado.

  • Recompilar el registro: si no puede restaurar desde una copia de seguridad, es posible que pueda poner la base de datos en línea mediante la regeneración del registro de transacciones. Debe comprender de manera exhaustiva las ramificaciones de la recompilación del registro de transacciones. Esto incluye una posible pérdida de coherencia transaccional de la base de datos. Para más información sobre cómo recompilar el registro de transacciones, vea Resolver errores en modo de emergencia de base de datos.

  • Examinar registros de problemas del sistema: además, compruebe el registro de eventos del sistema y los registros de errores para identificar problemas dentro del sistema que pueden haber causado el problema.