首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 還原 26 大迷思全解析:從 STOPAT 到版本相容性

     編輯:關於SqlServer

前言

還原是備份策略的終極驗證,但圍繞還原存在大量迷思。本文一次釐清 26 個關鍵迷思(對應字母 A-Z),助您建立正確還原觀念。

迷思清單與事實

代號迷思事實
a完整/差異備份可用 STOPAT 還原至時間點不可。STOPAT 僅適用於記錄備份還原。
b使用 CONTINUE_AFTER_ERROR 後仍可按順序還原錯誤。還原鏈會中斷,可能導致資料不一致或結構損壞,不建議使用。
c可將資料庫部分還原至特定時間點不可。所有檔案組必須與 PRIMARY 至同一時間點(唯讀檔案組除外)。
d可將不同資料庫的檔案組還原至新資料庫不可。每個資料庫檔案標頭頁有唯一 GUID,無法跨資料庫還原。
e還原可移除索引碎片/更新統計資訊不可。還原的是備份當下的狀態,碎片與統計資訊原封不動。
f還原過程中可收縮資料庫不可。雖然開發環境常需求,但功能不存在。
g可還原至任意較低版本實例不可。低版本無法理解高版本資料庫內部結構。
h可還原至任意版本 SQL Server不可。企業版專屬功能(分區、TDE、CDC、壓縮)僅能還原至企業版/開發版/評估版。
iWITH STANDBY 會破壞還原鏈不會。STANDBY 相當於 NORECOVERY,可中斷繼續還原,支援記錄傳送唯讀存取。
j備份端未開啟即時檔案初始化,還原端也無法使用錯誤。即時檔案初始化完全取決於還原端服務帳戶權限,備份檔不包含此資訊。
k還原是從損壞恢復的最佳辦法不一定。視損壞範圍、備份類型、可接受資料遺失與停機時間,有時從次要複本同步或匯出資料更快。
l開始還原後仍可備份尾端記錄不可。一旦啟動還原,即不允許尾端備份。災難發生時第一件事應先嘗試尾端備份。
m可還原至記錄備份涵蓋範圍內任意時間點不可。若記錄包含最小記錄操作(大量載入),該操作具原子性,只能整個還原或不還原,無法還原至操作中間時間點。
n備份成功即可還原錯誤。備份檔同樣可能損壞(I/O 子系統錯誤),必須定期驗證。另需注意 COPY_ONLY 避免破壞差異基準。
o所有頁面類型皆可單頁還原不可。GAM、SGAM、PFS 等配置頁無法單頁還原(SQL 2008+ 鏡像可自動修復)。
pRESTORE VERIFYONLY 會驗證整個備份集不會。僅檢查備份標頭。需 WITH CHECKSUM 才做完整校驗和驗證。
q不還原憑證可還原 TDE 加密資料庫不可。憑證遺失 = 資料庫永久無法存取。
r還原完成後才做 Redo 和 Undo每次還原操作皆執行 Redo;僅在最終還原完成(RECOVERY)時才執行 Undo。
s壓縮備份僅能還原至企業版錯誤。所有版本皆可還原壓縮備份。2008 R2 起標準版也可建立壓縮備份。
t低版本還原至高版本可跳過升級不可。還原/附加過程中必須經歷升級與復原步驟。
u32 位備份無法還原至 64 位,反之亦然錯誤。資料庫內部格式與 CPU 架構無關,跨架構還原完全支援。
v資料還原即保證應用正常不對。同鏡像容錯移轉/記錄傳送切換,仍需處理登入、連結伺服器、作業、權限等後續步驟。
w還原受損檔案需還原所有相關檔案組SQL 2000 需要;SQL 2005+ 可單獨還原受損檔案組。
x可還原至任意最新版本實例不可。僅支援還原至較新的一或兩個版本(如 SQL 7.0 不能還原至 2008)。
y復原時間等於還原時間不等。長交易回滾、即時檔案初始化啟用與否、硬體效能皆影響總時間。
z還原前必須先 DROP 目標資料庫不需要。若先 DROP,還原時需即時檔案初始化;建議保留原資料庫以便失敗時回滾。

核心提醒

  • 定期演練還原,驗證備份可用性與 RTO/RPO。
  • 記錄備份鏈完整性、STOPAT 使用時機、版本相容性矩陣、TDE 憑證備份,是不可不知的四大關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved