Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Verificar .bak antes de restaurar

Estas en el tema de Verificar .bak antes de restaurar en el foro de SQL Server en Foros del Web. Saludos comunidad, Les cuento, tengo un pequeño script que hace un restore desde un .bak de la siguiente forma: Código: RESTORE DATABASE ext_Beemox_backup FROM DISK ...
  #1 (permalink)  
Antiguo 22/08/2013, 14:23
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Verificar .bak antes de restaurar

Saludos comunidad,

Les cuento, tengo un pequeño script que hace un restore desde un .bak de la siguiente forma:

Código:
RESTORE DATABASE ext_Beemox_backup FROM DISK = 'backup.bak'
WITH REPLACE
GO
El problema es que a veces me ha pasado que falla el restore y me deja la base de datos inutilizable ya que puede quedar horas y horas en modo "recovering..."

Producto de esto, es que me gustaría poder saber si existe una forma de poder validar que el restore se hará correctamente, y de ser así hacerlo ? es posible eso?

La forma de ejecutar el script es la siguiente:

sqlcmd -i backup.bak -S localhost

Al tenerlo bien testeado la idea es pasarlo al adm de tareas para automatizarlo.a

saludos
  #2 (permalink)  
Antiguo 22/08/2013, 14:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

busqueda rapida en google con el sig query:

how to verify backup in sql server

https://www.simple-talk.com/sql/back...ackup-testing/


http://www.mssqltips.com/sqlservertu...up-is-useable/

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/08/2013, 15:48
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Muchas gracias por la respuesta, pero entonces debería hacer algo como:

Código:
DECLARE @checkbak bit
SET @checkbak = 'RESTORE VERIFYONLY FROM DISK = backup.bak'

IF (@bit == true)
BEGIN
       RESTORE DATABASE ext_Beemox_backup FROM DISK = 'backup.bak'
        WITH REPLACE
END

Sería más o menos así o no?
  #4 (permalink)  
Antiguo 22/08/2013, 15:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

si seria algo menos asi, solo que habria que ver que valor te regresa un bkp exitoso :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 29/08/2013, 08:37
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Estimado, gracias por el apoyo, pero tengo una consulta, según lo que he leído, debo obtener una respuesta algo como:

Cita:
The backup set on file 1 is valid.
Pero el problema es que si ejecuto (desde el sql server management studio)

Código:
RESTORE VERIFYONLY FROM DISK = 'C:\Downloads\mi_backup.bak'
y reviso el siguiente mensaje:

Cita:
Attempting to restore this backup may encounter storage space problems. Subsequent messages will provide details.
The path specified by "F:\DATA\mi_backup.mdf" is not in a valid directory.
Directory lookup for the file "F:\DATA\mi_backup_log.ldf" failed with the operating system error 3(failed to retrieve text for this error. Reason: 15105).
The backup set on file 1 is valid.
lo raro, es que si lo hago a través de la interfaz gráfica, es decir,

click derecho en la base de datos, luego "Task -> Restore -> Files and Filegroups" y elijo el archivo y restauro, no me genera ningún problema.

a que se puede deber?


Saludos
  #6 (permalink)  
Antiguo 29/08/2013, 08:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

pero si la cadena te regresa esto: The backup set on file 1 is valid. eso quiere decir que es valido o no?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 29/08/2013, 09:26
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Tengo entendido que si, pero por lo que estuve averiguando, sólo debería responder eso, pero la línea anterior dice:

is not in a valid directory.
failed with the operating system error 3(failed to retrieve text for this error. Reason: 15105).

Lo que me parece raro.
  #8 (permalink)  
Antiguo 29/08/2013, 09:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

"F:\DATA\mi_backup.mdf" que no los backups son .bak?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 29/08/2013, 10:18
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Lo que intento restaurar son .bak, no sé porqué me dice eso, encontré esto

http://marlonribunal.com/your-sql-server-database-just-failed-can-you-restore-the-backup/

pero la verdad no entendí mucho.
  #10 (permalink)  
Antiguo 29/08/2013, 10:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

i got it :P i understant what is the issue.....

Cuando haces una validacion de una base de datos por ejemplo de tu servidor A en tu servidor B, ahora el servidor A tiene una ruta donde esta la base de datos digamos c:\base y en el servidor B que es donde haces la validacion no existe esa ruta, por lo que manda el mensaje de error, no porque no sea valido el bkp sino porque no encuentra las rutas en donde esta la base de datos "original"

http://social.msdn.microsoft.com/For...ql-server-2008

otra liga a considerar:

http://technet.microsoft.com/en-us/l.../bb283416.aspx

regards,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 29/08/2013, 10:57
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Entonces, según lo que me explicas y logro entender, me está diciendo que de todas formas está correcto el bak no? los otros se podrían decir que son warning y no errores, o me equivoco?
  #12 (permalink)  
Antiguo 29/08/2013, 11:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Verificar .bak antes de restaurar

nkdos, estas en lo cierto
__________________
MCTS Isaias Islas
  #13 (permalink)  
Antiguo 30/08/2013, 15:47
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Muchas gracias a ambos por ayudarme a entender, me queda lo último, como poder validar que si el VERIFYONLY es correcto, ejecute la instrucción del restore, de lo contrario, detenga el script.

había pensado en algo con un IF, algo como

IF(VERIFYONLY = TRUE)
...
ELSE


Pero me da errores, como podré validar esto?


Saludos
  #14 (permalink)  
Antiguo 30/08/2013, 15:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

podrias guardar el resultado del verify only en una tabla y despues consultar sobre esa tabla o ese select si esta la cadena The backup set on file 1 is valid., si la encuentras entonces que continue si no que termine :), como haces eso...ahi si te la dejo de tarea ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #15 (permalink)  
Antiguo 09/09/2013, 08:22
 
Fecha de Ingreso: junio-2013
Mensajes: 19
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Verificar .bak antes de restaurar

Saludos,

He intentado hacer como me mencionas, pero me genera un problema, por ejemplo, si intento algo como:

Código:
declare @a varchar(1000)
set @a = (RESTORE VERIFYONLY FROM DISK = 'C:\backup.bak')
Me genera un error diciendo:

Cita:
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'RESTORE'.
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near ')'.
En que me estaré equivocando?

Saludos
  #16 (permalink)  
Antiguo 09/09/2013, 08:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Verificar .bak antes de restaurar

no puedes asignar el resultado de una consulta como lo estas haciendo existen varios metodos desde mandar el resultado a una tabla temporal, ejecutarlo por medio de sp_executesql y la salida mandarla a una variable etc, pero para eso investiga un poquito :P jejejeje
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: restaurar, sql, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:27.