Configuramos el reflejo de la base de datos durante el fin de semana y olvidamos volver a habilitar el trabajo que respalda los registros de transacciones. Cuando llegué esta mañana, el registro de transacciones se había disparado a 58 GB y ocupaba la mayor parte del espacio en el disco.
Hice una copia de seguridad manual del registro de transacciones en el disco para que la base de datos vuelva a ejecutarse, sin embargo, ejecutar DBCC SHRINKFILE no parece disminuir el tamaño físico del archivo de registro de transacciones.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Si reviso el uso del registro usando
DBCC SQLPERF(LOGSPACE)
Puedo ver que solo se está utilizando el 22% del registro actual
Nombre de la base de datos Tamaño del registro (MB) Espacio de registro utilizado (%) Estado MyDatabaseName 55440.87 22.38189 0
Si log_reuse_wait_desc
reviso en sys.databses, el único registro que veo es DATABASE_MIRRORING
, así que supongo que el espejo está jugando un papel en por qué el tamaño físico del archivo de registro no se reducirá.
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
También he notado que el estado de duplicación de mi base de datos principal está Suspendido, e intentar reanudarlo inmediatamente falla con el siguiente error:
El socio de duplicación remota para la base de datos 'MyDatabaseName' encontró el error 5149, estado 1, gravedad 25. La duplicación de la base de datos se ha suspendido. Resuelva el error en el servidor remoto y reanude la duplicación, o elimine la duplicación y restablezca la instancia del servidor duplicado.
Los registros de error en el servidor espejo también contienen este error, pero también contienen errores acerca de que la unidad del archivo de registro está llena
MODIFICAR ARCHIVO encontró el error 112 del sistema operativo (No hay suficiente espacio en el disco) al intentar expandir el archivo físico.
y
F: \ Databaselogs \ MyDatabaseName_1.ldf: Error del sistema operativo 112 (No hay suficiente espacio en el disco).
El servidor principal tiene 60 GB en la unidad de archivo de registro (hay otras bases de datos alojadas aquí), mientras que el servidor duplicado solo tiene 45 GB.
Hacer una copia de seguridad del archivo de registro hizo que la base de datos se pueda volver a usar, sin embargo, también quiero disminuir el tamaño del archivo de registro físico en el disco y reanudar la duplicación.
¿Cómo puedo reducir el tamaño de mi archivo de registro de transacciones físicas sin comprometer la duplicación o la cadena de respaldo?
Estoy ejecutando SQL Server 2005