Solucionar problemas de un registro de transacciones lleno (Error 9002)

En este tema se tratan las posibles respuestas a un registro de transacciones lleno y se sugiere cómo evitar esta situación en el futuro. Cuando el registro de transacciones se llena, SQL Server Database Engine (Motor de base de datos de SQL Server) genera un error 9002. El registro se puede llenar cuando la base de datos está en línea o en recuperación. Si el registro se llena cuando la base de datos está en línea, la base de datos seguirá en conexión, pero solo se puede leer y no actualizar. Si el registro se llena durante la recuperación, Database Engine (Motor de base de datos) marca la base de datos como RESOURCE PENDING. En ambos casos, es necesaria la intervención del usuario para proporcionar espacio de registro.

Respuesta a un registro de transacciones lleno

La respuesta apropiada a un registro de transacciones lleno depende en parte de la condición o condiciones que han causado que el registro se llene. Para descubrir qué impide el truncamiento del registro en un caso determinado, use las columnas log_reuse_wait y log_reuse_wait_desc de la vista de catálogo sys.database. Para obtener más información, vea sys.databases (Transact-SQL). Para obtener la descripción de los factores que pueden retrasar el truncamiento del registro, vea Factores que pueden ralentizar el truncamiento del registro.

Nota importanteImportante

Si la la base de datos estaba en recuperación cuando se produjo el error 9002, una vez resuelto el problema, recupere la base de datos mediante ALTER DATABASE nombreDeBaseDeDatos SET ONLINE.

Las alternativas de respuesta ante un registro de transacciones lleno incluyen:

  • Realizar copias de seguridad del registro.

  • Liberar espacio en disco para que el registro pueda crecer automáticamente.

  • Mover el archivo de registro a una unidad de disco con suficiente espacio.

  • Aumentar el tamaño de un archivo de registro.

  • Agregar un archivo de registro en un disco diferente.

  • Terminar o eliminar una transacción de larga duración.

Estas alternativas se describen en las secciones siguientes. Elija la respuesta más apropiada para la situación.

Realizar copias de seguridad del registro

En el modelo de recuperación completa o en el optimizado para cargas masivas de registros, si no se ha realizado recientemente ninguna copia de seguridad del registro de transacciones, puede que la copia de seguridad sea la que evita el truncamiento del registro. Si nunca se ha realizado una copia de seguridad del registro, debe crear dos copias de seguridad de registros para que Database Engine (Motor de base de datos) pueda truncar el registro en el punto de la última copia de seguridad. El truncamiento del registro libera espacio para nuevas entradas del registro. Para evitar que el registro se vuelva a llenar, realice copias de seguridad con frecuencia.

Para crear una copia de seguridad del registro de transacciones

Nota importanteImportante

Si la base de datos está dañada, vea Copias del final del registro.

Liberar espacio en disco

Puede liberar espacio en la unidad de disco que contiene el archivo de registro de transacciones de la base de datos eliminando o desplazando otros archivos. La liberación de espacio de disco permite que el sistema de recuperación amplíe automáticamente el archivo de registro.

Mover el archivo de registro a otro disco

Si no puede liberar suficiente espacio en la unidad de disco que contiene el archivo de registro, considere la posibilidad de desplazarlo a otra unidad con suficiente espacio.

Nota importanteImportante

Los archivos de registro no se deben almacenar en sistemas de archivo comprimidos.

Para mover un archivo de registro

Aumentar el tamaño de un archivo de registro

Si hay espacio disponible en el disco del registro, puede aumentar el tamaño del archivo de registro. El tamaño máximo de los archivos de registro es de dos terabytes (TB) por cada archivo.

Para aumentar el tamaño de archivo

Si el crecimiento automático está deshabilitado, la base de datos está en línea y hay suficiente espacio en el disco, puede:

  • Aumentar manualmente el tamaño del archivo para producir un solo incremento de tamaño.

  • Habilitar el crecimiento automático utilizando la instrucción ALTER DATABASE para establecer un incremento de tamaño distinto de cero para la opción FILEGROWTH.

[!NOTA]

En cualquier caso, si se ha alcanzado el límite del tamaño actual, aumente el valor MAXSIZE.

Agregar un archivo de registro en otro disco

Agregue un nuevo archivo de registro a la base de datos en otro disco que tenga suficiente espacio mediante ALTER DATABASE <nombreDeBaseDeDatos> ADD LOG FILE.

Para agregar un archivo de registro

Identificar y administrar una transacción de ejecución prolongada

Para obtener más información, vea Administrar las transacciones de ejecución prolongada.