Solucionar problemas de un registro de transacciones lleno (Error 9002)
Actualizado: 14 de abril de 2006
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á conectada o en recuperación. Si el registro se llena cuando la base de datos está conectada, la base de datos seguirá en conexión, pero sólo 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..
Importante: |
---|
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.
[!NOTA] El truncamiento del registro forzado rompe la cadena de registros y deja la base de datos en situación de vulnerabilidad hasta la siguiente copia de seguridad de base de datos completa. Por esta razón, se quitará la opción TRUNCATE_ONLY de la instrucción BACKUP en una versión futura de SQL Server. Evite el uso de esta opción en los nuevos trabajos de desarrollo y piense en modificar las aplicaciones que la usan actualmente.
Realizar copias de seguridad del registro
En el modelo de recuperación completa o por medio de registros de operaciones masivas, 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
Importante: |
---|
Si la base de datos está dañada, vea Copias de seguridad de registros después del error. |
- Cómo realizar una copia de seguridad de un registro de transacciones (SQL Server Management Studio)
- Cómo crear una copia de seguridad del registro de transacciones (Transact-SQL)
- SqlBackup (SMO)
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.
Para aumentar el tamaño de archivo
Si el crecimiento automático está deshabilitado, la base de datos está conectada y hay suficiente espacio en el disco, puede:
- Aumentar manualmente el tamaño del archivo para producir un sólo 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
- Agregar y eliminar archivos de datos y de registro de transacciones (Transact-SQL)
- Cómo agregar archivos de datos o de registro a una base de datos (SQL Server Management Studio)
Identificar y administrar una transacción de ejecución prolongada
Para obtener más información, vea Administrar las transacciones de ejecución prolongada.
Vea también
Conceptos
Crear copias de seguridad del registro de transacciones
Factores que pueden ralentizar el truncamiento del registro.
Información general de los modelos de recuperación
Introducción a los registros de transacciones
Trabajar con copias de seguridad del registro de transacciones
Otros recursos
ALTER DATABASE (Transact-SQL)
Administrar el registro de transacciones
sp_add_log_file_recover_suspect_db (Transact-SQL)
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
14 de abril de 2006 |
|