場景:在學習文件組的恢復過程中,通過
ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,OFFLINE)
把文件組給弄脫機了。這時卻發現脫機之前忘記備份了。
這時該如何恢復該脫機的文件組呢?
同樣的命令沒有ONLINE選項:
ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,ONLINE)
消息 155,級別 15,狀態 1,第 1 行'ONLINE' 不是可以識別的 CREATE/ALTER DATABASE 選項。
修改數據庫脫機,聯機后,脫機的文件組還是脫機狀態。
ALTER DATABASE TEST SET OFFLINEALTER DATABASE TEST SET ONLINE
分離數據庫再附加數據庫,脫機的文件組也仍然是脫機狀態。
---------------------------------------------------------------------------------
其實,把文件恢復就可以了(哪怕沒有備份也可以執行):
RESTORE DATABASE TEST FILE='SUBF' WITH RECOVERY
---------------------------------------------------------------------------------
補充另一個由樺仔提供的文件替換大法:
1. 將數據庫分離 ( sp_detach_db 'xx')
2. 將數據庫的所有文件移個位置
3. 按照原來的文件頒創建一個同名空庫
4. 將空庫 OFFLINE ( alter database xx set offline )
5. 將步驟2移走的文件移回來,替換掉步驟3創建的空庫產生的對應文件
6.將數據庫online(alterdatabasexxsetonline),如果不能online,可以試試先設置為emergency狀態
以上方法已經測試過能通過。
新聞熱點
疑難解答