[Solución] – The Transaction Log for Database is Full Due to ‘Replication’

El error ‘The Transaction Log for Database is Full Due to Replication’ es un mensaje que indica que el log de transacciones está lleno y no puede crecer más. En el caso que la base de datos tenga habilitada la Replicación, puede significar que el log está lleno debido a que hay una gran cantidad de transacciones que no han sido replicadas el suscriptor. Para verificarlo, podemos lanzar el Replication Monitor desde el SSMS y buscar errores en los detalles de las publicaciones.

The Transaction Log for Database is Full Due to 'Replication'
Replication Monitor

Este error también suele pasar en bases de datos que tienen habilitado el Change Data Capture (CDC), una funcionalidad de SQL Server que nos permite tener un registro de todos los cambios ocurridos a nivel de la data en una determinada tabla.

¿Cómo puedo saber si mi base de datos está usando este feature? Usa el siguiente comando, que mostrará un 1 en la base de datos que la tiene habilitada.

SELECT name, is_cdc_enabled FROM sys.databases

Si es el caso, entonces puedes verificar que los jobs de captura de CDC (puedes buscarlos en el SQL Agent, tienen la forma cdc.XXX_capture) se encuentren ejecutando sin errores. Si no están corriendo, deberías iniciarlos para que comiencen a capturar adecuadamente.

Por último, ¿No necesitas este feature y quieres deshabilitarlo? Es sencillo:

USE DB_Name
EXEC sys.sp_cdc_disable_db

Esto eliminará los jobs de captura y limpieza de CDC, y despejará el espacio del log que estaba siendo utilizado para este fin.

Si tienes alguna duda, comentarios o sugerencias, me puedes enviar un correo a bitácoradeundba@gmail.com.

2 Replies to “[Solución] – The Transaction Log for Database is Full Due to ‘Replication’”

Deja un comentario