Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie sichern und wiederherstellen Sie eine Datenbank als Kopie auf demselben Server?

RESTORE FILELISTONLY ist ein Informationsbefehl und ist nicht erforderlich, um eine Wiederherstellung durchzuführen. Ein Benutzer kann dies verwenden, um herauszufinden, was die logischen Namen für die Datendateien sind, die mit MOVE verwendet werden können Befehle, um die Datenbank an einem neuen Ort wiederherzustellen.

Wie in der Fehlermeldung vorgeschlagen, müssen Sie RESTORE FILELISTONLY verwenden um zu sehen, wie die logischen Namen für die Datenbank lauten. Ihr Wiederherstellungsbefehl hat diese falsch.

Hier ist ein funktionierendes Beispiel dafür, was Sie tun müssen:

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