Truncación del registro de transacciones

Si no se eliminaran nunca las entradas del registro de transacciones, el registro lógico crecería hasta llenar todo el espacio disponible en los discos que albergan los archivos de registro físicos. El truncamiento del registro libera automáticamente el espacio del registro lógico para reutilizarse en el registro de transacciones.

Excepto cuando se retrasa por alguna razón, el truncamiento del registro se produce automáticamente como sigue:

  • En el modelo de recuperación simple, después de un punto de control.

  • Bajo el modelo de recuperación completa o el modelo de recuperación optimizado para cargas masivas de registros, después de una copia de seguridad del registro, si un punto de control ha producirse desde la copia de seguridad anterior. Para obtener más información, vea "Truncamiento del registro con el modelo de recuperación completa y el modelo de recuperación optimizado para cargas masivas de registros" posteriormente en este tema.

Aunque es automático, el truncamiento del registro se puede ver retrasado por varios factores. Para obtener información acerca de qué puede retrasar el truncamiento del registro, vea Factores que pueden ralentizar el truncamiento del registro.

Nota importanteImportante

En caso de un retraso largo en el truncamiento del registro, el registro de transacciones se puede llenar. Para obtener información acerca de cómo tratar un registro de transacciones lleno, vea Solucionar problemas de un registro de transacciones lleno (Error 9002).

Para obtener información arquitectónica sobre el truncamiento del registro, vea "Cómo funciona el truncamiento del registro", posteriormente en este tema.

Truncamiento del registro con el modelo de recuperación completa y el modelo de recuperación optimizado para cargas masivas de registros

Bajo el modelo de recuperación completa o el modelo de recuperación registrado de forma masiva, la parte inactiva del registro no se puede truncar hasta que todas sus entradas de registro se hayan capturado en una copia de seguridad del registro. Esto es necesario para mantener la cadena de registro, una serie de entradas de registro que tienen una secuencia ininterrumpida de números de secuencia de registro (LSNes). El registro se trunca cuando se realiza la copia de seguridad del registro de transacciones, siempre que se cumplan las siguientes condiciones:

  • Se ha producido un punto de comprobación desde la última copia de seguridad del registro. Un punto de control es esencial pero no suficiente para truncar el registro bajo el modelo de recuperación completa o el modelo de recuperación registrado de forma masiva. Después de un punto de comprobación, el registro se mantiene intacto, al menos hasta la siguiente copia de seguridad del registro de transacciones.

    Para obtener más información, vea Puntos de comprobación y la parte activa del registro.

  • Ningún otro factor impide el truncamiento del registro.

    Por lo general, si se hacen copias de seguridad con regularidad, el espacio de registro se libera con la misma frecuencia para su uso futuro. Sin embargo, otros factores, como una transacción de ejecución prolongada, pueden impedir temporalmente el truncamiento del registro. Para obtener más información, vea Factores que pueden ralentizar el truncamiento del registro.

  • La instrucción BACKUP LOG no especifica WITH COPY_ONLY.

Para hacer una copia de seguridad el registro de transacciones

Cómo funciona el truncamiento del registro

Nota

El truncamiento no reduce el tamaño del archivo de registro físico. Reducir el tamaño físico de un archivo de registro requiere la reducción del archivo. Para obtener información sobre cómo reducir el tamaño de un archivo de registro físico, vea Reducir el registro de transacciones.

El registro de transacciones es un archivo de registro circular. Cuando se crea la base de datos, el archivo de registro lógico empieza en el principio del archivo de registro físico. Las nuevas entradas del registro se agregan al final del registro lógico y se expanden hacia el final del archivo físico. El registro de transacciones de una base de datos está asignado a uno o varios archivos físicos. SQL Server Database Engine (Motor de base de datos de SQL Server) segmenta cada archivo de registro físico internamente en una serie de archivos de registro virtuales. El truncamiento del registro libera el espacio en el registro lógico eliminando los archivos de registro virtual inactivos desde el inicio del registro lógico. Para obtener información detallada sobre la arquitectura del registro de transacciones, vea Arquitectura lógica del registro de transacciones y Arquitectura física del registro de transacciones.

Los archivos de registro virtuales son las unidades de espacio que se puede reutilizar. Sólo se pueden truncar los archivos de registro que contienen únicamente entradas de registro inactivas. La parte activa del registro de transacciones, el registro activo, no puede truncarse ya que se necesita para recuperar la base de datos. El punto de comprobación más reciente define el registro activo. El registro se puede truncar hasta ese punto de comprobación.

Nota

Para obtener información acerca del funcionamiento de los archivos de registro virtuales, vea Arquitectura física del registro de transacciones.

Cuando se lleva a cabo el punto de comprobación, la parte inactiva del registro de transacciones se marca como reutilizable. A partir de ese momento, se puede liberar la parte inactiva mediante el truncamiento del registro. El truncamiento libera los archivos de registro virtuales para su reutilización. Finalmente, cuando se escribe una nueva entrada en un registro virtual libre, ese archivo de registro virtual pasa de nuevo a estar activo.

Una parte de la información registrada en un punto de comprobación es el número de secuencia de registro (LSN) de la primera entrada del registro que debe estar presente para una reversión correcta de toda la base de datos. Este LSN se denomina LSN de recuperación mínimo (MinLSN). El inicio de la parte activa del registro es el registro virtual que contiene el MinLSN. Cuando se trunca un registro de transacciones, sólo se liberan para su reutilización las entradas del registro por delante de este archivo de registro virtual.

En la siguiente ilustración se muestra un registro de transacciones antes y después del truncamiento. En la primera ilustración se muestra un registro de transacciones que no se ha truncado nunca. El registro lógico tiene actualmente cuatro archivos de registro virtuales en uso. El registro lógico empieza por delante del primer archivo de registro virtual y termina en el registro virtual 4. La entrada MinLSN se encuentra en el registro virtual 3. Los registros virtuales 1 y 2 sólo contienen entradas de registro inactivas. Estas entradas pueden truncarse. El registro virtual 5 no se utiliza aún y no forma parte del registro lógico actual.

Registro de transacciones con cuatro registros virtuales

En la segunda ilustración se muestra el registro después del truncamiento. Se han liberado los registros virtuales 1 y 2 para su reutilización. El registro lógico empieza ahora en el inicio del registro virtual 3. El registro virtual 5 no se utiliza aún y no forma parte del registro lógico actual.

Archivo de registro dividido en cuatro archivos de registro virtuales