Respaldar en el directorio por defecto (backup directory in MSSQL directory) con nombre prueba.bak
BACKUP DATABASE pru TO DISK='prueba.bak';
Restaurar de un backup que se encuentra en el directorio default
Nota: la base de datos que se quiere restaurar no debe estar en uso.
RESTORE DATABASE pru FROM DISK='prueba.bak';
Restaurar de un backup hacia una base de datos distinta a la original
RESTORE DATABASE pru2 FROM DISK='prueba.bak'esto lanza el error siguiente
-- [Error] Script lines: 1-3 -------------------------- -- The file 'c:\mssql2005\MSSQL.1\MSSQL\DATA\pru.mdf' cannot be overwritten. It is being used by database 'pru'. -- -- More exceptions ... File 'pru' cannot be restored to 'c:\mssql2005\MSSQL.1\MSSQL\DATA\pru.mdf'. Use WITH MOVE to identify a valid location for the file.
Así que necesitamos ver el contenido del backup para ello usamos:
RESTORE FILELISTONLY FROM DISK='prueba.bak'esto muestra algo como lo siguiente:
-------------- ------------------------------------------- ------- ---------------- ------- -------------- --------- ------------ ---------- ------------------------------------ -------------- --------------- -------------------- ------------------ -------------- --------------- ---------------------- ------------------------------------ ------------- ------------
pru c:\mssql2005\MSSQL.1\MSSQL\DATA\pru.mdf D PRIMARY 2293760 35184372080640 1 0 0 DB89AE8F-4F86-4633-9063-7BE019ABF8E9 0 0 1441792 512 1 (null) 17000000041200037 8683BDA0-FDA1-4281-B887-5FEE5FD1CC0D false true
pru_log c:\mssql2005\MSSQL.1\MSSQL\DATA\pru_log.LDF L (null) 573440 2199023255552 2 0 0 A9C91979-20E6-4A67-BAEC-48FC68C3E6B6 0 0 0 512 0 (null) 0 00000000-0000-0000-0000-000000000000 false true
Así que usamos la información anterior para hacer la restauración indicando donde queremos colocar los archivos de la base y el log, para ello usamos el Logical name
RESTORE DATABASE pru2 FROM DISK='prueba.bak' WITH MOVE 'pru' TO 'c:\mssql2005\MSSQL.1\MSSQL\DATA\pru2.mdf' ,MOVE 'pru_log' TO 'c:\mssql2005\MSSQL.1\MSSQL\DATA\pru2_log.LDF'
-- ALGUNOS EJEMPLOS APLICADOS
BACKUP DATABASE pru
TO DISK='\\10.0.2.2\buzon\pru.bak'
RESTORE FILELISTONLY
FROM DISK='\\10.0.2.2\shm_altair\plantilla.bak'
RESTORE DATABASE altair_plantilla
FROM DISK='\\10.0.2.2\shm_altair\plantilla.bak'
WITH
STATS=10
,MOVE 'plantilla_Data' TO 'c:\mssql2005\MSSQL.1\MSSQL\DATA\altair_plantilla.mdf'
,MOVE 'plantilla_Log' TO 'c:\mssql2005\MSSQL.1\MSSQL\DATA\altair_plantilla_log.ldf'
=========================================================
BACKUP DATABASE pru
TO DISK='C:\bk\pru.bk';
es tan simple como lo anterior, pero hay que asegurarnos de que la cuenta con la que corre el proceso de sql server tiene permiso de escritura en el path donde queremos guardar el archivo de backup, por lo que hay que darle permiso en las propiedades de seguridad a la carpeta, en mi caso el sqlserver corre con la cuenta NETWORK SERVICE y al darle permiso ya no saldra un error como este:
Cannot open backup device 'C:\bk\pru.bk'. Operating system error 5(Access is denied.)
Si el backup es muy grande, podemos agregar lo siguiente para recibir notificación sobre el progreso, en este caso solicitamos notificación cada 10% (WITH STATS=10) y el comando quedaría así:
BACKUP DATABASE pru
TO DISK='C:\bk\pru.bk'
WITH STATS=10;
Restore sql
Restoringaoeu
Más información:
http://technet.microsoft.com/en-us/library/ms186865(SQL.90).aspx
No hay comentarios.:
Publicar un comentario