開始前先了解
使用已獲授權的系統管理員帳號, 並以系統管理員身分開啟 Windows PowerShell, 再執行本篇的備份查詢與還原命令.
先完成上一篇資料備份, 保留原始 sample.txt 的 SHA-256. 本篇只修改可重建的測試檔, 不使用正式資料演練.
還原位置使用 C:\TutorialRestore, 與目前檔案分開. 第一次測試不要直接覆蓋正在使用的正式資料, 請先確認版本, 空間與權限.
本系列使用 Windows Server 2022 Datacenter 繁體中文真實操作畫面. 帳號, 網路設定, 磁碟與示範數值請換成自己的環境; 選項名稱可能因版本與語言不同而異.
01查詢備份版本
開啟 Windows Server Backup 的本機備份, 使用"復原..."選擇這部伺服器與可用版本. 核對備份的主機, 日期與時間, 不只選最新一筆.
也可使用 wbadmin get versions -backupTarget:F: 取得版本識別碼. 命令需要完整照抄實際結果, 不固定使用教學截圖的時間.
放大圖片
02只修改測試檔來演練
將 E:\TutorialData\sample.txt 改成不同文字, 留下目前值與備份前雜湊. 這能驗證還原確實取自過去版本, 而不是又讀到目前檔案.
只改示範資料. 不需要破壞磁碟或刪除系統來測試備份; 備份目的地保持完整.
放大圖片
03選擇檔案與資料夾復原
本篇以 wbadmin 查詢版本內容, 再用 File 類型復原 E: 的 TutorialData\sample.txt. 若使用圖形精靈, 可選擇檔案與資料夾復原. 沒有在該版本備份的資料不會憑空出現.
本篇實際復原也使用 wbadmin 的 File 類型, 來源是單一測試檔. 資料檔復原成功不等於資料庫或可開機系統已驗證.
畫面以 wbadmin get items 核對備份內容, 並未將開啟精靈當成復原完成.
$version = '請填入實際版本識別碼'
wbadmin get items "-version:$version" -backupTarget:F:
放大圖片
04指定另一個還原位置
先建立 C:\TutorialRestore. 選其他位置或在命令指定 recoveryTarget, 保留目前原檔.
以下版本值必須換成上一步的實際版本識別碼. -overwrite:Skip 避免覆蓋目的地同名檔案, 第一次演練請使用空白目錄.
New-Item C:\TutorialRestore -ItemType Directory -Force
$version = '請填入實際版本識別碼'
wbadmin start recovery "-version:$version" -itemType:File `
-items:E:\TutorialData\sample.txt -backupTarget:F: `
-recoveryTarget:C:\TutorialRestore "-machine:$env:COMPUTERNAME" -overwrite:Skip -quiet
放大圖片
05等待實際復原完成
執行後查看成功與失敗項目. 確認完成再開啟還原目錄, 不只確認復原精靈能開啟.
若沒有檔案, 檢查來源路徑, 備份版本, 目的地權限與錯誤. 不要立即改成覆蓋正式位置來重試.
放大圖片
06比對內容與雜湊
用 Get-ChildItem 找到實際還原位置, 再比對檔案內容及 Get-FileHash 的 SHA-256. 本次測試的還原值與備份前一致, 與修改後的原檔不同.
也要確認需要使用檔案的帳號有適當讀取權限. 全部核對後才規劃正式替換; 應用程式使用中的檔案可能需要維護時間與額外一致性確認.
Get-ChildItem C:\TutorialRestore -Recurse -File
Get-ChildItem C:\TutorialRestore -Recurse -File |
Get-FileHash -Algorithm SHA256
Get-ChildItem C:\TutorialRestore -Recurse -Filter sample.txt |
ForEach-Object { Get-Content $_.FullName }
放大圖片
完成後如何確認
已把檔案還原到另一個位置, 並以內容與 SHA-256 確認符合備份前版本. 本篇沒有執行系統磁碟, 裸機或資料庫還原.
常見問題
還原檔案成功, 就代表整台主機都能救回嗎?
不能這樣推論. 系統, 應用程式設定與資料庫一致性需要另外的備份範圍及還原演練, 應分別驗證.