Está en la página 1de 3

Manejo de LogFile

Objetivo: Que el estudiante tenga una primera aproximacin de las caractersticas del log de
transacciones de una base de datos afianzando los conceptos iniciales expuestos en clase al respecto del log de transacciones. El log de transacciones provee el medio por el cual un conjunto de tareas de una transaccin son ejecutadas o ninguna de ellas se ejecuta, asegurando que va rollback, solo la data valida es escrita en la base de datos y permite a las transacciones ser deshechas para recrear el estado del sistema antes del fallo que promovi la recuperacin. Cada base de datos SQL SERVER tiene un log que registra todas las modificaciones. Debido a que este log es escrito independientemente, antes de que las modificaciones se hagan, el log de transacciones permite a la base de datos deshacer y restaurar las transacciones en el evento de un fallo en su hardware o en caso de un error en la aplicacin. El log de transacciones se almacena en uno o mas log files separados de los data files. Los registros son escritos en el log de transacciones antes de que el contenido modificado en el cache de la maquina se baje al data file de la base de datos. Averigue como parte de este laboratorio, qu operaciones apoya el log de transacciones, es decir, para qu cosas de usa. El o los archivos que conforman el log de transacciones se dividen en archivos de log virtuales cuyo tamao, junto con su cantidad en el log fsico es determinado por el propio gestor. El gestor tambin decide cuando y cuales log virtuales se eliminan o borran. Ud., puede decidir el tamao mnimo y mximo del log fsico as como su rata de crecimiento usada para expandir el archivo. Adicionalmente puede aadir files fsicos al log, borrarlos, aumentar su tamao y comprimirlos para asi atender la administracin de estos aspectos en la base de datos. Veamos. Usaremos la base de datos nueva en la que crearemos una tabla que Ud. debe importar al SQL siguiendo las instrucciones de la profesora. Copie en una nueva consulta el siguiente conjunto de instrucciones y ejectelas.

USE master; IF EXISTS ( SELECT name FROM sys.databases WHERE name = 'Inventario' ) DROP DATABASE Inventario; CREATE DATABASE Inventario ON ( NAME = Inventario_dat, FILENAME = 'C:\Inventario.mdf' ) LOG ON ( NAME = Inventario_log, FILENAME = 'C:\Inventario.ldf' );

Ahora bajemos del web el archivo DetallesOrdenes y usemos ese archivo de Excel para importar sus datos al SQL SERVER en la base de datos Inventariosiga las instrucciones de la profesora Ahora, averigue en internet los tres tipos de modelos de recuperacin que podemos utilizar en SQL SERVER 2005. Indique que es un modelo de recuperacin y las principales caractersticas de cada uno de ellos. Esta es la segunda parte de su informe de este laboratorio. Ejecute esta instruccin. Que habremos hecho con ella ?

USE master; ALTER DATABASE Inventario SET RECOVERY FULL;

Como se hace esto mismo desde la interfaz grafica? Pues en Object Explorer, clic derecho en el nombre de la base de datos y luego clic en Propiedades. En Propiedades de la base de datos clic en la pagina de Opciones y se setea la propiedad de Modelo de recuperacin.

Monitoreando el log de transacciones.

Puede hacer uso de la vista sys.database_files catalog, Que da los detalles de los files de la base de datos incluyendo el tipo de archivos, el tamao actual y que tanto de le permite crecer. Ejecute..y analice la informacin. Solo una observacin: si el flag de crecimiento es 0, la rata de crecimiento es en paginas de 8-KB; si es 1, el numero es porcentaje.

USE Inventario; SELECT name, size, -- en paginas 8-KB max_size, -- en paginas 8-KB growth, is_percent_growth FROM sys.database_files WHERE type_desc = 'LOG'

Ejecute esta instruccin y ver otra alternativa. Busque su base de datos. Interprete su informacin. DBCC SQLPERF(LOGSPACE); ----tome nota escrita de esta informacion

Haciendo BackUp del LogFile Si una base de datos se configure con los modelos Full or Bulk Logged, se deberia hacer el backup del log de transacciones regularmente de forma que se pueda borrar y liberar espacio. El backup puede ser usado junto con el backup de la base de datos para restaurar despus de una falla. Antes de que el log file sea respaldado, debe hacerse un full backup de la base de datos. Hagamoslo para nuestra base de datos. Ejecute

BACKUP DATABASE Inventario TO DISK = 'C:\Inventario_dat.bak';


Despues del respaldo, vamos a ejecutar estas instrucciones de forma que el log contiene transacciones NO incluidas en el backup. USE Inventario; UPDATE dbo.Order_Details SET Quantity = 50 where orderId = 10248 and ProductID=72; UPDATE dbo.Order_Details SET Discount = .2626 where orderId = 10252 and ProductID=60; DELETE dbo.Order_Details where orderId = 11068; Ahora ejecute nuevamente DBCC SQLPERF(LOGSPACE); y analice su cambio.se increment algo Ahora puede hacer backup del archive de log, con esta instruccion:

-- back up log transacciones BACKUP LOG Inventario TO DISK = 'c:\Inventario_log.bak';


Luego de hacer el backup del log, el SQL Server elimina el espacio de log inactivo, lo que significa que remueve los archivos de log virtuales, pero no reduce el tamao del archivo. Verifique sto ejecutando DBCC SQLPERF(LOGSPACE); Debera notar que el % de espacio de log usado baj ,,,,l

Luego continuaremos con ms de Logs..