Id. de artículo: 873235 - Ver los productos a los que se aplica este artículo
Si es usted un usuario de la edición para pequeñas empresas, podrá encontrar información adicional sobre la solución de problemas y recursos de aprendizaje en el sitio Support for Small Business (soporte para pequeñas empresas).
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

En este artículo se describen los pasos que se deben seguir cuando los registros de transacciones se vuelven demasiado grandes. Unos registros de transacciones llenos pueden inutilizar la base de datos de Microsoft SQL Server. En este artículo se describe cómo truncar y reducir los registros de transacciones y cómo impedir que crezcan de forma inesperada.

Más información

Reducir el tamaño del registro de transacciones

Para recuperarse de una situación en la que los registros de transacciones están llenos, debe reducir su tamaño. Para ello, debe truncar las transacciones inactivas en el registro de transacciones y reducir el archivo de registro de transacciones.

Nota: los registros de transacciones son muy importantes para mantener la integridad de las transacciones de la base de datos. Por lo tanto, no debe eliminar los archivos de registro de transacciones ni siquiera después de haber realizado una copia de seguridad de la base de datos y de los registros de transacciones.


Para obtener más información acerca de cómo reducir el tamaño del registro de transacciones, visite el siguiente sitio web de Microsoft:
Reducción del registro de transacciones en SQL Server 2000
Reducción del registro de transacciones en SQL Server 2005

Truncar las transacciones inactivas del registro de transacciones

Cuando los registros de transacciones estén llenos, debe hacer copia de seguridad inmediatamente del archivo de registro de transacciones. Mientras se crea la copia de seguridad de los archivos de registro de transacciones, SQL Server trunca automáticamente la parte inactiva del registro de transacciones. Dicha parte contiene las transacciones finalizadas y, por tanto, SQL Server ya no utiliza el archivo de registro de transacciones durante el proceso de recuperación. En lugar de permitir que el registro de transacciones siga creciendo y ocupe más espacio, SQL Server reutiliza este espacio inactivo truncado del registro de transacciones.

Para obtener información adicional acerca de los problemas que debe tener en cuenta cuando realice una copia de seguridad de los registros de transacciones y cuando restaure las copias de seguridad de los registros de transacciones, consulte los siguientes temas en los Libros en pantalla de SQL Server:
  • Copias de seguridad de los registros de transacciones
  • Restauración y copia de seguridad de los registros de transacciones
También puede eliminar las transacciones inactivas de un archivo de registro de transacciones mediante el método Truncar. Para obtener información adicional acerca de cómo truncar los registros de transacciones, consulte el tema "Truncar el registro de transacciones" de los Libros en pantalla de SQL Server.

Importante Después de truncar manualmente los archivos de registro de transacciones. deberá crear una copia de seguridad completa de la base de datos antes de crear una copia de seguridad del registro de transacciones.

Para obtener información adicional acerca de los problemas que pueden producirse al truncar los archivos de registro de transacciones, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
62866 Razones por las que el registro de transacciones de SQL no se trunca

Reducir el archivo de registro de transacciones

La operación de copia de seguridad o el método Truncar no reducen el tamaño del archivo de registro. Para reducir el tamaño del archivo de registro de transacciones, debe reducir el archivo de registro de transacciones. Para reducir un archivo de registro de transacciones al tamaño solicitado y para quitar las páginas que no se utilizan, debe utilizar la operación DBCC SHRINKFILE. La instrucción DBCC SHRINKFILE de Transact-SQL solo puede reducir la parte inactiva del archivo de registro.

Nota: la instrucción DBCC SHRINKFILE de Transact-SQL no puede truncar por sí sola el registro ni reducir el espacio usado dentro del archivo de registro.

Para obtener más información acerca de la reducción de los archivos de registro de transacciones, consulte los temas siguientes en los Libros en pantalla de SQL Server:
  • Reducción del registro de transacciones
  • DBCC SHRINKFILE
Para obtener información adicional acerca de cómo reducir los archivos de registro de transacciones en SQL Server 2000, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
272318 Reducir el tamaño del registro de transacciones de SQL Server 2000 con DBCC SHRINKFILE
Para obtener información adicional acerca de los problemas que pueden producirse al reducir los archivos de registro de transacciones, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
814574 PRB: Mensaje de error: "No se puede reducir el archivo de registro..." cuando intenta reducir el archivo de registro de transacciones
324432 PRB: Es posible que no funcionen los comandos DBCC SHRINKFILE y SHRINKDATABASE porque las columnas de text, ntext o image están escasamente pobladas

Impedir que los archivos de registro de transacciones crezcan de forma inesperada

