SQL SEVER : Reducir el tamaño del log de transacciones en SQL server
SQL Server se producen en el contexto del modelo de recuperación de la base de datos. Los modelos de recuperación se han diseñado para controlar el mantenimiento del registro de transacciones. Un modelo de recuperación es una propiedad de base de datos que controla la forma en que se registran las transacciones, si el registro de transacciones requiere que se realice la copia de seguridad y si lo permite, y qué tipos de operaciones de restauración hay disponibles.
Existen tres modelos de recuperación: simple, completa y por medio de registros de operaciones masivas. Normalmente, en las bases de datos se usa el modelo de recuperación completa o el modelo de recuperación simple.
El modelo de recuperación de las bases de datos se puede cambiar en cualquier momento.
Modelo de recuperación
SIMPLE
- Sin copias de seguridad de registros.
- Recupera automáticamente el espacio de registro para mantener al mínimo los requisitos de espacio, eliminando, en esencia, la necesidad de administrar el espacio del registro de transacciones.
- Los cambios realizados de
-spués de la copia de seguridad más reciente no están protegidos.
- Solo se puede recuperar hasta el final de una copia de seguridad.
COMPLETA
-Requiere copias de seguridad de registros.
-No se pierde trabajo si un archivo de datos se pierde o resulta dañado.Se puede recuperar hasta cualquier momento
Por medio de registros de operaciones masivas
- Requiere copias de seguridad de registros.
- Reduce el uso del espacio de registro mediante el registro mínimo de la mayoría de las operaciones masivas.
-Complemento del modelo de recuperación completa que permite operaciones de copia masiva de alto rendimiento.
-Se puede recuperar hasta el final de cualquier copia de seguridad. No admite recuperaciones a un momento dado.
-Si el registro resulta dañado o se han realizado operaciones masivas desde la última copia de seguridad de registros, se pueden repetir los cambios desde esa última copia de seguridad. En caso contrario, no se pierde el trabajo.
USE NOMBRE_BD;
GO
-- cambiamos el recovery a nodo simple
ALTER DATABASE NOMBRE_BD
SET RECOVERY SIMPLE;
GO
-- reducirmos el archivo log a 1 MB.
DBCC SHRINKFILE (NOMBRE_BD_log, 1);
GO
-- devolvemos el nivel de recovery a full
ALTER DATABASE NOMBRE_BD
SET RECOVERY FULL;
GO
Para conocer el nombre lógico de los archivos del log consultamos :
sp_helpdb NOMBRE_BD;
Para Limpiar el Log de Transacciones es necesario realizar un Backup del Log
Backup log NOMBRE_BD
to disk =‘C:\test\BackupLog.bak’
Dejar temporalmente la base de datos en modo monousuario (es decir sin acceso al mismo) para garantizar que no haya transacciones pendientes en el momento de hacer el truncado :
USE NOMBRE_BD;
GO
ALTER DATABASE NOMBRE_BD SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE NOMBRE_BD SET READ_ONLY;
--Realizamos el backup y el truncado del log
GO
ALTER DATABASE NOMBRE_BD SET MULTI_USER;
REFERENCIAS :
http://microsoftsqlsecret.fullblog.com.ar/log-de-transacciones-ldf.html
http://www.devjoker.com/contenidos/articulos/520/Reducir-el-tama%C3%B1o-del-log-de-transacciones-en-SQL-server.aspx
https://msdn.microsoft.com/es-es/library/ms189275.aspx
Comentarios
Publicar un comentario