其他參考文章:
如何修復一個 Suspect Database
http://caryhsu.blogspot.tw/2011/10/suspect-database.html
SQL Server 最佳案例 - 如何修復一個有問題的資料庫 (Suspect Database)
http://caryhsu.blogspot.com/2011/07/sql-server-suspect-database.html
1、在這我找了一個有毀壞的資料庫,當我進行查詢時,就會發生下列的錯誤。
很明顯的,你可以看到系統會發生一個(824) 的錯誤,其中最重要的是你可以看到頁面(1:143)有發生毀損。
2、相同的,你可以看到在SQL Server中也會看到相關 (824) 的錯誤訊息。
3、我們也可以透過 msdb..suspect_pages 的系統資料表來確認,你可以發生資料表也會出現一筆相同的錯誤資訊。
4、由於無法查詢,所以我們可以嘗試透過下列的語法來查過目前的頁面(1:143)的內容資訊。
語法:
dbcc traceon(3604) --啟用dbcc page的訊息顯示
dbcc page(broken, 1, 143, 3)
上述 [broken] 是我的資料庫名稱。
5、接下來最重要的,我們來開始進行資料庫的修復,基本上如果你是SQL 2012 (含) 以上的版本,非常的恭喜你,你可以透過介面的方式直接設定,但如果是 2005 or 2008 or 2008R2的版本時,你也可以透過語法的方式直接進行。
5-1 透過SQL語法:
Restore Database broken Page = ‘1:143’ FROM Disk = ‘你之前備份的路徑’;
5-2 透過介面進行(For 2012)
點選資料庫(broken)右鍵 -> 工作 -> 還原 -> 頁面
完成後即可直接快速的只針對單一頁面進行,但其實在頁面還原上還是有許多的限制,建議你在使用前還是評估一下會比較好。
頁面還原限制:
- Transaction log
- Allocation pages:
- Global Allocation Map (GAM) pages
- Shared Global Allocation Map (SGAM) pages
- Page Free Space (PFS) pages
- Page 0 of all data files (the file boot page)
- Page 1:9 (the database boot page)
- Full-text catalog
其他參考文章:
如何修復一個 Suspect Database
http://caryhsu.blogspot.tw/2011/10/suspect-database.html
SQL Server 最佳案例 - 如何修復一個有問題的資料庫 (Suspect Database)
http://caryhsu.blogspot.com/2011/07/sql-server-suspect-database.html
Performing Page Restores
http://technet.microsoft.com/en-us/library/ms175168(v=sql.100).aspx
關鍵字:SQL Server、Suspect、824、Restore Page、DBCC Page