ayuda con instrucciones DBCC para backup

07/11/2003 - 23:15 por fabian | Informe spam
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

#1 Javier Loria
07/11/2003 - 23:51 | Informe spam
Hola Fabian:

Asumo que tienes SQL 2000, si es asi, revisa planes de mantenimiento y
veras que estas construyendo algo que Microsoft ya incorporo en su
aplicacion.
Un comentario previo:
Los pasos 2 y 3 no tienen mucho sentido. Si quieres hacer un respaldo al
disco directamente usa el parametro DISK= y pones la ruta. La intencion de
crear dispositivos de seguridad es reutilizarlos, o sea los creas una vez y
nos los borras, simplemente los usas.
Problemas:
=1. Debes usar un usuario que sea db_backupoperator, y como bien dices NO un
SysAdmin. Este es un rol de la BD no del Servidor. El restore debe hacerlo
un SysAdmin, o un dbcreator o el dbo (Si existe la BD).
2. Puedes revisar el concepto de Planes de Mantenimiento.
3. El que puede dar el error es el DBCC y no se soluciona con poner a
SysAdmin. Debes matar (KILL) todas las conexiones.
4. IDEM.
5. Revisa el comentario previo.

Espero te sirva,



Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


fabian escribio:
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.

Preguntas similares