martes, 17 de febrero de 2009

Cómo Reducir Log de Transacciones de SQL Server

Soluciones rápidas al problema:
  • Hacer Backup del Log de Transacciones ( Transaction Log ) y reducir el fichero.
  • Ejecuta dos o tres veces la instrucción CHECKPOINT. Esto asegurará que todas las páginas de memoria se han escrito en el fichero de datos.
  • Luego haz un BACKUP LOG WITH TRUNCATE_ONLY para que trunque el registro de transacciones.
  • Posteriormente ejecutas DBCC SHRINKFILE indicando el nombre del fichero del log a reducir. (En la ayuda puedes ampliar información sobre estas dos instrucciones).
Eliminar el fichero para que se genere de Nuevo (Esta solución es demasiado drástica, emplearla solo si falla la anterior):
  • Pon la base de datos en modo "single user".
  • Ejecuta CHECKPOINT dos o tres veces. Esto asegurará que todas las páginas de memoria se han escrito en el fichero de datos.
  • Asegúrate de que no hay conexiones abiertas a la base de datos, con lo que no puede haber transacciones a medio ejecutar.
  • Utiliza sp_detach_db para desconectar dicha base de datos.
  • Elimina el fichero de log o simplementa renombralo ya luego lo borras.
  • Utiliza sp_attach_db para reconectar la base de datos. SQL Server creará un nuevo fichero de log.

Aunque no deves olvidar que en la version 2005 todo es mas facil tan solo deves tener la base de datos en modo simple ( single user) para ver esto deves entrar a las propiedades de la base de datos en opciones busca el combo que dice Modelo de recuperacion y listo; ahora para separar la base de datos deves dar nuevamente click derecho en la base de datos Tarea, Reducir, Archivos luego en tipo de archivo seleccionar Registro (Log) luego en las opciones de reduccion selecciona la de enmedio he indica el tamaño minimo permitido y listo. La reduccion del log se ha completado pero recuerda siempre realizar una copia de la base de datos antes de realizar esta tarea.

No hay comentarios: