varias una seguridad script restaurar respaldo recuperacion para hacer datos copia como bases sql sql-server sql-server-express restore

sql - script - ¿Cómo hacer una copia de seguridad y restaurar una base de datos como una copia en el mismo servidor?



restaurar varias bases de datos sql server (3)

Aquí hay algunas alternativas:

Software de restauración de base de datos (desde .BAK) ::

1) SqlRestoreSetup

2) Apex SQL Restore

Tengo una base de datos SQL2005 Express de la que me gustaría crear una copia en la misma instancia. ¿Cómo se hace esto con un guión?

Ya tengo un script para generar la copia de seguridad, pero la restauración está fallando ...

EL ERROR:

Msj 3234, Nivel 16, Estado 2, Línea 2 El archivo lógico ''MyDB_data'' no forma parte de la base de datos ''MyDB_Test''. Utilice RESTORE FILELISTONLY para enumerar los nombres de archivos lógicos.
Mensaje 3013, nivel 16, estado 1, línea 2 RESTORE DATABASE está terminando de manera anormal.

LA RESOLUCIÓN:

RESTORE DATABASE [MyDB_Test] FROM DISK = ''C:/temp/SQL/MyDB.bak'' WITH MOVE ''MyDB'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/MyDB_Test.mdf'' , MOVE ''MyDB_log'' TO ''C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/MyDB_Test_log.ldf'' , REPLACE;

LA RAZÓN:
No identifiqué correctamente el camino lógico en mi primer intento.



RESTORE FILELISTONLY es un comando informativo y no es necesario para realizar una restauración. Un usuario puede usar esto para averiguar cuáles son los nombres lógicos para los archivos de datos, que se pueden usar con los comandos MOVE para restaurar la base de datos a una nueva ubicación.

Como lo sugiere el mensaje de error, debe usar RESTORE FILELISTONLY para ver cuáles son los nombres lógicos de la base de datos. Tu comando de restauración tiene estos errores.

Aquí hay un ejemplo práctico de lo que necesita hacer:

--backup the database backup database test1 to disk=''c:/test1_full.bak'' -- use the filelistonly command to work out what the logical names -- are to use in the MOVE commands. the logical name needs to -- stay the same, the physical name can change restore filelistonly from disk=''c:/test1_full.bak'' -------------------------------------------------- | LogicalName | PhysicalName | -------------------------------------------------- | test1 | C:/mssql/data/test1.mdf | | test1_log | C:/mssql/data/test1_log.ldf | ------------------------------------------------- restore database test2 from disk=''c:/test1_full.bak'' with move ''test1'' to ''C:/mssql/data/test2.mdf'', move ''test1_log'' to ''C:/mssql/data/test2.ldf''