星期二, 11月 28, 2017

MSSQL LDF 意外損毀(因為磁區壞軌)的救援方式

RiCo 兄提供了當 LDF 意外損毀(因為磁區壞軌)的救援方式
ref:
https://dotblogs.com.tw/ricochen/archive/2010/01/11/12962.aspx
http://blog.xuite.net/tolarku/blog/41937899-%5BSQL%5D+%E4%BA%A4%E6%98%93%E8%A8%98%E9%8C%84%E6%AA%94+LDF+%E5%A4%AA%E5%A4%A7

1.確認原本資料庫檔案路徑位置
2.建立新的資料庫(名稱需與原資料庫名稱相同)
3.停止SQL server (不能單純用 detach 的嗎?)
4.將原本的MDF,覆蓋新資料庫的MDF檔案
5.將舊的LDF檔刪除
6.啟動 SQL Server
7.查看資料庫狀態「select state_desc from sys.databases where name='DB_Name'」,因為LOG檔找不到,所以狀態為「Recovery_Pending」
8.將資料庫設為「Emergency」狀態「ALTER DATABASE DB_Name SET SINGLE_USER; Go;」、「ALTER DATABASE DB_Name SET EMERGENCY; Go;」、「DBCC CHECKDB (DB_Name, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS; Go;」
9.再確認資料庫狀態 「select state_desc from sys.databases where name='DB_Name'」
10.切換單一使用者模式去檢查DB [DBCC checkdb('DB_Name')]
11.到 Table 去查看資料正常與否

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...