Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment sauvegarder et restaurer une base de données en tant que copie sur le même serveur ?

RESTORE FILELISTONLY est une commande d'information et n'est pas nécessaire pour effectuer une restauration. Un utilisateur peut l'utiliser pour déterminer quels sont les noms logiques des fichiers de données, qui peuvent être utilisés avec le MOVE commandes pour restaurer la base de données vers un nouvel emplacement.

Comme suggéré par le message d'erreur, vous devez utiliser RESTORE FILELISTONLY pour voir quels sont les noms logiques de la base de données. Votre commande de restauration a ces erreurs.

Voici un exemple concret de ce que vous devez faire :

--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'