J'ai sauvegardé une base de données:
BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
Puis il a essayé de le restaurer:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
Et maintenant, la base de données est coincé dans l'état de restauration.
Certaines personnes ont émis l'hypothèse que c'est parce qu'il n'y a pas de log dans le dossier de sauvegarde, et il fallait être roulé vers l'avant à l'aide de:
RESTORE DATABASE MyDatabase
WITH RECOVERY
Sauf que, bien sûr, échoue:
Msg 4333, Level 16, State 1, Line 1
The database cannot be recovered because the log was not restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Et exactement ce que vous voulez dans une situation catastrophique est une restauration qui ne fonctionne pas.
La sauvegarde contient à la fois des données et des fichiers journaux:
RESTORE FILELISTONLY
FROM DISK = 'MyDatabase.bak'
Logical Name PhysicalName
============= ===============
MyDatabase C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase.mdf
MyDatabase_log C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabase_log.LDF