Solucionar problemas de un registro de transacciones lleno (Error 9002 de SQL Server)
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, el 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 mientras la base de datos está en línea, la base de datos permanece en línea, pero solo se puede leer, no se puede actualizar. Si el registro se llena durante la recuperación, 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, consulte Registro de transacciones (SQL Server).
Importante
Si 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 nombre_de_base_de_datos 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 hizo una copia de seguridad del registro, debe crear dos copias de seguridad de registros para que el 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
Importante
Si la base de datos está dañada, vea Copias del final del registro (SQL Server).
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.
Importante
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 un disco diferente que tenga espacio suficiente mediante ALTER DATABASE <database_name> ADD LOG FILE.
Para agregar un archivo de registro
Consulte también
ALTER DATABASE (Transact-SQL)
Administrar el tamaño del archivo de registro de transacciones
Copias de seguridad de registros de transacciones (SQL Server)
sp_add_log_file_recover_suspect_db (Transact-SQL)