Master

Solo disponible en BuenasTareas
  • Páginas : 3 (521 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de septiembre de 2012
Leer documento completo
Vista previa del texto
SQL SERVER: Log de Transacciones
in SQL SERVER , by Sergio Sainz
El Transaction Log de SQL server es uno de los quebraderos de cabeza para muchos administradores noveles que no cuentan con un buenplan de mantenimiento o no conocen a fondo el funcionamiento de SQL como para reducirlo a mano. En este post trataré de explicar y dar algunas soluciones rápidas para evitar el aburrimiento. A quienquiera información más detallada le recomiendo los Libros en Pantalla de SQL o Googlear un poco que nunca está de más  .
¿Qué es el Transaction Log?
Por cada bbdd (archivo .mdf) se crea un archivo delog (archivo .ldf) en el que se almacenan todos los cambios que se producen en la bbdd. En él se van guardando cambios que luego permitirán volver atrás (rollback) en una transacción o incluso haceruna recuperación a un estado anterior.
¿Por qué puede ocupar mucho más que la propia bbdd?
Cuando se ejecutan muchas consultas y/o afectan a un gran número de registros, produciendo cambios en labbdd. Todos los cambios se van almacenando en el transaction log, si además no tenemos un plan de mantenimiento que reduzca este log de forma periódica el .ldf se irá llenando hasta ocupar una grancantidad de espacio y terminará por llenar el disco.
¿Cómo se reduce el log de transacciones?
Existen varias maneras, la forma más recomendable es utilizando un plan de mantenimiento que realice unacopia de seguridad del registro de transacciones. A continuación vamos a ver algunos ejemplos y posibilidades:
* Backup log: Guardamos un backup y luego reducimos el log de la bbdd “sergiodb” a 10 MbUSE [sergiodb] – Utilizamos la bbdd sergiodb
CHECKPOINT – Para que todas las páginas de memoria se escriban en la bd
GOEXEC sp_addumpdevice ‘disk’ ,‘CopiaMiBase_sergiodb’ ,‘c:\LogMiBase_sergiodb.bak’ – Creamos un punto donde guardaremos el log y procedemos a hacer el backup con truncado del log
BACKUP DATABASE sergiodb TO CopiaMiBase_sergiodb
BACKUP LOG pruebamm WITH TRUNCATE_ONLY...
tracking img