Para impedir que los archivos de registro de transacciones crezcan de forma inesperada, puede utilizar uno de los siguientes métodos:
  • Establecer el tamaño de los archivos de registro de transacciones en un valor grande para evitar que se expandan automáticamente.
  • Configure la expansión automática de los archivos de registro de transacciones mediante el uso de unidades de memoria en lugar de un porcentaje después de evaluar a conciencia el tamaño óptimo de la memoria.

    Para obtener información adicional acerca de los problemas que hay que tener en cuenta al configurar la opción de crecimiento automático, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    315512 Consideraciones para la configuración del crecimiento automático y la autorreducción
  • Cambiar el modelo de recuperación. Si se produce un desastre o los datos resultan dañados, debe recuperar la base de datos a fin de mantener la coherencia de los datos y la integridad de las transacciones de la base de datos. Según lo importantes que sean los datos de la base de datos, puede utilizar uno de los siguientes modelos de recuperación para determinar cómo se realiza la copia de seguridad de los datos y cuál es su exposición a la pérdida de datos:
    • Modelo de recuperación simple
    • Modelo de recuperación completa
    • Modelo de recuperación de registro masivo
    Con el modelo de recuperación simple, puede recuperar la base de datos a la copia de seguridad más reciente. Con el modelo de recuperación completa o el modelo de recuperación de registro masivo, puede recuperar la base de datos al punto en que se produjo el error restaurándola con las copias de seguridad del archivo de registro de transacciones.

    De forma predeterminada, en SQL Server 2000 y SQL Server 2005, el modelo de recuperación de una base de datos de SQL Server está establecido en el modelo de recuperación completa. Con el modelo de recuperación completa, se utilizan copias de seguridad periódicas del registro de transacciones para impedir que el tamaño del archivo de registro de transacciones crezca de forma desproporcionada con respecto al tamaño de la base de datos. Sin embargo, si no se realizan copias de seguridad periódicas del registro de transacciones, el archivo de registro de transacciones crece hasta llenar el disco, y es posible que no pueda realizar ninguna operación de modificación de los datos en la base de datos de SQL Server.

    Si no desea utilizar los archivos de registro de transacciones durante una operación de recuperación de desastres, puede cambiar el modelo de recuperación de completo a simple.
  • Realizar una copia de seguridad de los archivos de registro de transacciones con regularidad para eliminar las transacciones inactivas del registro de transacciones.
  • Diseñar transacciones pequeñas.
  • Asegurarse de que no haya transacciones sin confirmar que continúen ejecutándose por tiempo indefinido.
  • Programar la opción Actualizar estadísticas para que tenga lugar cada día.
  • Para desfragmentar los índices y aumentar el rendimiento de la carga de trabajo en el entorno de producción, utilice la instrucción DBCC INDEXDEFRAG en lugar de la instrucción DBCC DBREINDEX de Transact-SQL. Si ejecuta la instrucción DBCC DBREINDEX, el registro de transacciones podría expandirse considerablemente cuando la base de datos de SQL Server está en modo de recuperación completa. Además, la instrucción DBCC INDEXDEGRAG, a diferencia de la instrucción DBCC DBREINDEX, no retiene los bloqueos durante mucho tiempo.

    Para obtener información adicional acerca de cómo desfragmentar los índices en SQL Server 2000, visite el siguiente sitio web de Microsoft: Si, como parte del plan de mantenimiento de la base de datos, tiene que ejecutar la instrucción DBCC DBREINDEX, deberá dividir el trabajo en varias partes. Además, deberá disponer de las copias de seguridad frecuentes de los registros de transacciones entre la ejecución de los trabajos.

Más información acerca de los archivos de registro de transacciones

En SQL Server 2000 y SQL Server 2005, cada base de datos contiene al menos un archivo de datos y un archivo de registro de transacciones. SQL Server almacena los datos físicamente en el archivo de datos. El archivo de registro de transacciones almacena los detalles de todas las modificaciones que realice en la base de datos de SQL Server y los detalles de las transacciones que se ejecutaron con cada modificación. Como la integridad de las transacciones se considera una característica fundamental e intrínseca de SQL Server, el registro de los detalles de las transacciones no se puede desactivar en SQL Server.

El archivo de registro de transacciones está dividido de forma lógica en segmentos más pequeños que se conocen como archivos de registro virtuales. En SQL Server 2000, puede configurar el archivo de registro de transacciones para que se expanda lo que sea necesario. El usuario puede controlar la expansión del registro de transacciones o esta puede configurarse para utilizar todo el espacio en disco disponible. Toda modificación que realice SQL Server en el tamaño del archivo de registro de transacciones, como truncar los archivos de registro de transacciones o hacer que crezcan, se realiza en unidades de archivos de registro virtuales.

Si el archivo de registro de transacciones que corresponde a una base de datos de SQL Server se llena y tiene configurada la opción para que los archivos de registro de transacciones crezcan automáticamente, estos crecen en unidades de archivos de registro virtuales. A veces, el archivo de registro de transacciones puede llegar a ser muy grande y podría quedarse sin espacio en disco. Cuando un archivo de registro de transacciones crece hasta consumir todo el espacio en disco disponible y no puede expandirse, ya no podrá realizar ninguna operación de modificación de los datos en la base de datos. Además, SQL Server podría marcar la base de datos como sospechosa debido a la falta de espacio para la expansión del registro de transacciones.

Para obtener información adicional acerca de los supuestos que pueden ocasionar que el archivo de registro de transacciones crezca de forma inesperada, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
317375 El registro de transacciones crece inesperadamente o se llena en SQL Server

Referencias

Para obtener información adicional acerca de la solución de problemas del requisito de espacio en disco adicional durante el proceso de recuperación, consulte el tema "Espacio en disco insuficiente" en los Libros en pantalla de SQL Server. Para obtener información adicional acerca de la arquitectura del registro de transacciones, consulte los temas siguientes en los Libros en pantalla de SQL Server:
  • Arquitectura del registro de transacciones
  • Arquitectura lógica del registro de transacciones
  • Arquitectura física del registro de transacciones
Para obtener más información acerca de los modelos de recuperación en SQL Server 2000, consulte los siguientes temas en los Libros en pantalla de SQL Server:
  • Selección de un modelo de recuperación
  • Recuperación simple
  • Recuperación completa
  • Recuperación de registro masivo
  • Cambio entre modelos de recuperación

Propiedades

Id. de artículo: 873235 - Última revisión: miércoles, 17 de abril de 2013 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Enviar comentarios