9002: The transaction log for database is full due to ... (el log de transacciones de la base de datos está lleno)
SQL Server¿Qué significa?
El archivo de log de transacciones de la base de datos está lleno y no se pueden registrar nuevas transacciones. La base de datos rechaza las escrituras y puede comportarse como si fuera de solo lectura.
¿Por qué ocurre?
Sin backups de log en el modelo de recuperación FULL, una transacción abierta durante mucho tiempo, retraso de replicación/AlwaysOn o el log incapaz de crecer (autogrow deshabilitado o disco lleno). log_reuse_wait_desc muestra el motivo.
Cómo solucionarlo
Compruebe log_reuse_wait_desc en sys.databases. Si es LOG_BACKUP en el modelo FULL, haga un backup de log (BACKUP LOG). Si es ACTIVE_TRANSACTION, encuentre la transacción abierta y haga commit/rollback (DBCC OPENTRAN). Libere espacio en disco o corrija la configuración de autogrow del archivo de log. Si el log realmente ha crecido, redúzcalo con DBCC SHRINKFILE después del backup. Si no necesita la cadena de logs, revise el modelo de recuperación.
Más entradas de este motor
- 8152String or binary data would be truncated (los datos de cadena o binarios se truncarían)
- 2628String or binary data would be truncated in table, column ...; truncated value (los datos se truncarían en la tabla y columna indicadas)
- 1222Lock request time out period exceeded (se superó el tiempo de espera de la solicitud de bloqueo)
- 1105Could not allocate space for object in database because the filegroup is full (no se puede asignar espacio: el filegroup está lleno)
- 208Invalid object name (nombre de objeto no válido)
- 229The SELECT/EXECUTE permission was denied on the object (se denegó el permiso SELECT/EXECUTE sobre el objeto)
- 4060Cannot open database requested by the login. The login failed (no se puede abrir la base de datos solicitada; falló el inicio de sesión)