Cómo reducir el archivo de registro de transacciones en SQL Server 2005

Resumen

En Microsoft SQL Server 2005, puede comprimir un archivo de registro de transacciones en una base de datos para quitar páginas no utilizadas. El motor de base de datos reutiliza el espacio eficazmente . Sin embargo, cuando un archivo de registro de transacciones crece inesperadamente, tendrá que reducir el archivo de registro de transacciones manualmente.

Este artículo describe cómo utilizar la instrucción DBCC SHRINKFILE para reducir el archivo de registro de transacciones manualmente en el modelo de recuperación completa en una base de datos de SQL Server 2005. El método que se utiliza para reducir el archivo de registro de transacciones en SQL Server 2005 puede diferir del método que se utiliza para reducir el archivo de registro de transacciones en SQL Server 2000. Para obtener más información acerca de cómo reducir el archivo 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 registro de transacciones en SQL Server 2000 con DBCC SHRINKFILE

Más información

En SQL Server 2005, una operación de reducción (DBCC SHRINKFILE) intenta reducir inmediatamente el archivo de registro de transacción especificada al tamaño solicitado. Para reducir el archivo de registro de transacciones manualmente en el modelo de recuperación completa, primero haga una copia del archivo de registro de transacciones. A continuación, utilice la instrucción DBCC SHRINKFILE para reducir el archivo de registro de transacciones.

Normalmente, reducir el archivo de registro de transacciones en SQL Server 2005 es más rápido que reducir el archivo de registro de transacciones en SQL Server 2000. La razón es que el Administrador de registro de SQL Server 2005 crea o reutiliza los archivos de registro virtuales inactivos siguiendo el orden de almacenamiento de disco físico. Por lo tanto, la parte inactiva del archivo de registro de transacciones es normalmente al final del archivo.

Por ejemplo, el archivo de registro de transacciones puede tener 100 archivos de registro virtuales, y se utilizan los archivos de registro virtuales sólo 2. SQL Server 2000 puede almacenar el primer archivo de registro virtual utilizado al principio del archivo de registro de transacciones y la segunda utiliza el archivo de registro virtual en medio de archivo de registro de transacciones. Para reducir el archivo de registro de transacciones a los archivos de registro virtuales sólo 2, SQL Server llena la parte restante del segundo archivo de registro virtual con entradas de registro ficticias. SQL Server mueve el principio del registro lógico al siguiente disponible virtual archivo de registro especificado por el Administrador de registro. El Administrador de registro puede crear un archivo de registro virtual en el medio del archivo de registro de transacciones justo delante del último archivo de registro virtual activo. En ese caso, deberá utilizar varias operaciones de copia de seguridad del registro y varias operaciones de compresión para comprimir correctamente el archivo de registro de transacciones a los archivos de registro virtuales 2. En el peor caso de este ejemplo, puede que tenga que utilizar las operaciones de copia de seguridad de registro 50 y 50 reducir operaciones para reducir satisfactoriamente el archivo de registro de transacciones en archivos de registro virtual 2.

Sin embargo, en SQL Server 2005, puede realizar una instrucción DBCC SHRINKFILE para reducir el archivo de registro de transacciones de forma inmediata a 2 archivos de registro virtuales. Puede hacerlo porque el Administrador de registro de SQL Server 2005 crea archivos de registro virtuales 2 siguiendo el orden de almacenamiento de disco físico. Ambos archivos de registro virtuales están al principio del archivo de registro de transacciones.

Cuando intenta comprimir un archivo de registro de transacciones que tiene poco espacio libre en SQL Server 2005, tendrá que realizar una operación de copia de seguridad de registro adicionales. La operación de copia de seguridad de registro adicionales trunca el archivo de registro de transacciones a un tamaño menor. Esta operación de copia de seguridad del registro es además de los tres pasos que realiza para reducir el archivo de registro de transacciones en SQL Server 2000. Para obtener más información, vea el artículo de Microsoft Knowledge Base que se menciona en la sección "Resumen". Para comprimir un archivo de registro de transacciones que tiene poco espacio libre en SQL Server 2005, siga estos pasos:
  1. Copia el archivo de registro de transacciones para realizar la mayoría de los archivos de registro virtuales activos inactivos. Por lo tanto, se pueden quitar los archivos de registro virtuales inactivos en un paso posterior. Para ello, inicie SQL Server Management Studio y, a continuación, ejecutar una instrucción de Transact-SQL que es similar a la siguiente instrucción de Transact-SQL.
    BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'
    Nota: En esta declaración, < DatabaseName > es un marcador de posición para el nombre de la base de datos que se copia y < BackupFile > es un marcador de posición para la ruta de acceso completa del archivo de copia de seguridad.

    Por ejemplo, ejecute la siguiente instrucción de Transact-SQL.
    BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'
  2. Reducir el archivo de registro de transacciones. Para ello, ejecute una instrucción de Transact-SQL que es similar a la siguiente instrucción de Transact-SQL.
    DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS
    Nota: En esta declaración, < FileName > es un marcador de posición para el nombre del archivo de registro de transacciones y < TargetSize > es un marcador de posición para el tamaño de destino que desea que el archivo de registro de transacciones sea. El tamaño de destino debe ser razonable. Por ejemplo, no se puede reducir el archivo de registro de transacciones a un tamaño inferior a 2 archivos de registro virtuales.
  3. Si la instrucción DBCC SHRINKFILE no reduce el archivo de registro de transacciones al tamaño de destino, ejecute la instrucción BACKUP LOG que se menciona en el paso 1 para que varios de los archivos de registro virtuales inactivos.
  4. Ejecute la instrucción DBCC SHRINKFILE que se menciona en el paso 2. Después de esta operación, el archivo de registro de transacciones debe ser prácticamente el tamaño de destino.
En resumen, el algoritmo de log manager para obtener el siguiente archivo de registro virtual cambiado en SQL Server 2005. Por lo tanto, reducir el archivo de registro de transacciones en SQL Server 2005 puede diferir comprimir el archivo de registro de transacciones en SQL Server 2000.
  • Si un archivo de registro tiene gran cantidad de espacio libre, reducir el archivo de registro de transacciones en SQL Server 2005 es más rápido que reducir el archivo de registro de transacciones en SQL Server 2000.
  • Si un archivo de registro no tiene ningún espacio libre, reducir el archivo de registro de transacciones en SQL Server 2005 es igual a reducir el archivo de registro de transacciones en SQL Server 2000.
  • Si un archivo de registro tiene poco espacio libre, tendrá que realizar una operación de copia de seguridad del registro adicionales en SQL Server 2005 que se debe realizar en SQL Server 2000.

Referencias

Para obtener más información acerca de cómo reducir el registro de transacciones, vaya al sitio Web Microsoft Developer Network (MSDN) reducir el registro de transacciones .


Para obtener más información acerca de la instrucción DBCC SHRINKFILE, vaya al sitio Web de MSDN de DBCC SHRINKFILE (Transact-SQL) .


Para obtener más información acerca de truncamiento del registro de transacciones, vaya al sitio Web de MSDN de Truncamiento del registro de transacciones .
Propiedades

Id. de artículo: 907511 - Última revisión: 17 ene. 2017 - Revisión: 1

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

Comentarios