2 comentarios

¿Cuando se debe reconstruir el transaction log?


¿Cuando se debe reconstruir el transaction log?

10 puntos si tu respuesta es “no seas tonto, nunca” y menos un millón de puntos si tu respuesta es cualquier otra. Pero, si no tienes una estrategia de respaldos y tu hardware ha corrompido tu transaction log entonces no tienes opción tendrás que reconstruir el log, pero esto nunca debería pasar porque, tienes una estrategia de respaldos, ¿cierto?

¿Sabes que es lo que hace una reconstrucción del log?, es muy simple, arranca el log de transacciones sin tomar en cuenta si existen transacciones no finalizadas o atoradas y crea uno nuevo. Esto normalmente ocasiona corrupciones en la estructura de la base de datos e inconsistencias transaccionales, lindo ¿no?

En SQL Server 2000, el comando para hacer esto es: DBCC REBUILD_LOG que por cierto no está documentado ni soportado (excepto bajo guía de soporte de Microsoft) cuando el log es reconstruido, un mensaje es escrito en el log de errores de SQL y en el log de eventos de Windows.

En SQL Server 2005, el comando para realizar esto es DBCC CHECKDB con la opción REPAIR_ALLOW_DATA_LOSS que de igual forma no está documentado ni soportado.

Aquí les va un ejemplo que ayudara a entender que podría pasar en caso de hacer reconstrucción de un log,  supongamos que estamos en el cajero automático realizando una transacción vamos a transferir 10,000 pesos de tu cuenta de nomina a otra tu cuenta de ahorros, el movimiento se divide en dos partes la primera es actualizar tu saldo en la cuenta de nomina restándote 10,000 pesos y lo segundo es actualizar tu cuenta de ahorros sumándole 10, 000 pesos, ahora imagina que justo en el movimiento se fuera la luz del data center del banco y que la pantalla te apareciera fuera de línea,  que pensarías pues el sistema debe estar preparado para algo así no debe haber ningún problema, mientras tanto la energía regresa y la base de datos debería de hacer un rollback a la transacción incompleta es decir regresar tu saldo como estaba inicialmente , pero por razones solamente conocidas por el nuevo DBA decidió realizar una reconstrucción en el log para levantar el sistema más rápido, que crees la irrecuperable porción del log era tu transacción que solo había hecho al resta de tu saldo, adiós a tus 10, 000 pesos.

El soporte del producto te recomendara reconstruir el log de transacciones únicamente si algo ha corrompido la base de datos y si no tienes ¡backups¡ recalco esta parte porque es importante tener siempre una estrategia de respaldos,

Señores solo queda por decir respalden por favor, no querrán ver sus bases de datos en modo sospechoso o en cualquier estado donde no se pueda recuperar,

Saludos

http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/06/15/632398.aspx

Paul Randal – MSFT

Anuncios

Si te sirvio o te gusto el post, deja un comentario, o vota por el blog, esto nos ayuda a seguir creciendo, Gracias

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: