El sistema de monitoreo ha generado una alerta de que una unidad en un servidor que aloja instancias de SQL Server tiene poco espacio. Se descubrió que un archivo de registro de transacciones ha crecido mucho y no se puede reducir porque no hay espacio libre disponible en el archivo. ¿Qué pasos debo seguir para determinar qué está causando que el archivo de registro crezca?
Respuesta1
Si el registro de transacciones crece fuera de control, asegúrese de ejecutar copias de seguridad del registro de transacciones que lo trunquen.
Las transacciones abiertas de larga duración pueden ser la causa del crecimiento de los registros de transacciones. Utilice la declaración DBCC OPENTRAN de SQL Server Management Studio (SSMS) para verificar las transacciones de ejecución más larga en la instancia de SQL Server. Si hay una transacción abierta, ofrecerá session_id (SPID) de la conexión que tiene la transacción abierta. Luego puede usar ese SPID y el procedimiento almacenado sp_who2 para ver a qué conexión pertenece la transacción. Puedes matar ese SPID.
Después de eso, puede cambiar el modelo de recuperación de la base de datos de COMPLETO a SIMPLE y luego intentar reducir la base de datos. Puede volver a poner la base de datos en LLENO, pero debe programar la ejecución de las copias de seguridad completas y las copias de seguridad del registro de transacciones o el problema volverá a ocurrir.
Otra posible causa por la que el registro de transacciones crece inesperadamente es asegurarse de que la base de datos no participe en la replicación/espejo y que se pierda la comunicación entre esta base de datos y la otra. Si por algún motivo el vínculo entre las dos bases de datos se ve afectado, el registro de transacciones seguirá creciendo en la base de datos principal hasta que reciba confirmación de la base de datos reflejada. Como resultado, el registro de transacciones crecerá y no reutilizará el espacio.