在數據庫I備份的數據庫:SQL服務器:堅持「恢復」狀態
BACKUP DATABASE MyDatabase
TO DISK = 'MyDatabase.bak'
WITH INIT --overwrite existing
,然後試圖恢復它:
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE --force restore over specified database
而現在的數據庫被卡在恢復狀態。
有些人推測,這是因爲有備份任何日誌文件,它需要前滾使用:
RESTORE DATABASE MyDatabase
WITH RECOVERY
除,當然,失敗:
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.
正是你想要的災難性情況是無法恢復的。
備份包含一個數據和日誌文件:
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
我從來沒有使用恢復聲明時,他正在做什麼。 WITH REPLACE就足夠了。 – Sam 2009-02-06 20:23:50
是的,我正在使用NORECOVERY,但恢復過程掛起。使用WITH RECOVERY,REPLACE不會掛起進程 – 2009-09-16 19:26:06
這解決了我的問題。我們在恢復過程中出現SAN故障,這是一個快速而乾淨的解決方案。 – 2009-09-21 19:21:30