Factores que pueden ralentizar el truncamiento del registro

El truncamiento del registro libera el espacio en el archivo de registro para que lo pueda reutilizar el registro de transacciones. Dado que la parte activa del registro no se puede truncar ni quitar mediante reducción, puede retrasarse el truncamiento cuando las entradas del registro permanecen activas durante largo tiempo.

Nota

Para obtener más información acerca de cómo funciona el truncamiento del registro, vea Truncación del registro de transacciones.

Las entradas de registro pueden permanecer activas bajo diversas condiciones, que se describen en este tema. Puede descubrir qué es la prevención del truncamiento del registro mediante las columnas log_reuse_wait y log_reuse_wait_desc de la vista de catálogo sys.databases.

Nota

Algunos de estos factores, como una transacción de muy larga duración o una sesión de creación de reflejo de la base de datos en pausa, pueden provocar que se llene el registro de transacciones. Para obtener información acerca de cómo responder ante un registro de transacciones lleno, vea Solucionar problemas de un registro de transacciones lleno (Error 9002).

La siguiente tabla describe brevemente los valores de las columnas log_reuse_wait y log_reuse_wait_desc de la vista de catálogo sys.database.

valor log_reuse_wait

valor log_reuse_wait_desc

Descripción

0

NOTHING

Hay actualmente uno o más archivos de registro virtual reutilizables.

1

CHECKPOINT

No se ha producido ningún punto de comprobación desde el último truncamiento o el encabezado del registro no se ha movido más allá de un archivo de registro virtual (todos los modelos de recuperación).

Éste es un motivo habitual para retrasar el truncamiento. Para obtener más información, vea Puntos de comprobación y la parte activa del registro.

2

LOG_BACKUP

Se necesita una copia de seguridad del registro para hacer avanzar el encabezado del registro (modelos de recuperación completos o registrados de forma masiva sólo).

NotaNota
Las copias de seguridad del registro no evitan el truncamiento.

Cuando se completa la copia de seguridad del registro, se avanza el encabezado del registro y algún espacio del registro podría convertirse en reutilizable.

3

ACTIVE_BACKUP_OR_RESTORE

Existe una recuperación o copia de seguridad de datos en curso (todos los modelos de recuperación).

La copia de seguridad de datos funciona como una transacción activa y, cuando se ejecuta, la copia de seguridad impide el truncamiento. Para obtener más información, vea "Operaciones de copia de seguridad de datos y operaciones de restauración" más adelante en este tema.

4

ACTIVE_TRANSACTION

Existe una transacción activa (todos los modelos de recuperación).

  • Podría existir una transacción de larga duración en el inicio de la copia de seguridad del registro. En este caso, para liberar espacio se podría requerir otra copia de seguridad del registro. Para obtener más información, vea "Transacciones activas de ejecución prolongada" más adelante en este tema.

  • Se difiere una transacción (SQL Server 2005 Enterprise Edition y versiones posteriores sólo). Una transacción diferida es efectivamente una transacción activa cuya reversión se bloquea debido a algún recurso no disponible. Para obtener información sobre las causas de transacciones diferidas y cómo quitarlas del estado diferido, vea Transacciones diferidas.

5

DATABASE_MIRRORING

Se realiza una pausa en la creación de reflejo de la base de datos o, en el modo de alto rendimiento, la base de datos reflejada está notablemente detrás de la base de datos de la entidad de seguridad (sólo para el modelo de recuperación completa).

Para obtener más información, vea "Creación de reflejo de la base de datos y registro de transacciones" más adelante en este tema.

6

REPLICATION

Durante las replicaciones transaccionales, las transacciones relevante para las publicaciones no se han entregado aún a la base de datos de distribución (sólo para el modelo de recuperación completa).

Para obtener más información, vea "Replicación transaccional y registro de transacciones" más adelante en este tema.

7

DATABASE_SNAPSHOT_CREATION

Se está creando una instantánea de base de datos (todos los modelos de recuperación).

Éste es un motivo habitual, por lo general breve, para retrasar el truncamiento del registro.

8

LOG_SCAN

Se está produciendo un recorrido del registro (todos los modelos de recuperación).

Éste es un motivo habitual, por lo general breve, para retrasar el truncamiento del registro.

9

