微軟官網 SQLSERVER 執行頁面還原

2022-01-29 16:18:27 字數 2669 閱讀 5544

本主題與使用完整恢復模式或大容量日誌恢復模式的 sql server 資料庫相關。只有讀/寫檔案組支援頁面還原。

頁面還原的目的是還原乙個或多個損壞的頁,而不還原整個資料庫。通常,要進行還原的頁已經由於在訪問該頁時遇到錯誤而標記為「可疑」。可疑頁在 msdb 資料庫的 suspect_pages 表中進行了標識。

注意並非所有的頁面錯誤都需要還原。快取資料(例如輔助索引)中可能出現的問題可以通過重新計算這些資料來解決。例如,如果資料庫管理員刪除乙個輔助索引,然後再重新生成乙個輔助索引,則損壞的資料雖然已修復,但並沒有在 suspect_pages 表中反映出這一情況。

可以立即還原多個資料庫頁。日誌檔案備份應用於包含要恢復的頁的所有資料庫檔案。與檔案還原中一樣,每次傳遞日誌重做,前滾集都會前進一步。

頁面還原用於修復隔離的損壞頁。還原和恢復少量頁面的速度可能比還原乙個檔案更快,因此減少了還原操作中處於離線狀態的資料量。然而,如果檔案中要還原的不只是少量頁面,則通常還原整個檔案更為有效。例如,如果某個裝置上的大量頁都指出此裝置有未解決的故障;不妨考慮還原該檔案(可以還原到另一位置)並修復該裝置。

這些頁面還原方案包括:

頁面還原利用了 sql server 2005 和更高版本中改進的頁級錯誤報告(包含頁校驗和)和跟蹤。通過校驗和或殘缺寫操作檢測為已損壞的頁(「損壞頁」)可以通過在 restore 語句中指定這些頁進行還原。頁面還原僅適用於還原損壞的頁數量較少的情況。restore 語句中指定的每個頁將由指定備份集中的頁替換。還原的頁必須恢復到與資料庫一致的狀態。僅還原顯式指定的頁。

僅可以還原資料庫頁。頁面還原不能用於還原下列內容:

如果無法還原單個頁,則必須使用現有的完整資料庫備份或者完整檔案,或檔案組備份。

注意如果要還原的頁具有特殊用途(如元資料頁),則聯機頁面還原將失敗。在這些情況下,請嘗試離線頁面還原。

頁面還原需要符合下列要求:

對於使用大容量日誌恢復模式的資料庫,頁面還原還有下列附加條件:

若要在 restore database 語句中指定一頁,需要知道該頁所在檔案的檔案 id 和該頁的頁 id。所需語法如下:

restore database database_name

page ='file:page [ ,...n ]' [ ,...n ]

from [ ,...n ]

with norecovery

有關 page 選項的引數的詳細資訊,請參閱 restore 引數 (transact-sql)。有關 restore database 語法的詳細資訊,請參閱 restore (transact-sql)。

頁面還原的基本步驟如下:

獲取要還原的損壞頁的頁 id。校驗和或殘缺寫錯誤將返回頁 id,並提供指定頁所需的資訊。若要查詢損壞頁的頁 id,請使用下列任一**。

頁 id 源

主題msdb..suspect_pages

了解和管理 suspect_pages 表

錯誤日誌

檢視 sql server 錯誤日誌

事件跟蹤

監視事件

dbcc

dbcc (transact-sql)

wmi 提供程式

wmi provider for server events 的概念

從包含頁的完整資料庫備份、檔案備份或檔案組備份開始進行頁面還原。在 restore database 語句中,使用 page 子句列出所有要還原的頁的頁 id。

page ='file:page [ ,...n ]'

應用最近的差異。

應用後續日誌備份。

建立新的資料庫日誌備份,使其包含已還原頁的最終 lsn,即最後還原的頁離線的時間點。設定為順序中首先還原的最終 lsn 是重做目標 lsn。包含該頁的檔案的聯機前滾可以在重做目標 lsn 處停止。若要了解檔案的當前重做目標 lsn,請檢視 sys.master_files 的 redo_target_lsn 列。有關詳細資訊,請參閱 sys.master_files (transact-sql)。

還原新的日誌備份。應用這個新的日誌備份後,就完成了頁面還原,可以開始使用頁了。

注意此順序與檔案還原順序類似。事實上,頁面還原和檔案還原都可以在相同的順序中執行。

以下示例使用 norecovery 還原檔案 b 的四個損壞頁。隨後,將使用 norecovery 應用兩個日誌備份,然後是結尾日誌備份(使用 recovery 還原)。

重要提示

如果損壞的頁儲存了重要的資料庫元資料,則可能必須執行離線頁面還原順序。若要執行離線還原,則必須使用 with norecovery 備份事務日誌。

以下示例執行聯機還原。此示例中,檔案 b 的檔案 id 為 1,損壞的頁的頁 id 分別為 57、202、916 和 1016。

複製

restore database page='1:57, 1:202, 1:916, 1:1016'

from with norecovery;

restore log from with norecovery;

restore log from with norecovery;

backup log to restore log from with recovery;

go

參考restore (transact-sql)

概念應用事務日誌備份

了解和管理 suspect_pages 表

了解 sql server 中備份的還原和恢復工作方式

微軟官網 SQLSERVER的版本資訊

下表介紹 sql server的各個版本。定義enterprise 作為高階版本,sql server enterprise 版提供了全面的高階資料中心功能,效能極為快捷 虛擬化不受限制,還具有端到端的商業智慧型 可為關鍵任務工作負荷提供較高服務級別,支援終端使用者訪問深層資料。standard s...

10 10 010 簡介 官網 官網翻譯

netty是 乙個非同步事件驅動的網路應用程式框架,用於快速開發可維護的高效能協議伺服器和客戶端。netty是乙個nio客戶端伺服器框架,可以快速輕鬆地開發協議伺服器和客戶端等網路應用程式。它極大地簡化並簡化了tcp和udp套接字伺服器等網路程式設計。快速簡便 並不意味著最終的應用程式會受到可維護性...

Robolectric Shadows 官網翻譯

robolectric 通過建立乙個包含真實android 框架 的執行時環境來進行工作。這意味著,當你的測試或被測試 呼叫到android框架時,你會獲得更真實的體驗,因為這跟在實際裝置上執行的大部分 都是相同的。然而還是有一些限制 native code 源 android源 不能在你的開發機器...