sábado, 25 de julio de 2009

restauracion de respaldos en SQL SERVER 2005

Bueno hay diferentes tipos de respaldo en el MSSQL server 2005. Hasta el día de hoy no he tomado ni un curso de inducción sobre esta herramienta de actualización, mi única forma es estar checando el msdn y aparte de eso estar posteando en los foros, el de ms casi no me gusta.

Bueno hace unos días un amigo me estaba comentando que tuvo problemas con un cliente por que el había hecho un respaldo y al darse cuenta este respaldo de la base de datos era diferencial, es decir te guarda todas las transacciones apartir del ultimo respaldo completo que hayas hecho. un backup full.

Yo intente ayudarlo buscando algo de info por la red, el errro que le marcaba a él era "You need a backup full". Osea que necesitaba un respaldo completo de la base de datos.

Empece a buscar algo de info en la red, ya que hasta ese momento yo solo había leído y en la practica pues no había tenido mucho problema en ese tema. Tengo un job que me hace los respaldos a diario en otra unidad de HD fuera del equipo de mi server principal. Esto por cualquier contingencia, ya me paso que un tonto por ahi se le ocurrio sacar el hd de mi server al momento que estaba trabajando y al tratar de echar andar mi server ya no quizo jalar y el respaldo que yo tenia era de 2 dias anteriores, es que antes los hacía a manualmente.

Bueno, el chiste es que empece a indagar, había una pagina buena donde te explicaban los tipos de respaldo que puedes tener, full, differential , transaction log, tail log, file o filegroup backup.

Bueno para terminar, aqui el error que tuvo mi amigo fue que por la presión al momento de tratar de hacer el restore no selecciono o no puso en la query with norecovery, esta sencilla instrucción puede hacer que el manejador no cierre el proceso deja en espera la base de datos, esto para recibir las demas restauraciones, esto incluido la diferencial, eso si, primero tienes que ir en orden, primero el full enseguida el differential, pero... al final que restaures debes de aplicar el recovery para decir que ya terminaste. Otro error comun es que alguien este dentro de la base de datos para eso puedes poner la base de datos en modo single user ajaja, usando el detach puedes hacer eso,ya me paso...jajaja :( deje sin funcionar el sistema una media hora, la regada de mi vida... en fin, lo bueno que solo estaban trabajando dos cajas si no... me cuelgan... pero bueno en fin... no termine de contar que mi amigo esta superespantado por que el ultimo respaldo full que tenia era de 15 o 20 dias antes, así que fue un show para el y no se la acababa con la presión de su cliente.

ok. haciendo resumidas las cuentas, yo ya realice las pruebas para checar que lo que digo es real, mi amigo... como no dije cual fue su error ... era la sencilla palabra "with no recovery" ... definitivamente a veces con tanta presión se nos olvida todo. :)

Pero sirve para aprender. deja esto de experiencia y volvi a modificar mis jobs. para que a medio día tenga otro respaldo que en un momento dado me pueda ayudar para disminuir el trabajo.