OTHER_TRANSIENT

No se utiliza este valor actualmente.

Operaciones de copia de seguridad de datos y operaciones de restauración

El truncamiento del registro no se puede producir durante una operación de copia de seguridad ni de restauración. En SQL Server 2005 y versiones posteriores, las copias de seguridad del registro pueden producirse durante una copia de seguridad de datos. Sin embargo, no se puede producir el truncamiento del registro durante estas copias de seguridad de registros porque todo el registro de transacciones debe permanecer disponible durante la operación de copia de seguridad de datos. Si la copia de seguridad de una base de datos impide el truncamiento del registro, la cancelación de la copia de seguridad podría ayudar a solucionar el problema inmediato.

Para obtener más información acerca del truncamiento del registro, vea Truncación del registro de transacciones.

Transacciones activas de ejecución prolongada

Una transacción activa requiere que el registro permanezca activo a partir de la entrada del registro que contiene el inicio de la transacción. Por ejemplo, si el usuario controla el inicio y la finalización de una transacción, una causa frecuente de las transacciones de ejecución prolongada es que un usuario inicie una transacción y se ausente mientras la transacción queda en espera de una respuesta suya. En estos casos, aunque la transacción en espera genere muy poco registro en sí misma, la transacción retiene el truncamiento del registro y provoca el excesivo crecimiento del mismo.

Nota

Para obtener información acerca de cómo evitar transacciones de ejecución prolongada, vea Codificar transacciones eficaces.

Creación de reflejo de la base de datos y registro de transacciones

La creación de reflejo de la base de datos requiere que cada entrada del registro permanezca activa hasta que la instancia de servidor de la entidad de seguridad reciba una notificación por parte de la instancia de servidor reflejado de que el registro se ha escrito en disco en el servidor reflejado. Si la instancia de servidor reflejado queda retrasada con respecto a la instancia de servidor de la entidad de seguridad, la cantidad de espacio de registro activo crece en consonancia. En este caso, puede que sea necesario detener la creación de reflejo de la base de datos, hacer una copia de seguridad de registros que trunca el registro, aplicar esta copia de seguridad de registros a la base de datos reflejada (mediante WITH NORECOVERY) y reiniciar la creación de reflejo.

Nota importanteImportante

Además, antes de que pueda iniciar la creación de reflejo, si se realizan copias de seguridad de registros adicionales posteriores a la copia de seguridad de registros requerida, también debe aplicar manualmente cada copia de seguridad de registros adicional (siempre usando WITH NORECOVERY). Después de aplicar la copia de seguridad más reciente del registro, puede empezar a crear el reflejo.

Para obtener más información, vea Quitar la creación de reflejo de la base de datos y Configurar la creación de reflejo de la base de datos.

Replicación transaccional y registro de transacciones

La replicación de mezcla y la replicación de instantáneas no afectan al tamaño del registro de transacciones, pero la replicación transaccional sí que puede afectar a dicho tamaño. Si una base de datos incluye una o varias publicaciones transaccionales, el registro no se trunca hasta que todas las transacciones relevantes para las publicaciones se hayan entregado en la base de datos de distribución. Si el registro de transacciones está aumentando demasiado y el Agente de registro del LOG se está ejecutando de forma programada, considere la posibilidad de acortar el intervalo entre ejecuciones o establecer que se ejecute en modo continuo. Si se define que se ejecute en modo continuo (la opción predeterminada), asegúrese de que se está ejecutando. Para obtener más información acerca de cómo comprobar el estado del Agente de registro del LOG, vea Cómo ver información y realizar tareas para los agentes asociados con una publicación (Monitor de replicación).

Además, si ha definido la opción "sync with backup" en la base de datos de publicaciones o en la base de datos de distribución, el registro de transacciones no se trunca hasta que se haya realizado una copia de seguridad de todas las transacciones. Si el registro de transacciones está aumentando demasiado y ha definido esta opción, considere la posibilidad de acortar el intervalo entre las copias de seguridad del registro de transacciones. Para obtener más información sobre cómo realizar copias de seguridad y restauraciones de las bases de datos implicadas en la replicación transaccional, vea Estrategias para hacer copias de seguridad y restaurar la replicación de instantáneas o transaccional.

Para administrar la replicación

Para supervisar la replicación