Incorporé a una aplicación la función de realizar el
backup a HD. Funciona, pero no como yo quisiera. El
esquema es el siguiente:
Para crear el BCKP:
1- DBCC CHECKDB: para comprobar la integridad de la BD
2- EXEC sp_dropdevice 'bckp_miBD': para eliminar el
dispositivo de copia de seguridad si es que ya existe.
3- EXEC sp_addumpdevice 'disk', 'bckp_miBD', @file: para
crear el dispositivo de copia de seguridad.
4- BACKUP DATABASE miBD TO bckp_miBD WITH FORMAT: para
realizar la copia de seguridad.
5- RESTORE VERIFYONLY FROM bckp_miBD: para verificar la
copia de seguridad.
Para restaurar la copia de seguridad:
1- RESTORE VERIFYONLY FROM bckp_miBD
2- use master
3- RESTORE DATABASE indumentaria_y_equipamiento FROM
bckp_indequip WITH REPLACE
4- use indumentaria_y_equipamiento
5- DBCC CHECKDB
Los problemas son 5:
1) Tuve que crear un inicio de sesión y un usuario de la
BD que pertenezca a la función sysadmin, para que
funcione. Esto no me parece lo más adecuado. ¿No hay una
forma más restrictiva de permitir a ese usuario?
2) Quisiera hacerlo todo desde procs. almac., pero cuando
restauro desde el bckp me veo obligado a incluir código
TSQL en la applicación items 2,3 y 4 de la restauración.
3) A veces me daba un error de acceso exclusivo al
restaurar (y no existe otra conexión a la BD). Esto
aparentemente lo solucioné agregando el inicio de sesión a
la función sysadmin, cuestión que me desagrada.
4) A veces me daba un error al crear el backup que se
solucionó al igual que 3).
5) La primera vez el dispositivo de copia de seguridad no
existe, por lo que da un error al intentar eliminarlo (eso
creo). La cuestión es que vuelvo a realizar el backup y
funciona la segunda vez. ¿Cómo hago para comprobar si el
dispositivo de copia de seguridad ya existe?
Perdón por lo extenso, pero espero que así puedan ayudarme.
Muchas gracias.
Leer las respuestas