使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中還原頁。 頁面還原的目的是還原一個或多個損壞的頁,而不還原整個數據庫。 一般,要進行還原的頁已經因爲在訪問該頁時遇到錯誤而標記爲「可疑」。 可疑頁在 msdb 數據庫的 suspect_pages 表中進行了標識。數據庫
頁面還原用於修復隔離出來的損壞頁。 還原和恢復少許頁面的速度可能比還原一個文件更快,所以減小了還原操做中處於脫機狀態的數據量。 然而,若是文件中要還原的不僅是少許頁面,則一般還原整個文件更爲有效。 例如,若是某個設備上的大量頁都指出此設備有未解決的故障;不妨考慮還原該文件(能夠還原到另外一位置)並修復該設備。緩存
此外,並不是全部的頁面錯誤都須要還原。 緩存數據(例如輔助索引)中可能出現的問題能夠經過從新計算這些數據來解決。 例如,若是數據庫管理員刪除一個輔助索引,而後再從新生成一個輔助索引,則損壞的數據雖然已修復,但並無在 suspect_pages 表中反映出這一狀況。ide
頁面還原適用於使用完整或大容量日誌恢復模式的 SQL Server 數據庫。 只有讀/寫文件組支持頁面還原。spa
僅能還原數據頁,如下類型的頁面不能還原:日誌
分配頁:IAM, GAM, SGAM, PFS blog
第0頁(文件首頁) 索引
第9頁(數據庫啓動頁)事務
執行頁面還原的最佳作法是將數據庫設置爲完整恢復模式,並嘗試進行一第二天志備份。 若是能夠進行日誌備份,則能夠繼續進行頁面還原。 若是日誌備份失敗,則您將不得不丟失上一個日誌備份以後的工做,或必須嘗試運行 DBCC(必須使用 REPAIR_ALLOW_DATA_LOSS 選項)。get
=========================================================================it
脫機頁面還原
SQL Server 2005 的全部版本和更高版本都支持在數據庫脫機時還原頁面。 在脫機還原頁過程當中,還原損壞的頁時數據庫處於脫機狀態。 還原順序結束時,數據庫將聯機。
聯機頁面還原
SQL Server 2005 Enterprise Edition 和更高版本支持聯機頁面還原,但它們在數據庫當前處於脫機狀態時將使用脫機還原。 在大多數狀況下,能夠在數據庫(包括頁面要還原到的文件組)保持聯機狀態時還原損壞的頁。 在主文件組處於聯機狀態時,即便有一個或多個輔助文件組處於脫機狀態,頁面還原也一般聯機執行。 但有時候,損壞的頁可能須要脫機還原。 例如,某些重要的頁發生損壞可能會使數據庫沒法啓動。
注意
若是損壞的頁存儲了重要的數據庫元數據,則在聯機頁面還原嘗試過程當中對元數據的必需的更新可能失敗。 在此狀況下,您能夠執行脫機頁面還原,但首先,您必須建立一個結尾日誌備份(經過使用 RESTORE WITH NORECOVERY 備份事務日誌)。
頁面還原利用了 SQL Server 2005 中引入的改進的頁級錯誤報告(包含頁校驗和)和跟蹤。 經過校驗和或殘缺寫操做檢測爲已損壞的頁(「損壞頁」)能夠經過頁還原操做進行還原。 僅還原顯式指定的頁。 每一個指定頁都被來自指定數據備份的頁的副本替換。
========================================================================
右擊要進行頁還原的數據庫,選擇任務——還原——頁。
能夠運行「檢查數據庫頁」來查找數據庫中損壞的數據,即運行dbcc checkdb physical_onlly。
也能夠手動輸入要還原的頁的文件ID和頁ID,如圖。
輸入完成後,點擊肯定。如圖。
注意:
還原頁實際上也是從現有的備份中進行還原的,因此在進行頁還原以前,必定要確保有數據備份,即作了完整+事務日誌的備份,以下圖。
咱們還能夠經過查看下面的系統表來肯定錯誤頁,如圖。
dbo.suspect_pages在系統默認數據庫msdb中。
也能夠執行命令來查看,以下圖
最後,經過一個個點擊查看,我發現mater和msdb數據庫默認處於簡單恢復模式下,因此不能進行還原頁的操做,而model數據庫默認處於完整恢復模式下,能夠進行頁還原的操做,至於tempdb,由於是臨時數據庫,
因此沒有備份還原的選項,只有收縮的選項。
=====================================================================