如果是 JET_errMissingLogFile,先不要急著還原備份。這個錯誤代表 Exchange ESE 找不到資料庫一致性所需的交易記錄檔(Log),是否能救回來取決於缺失的是哪些 Log,以及資料庫目前是否處於 Dirty Shutdown 狀態。
先執行:
eseutil /mh "D:\DB\DB.edb"
查看 State。如果顯示 Dirty Shutdown,再執行:
eseutil /ml E00
確認缺少哪些 Log 檔。若缺失的 Log 其實仍存在於其他磁碟、備份路徑或 AV 隔離區,將 Log 補齊後執行軟修復(Soft Recovery):
eseutil /r E00 /l <LogPath> /d <DBPath>
通常仍有機會成功掛載資料庫。
如果確定所需 Log 已永久遺失,Soft Recovery 通常無法完成,此時就只能在 還原備份 與 Hard Recovery(eseutil /p) 之間選擇。eseutil /p 是最後手段,會直接捨棄無法重播的交易並可能造成資料遺失,Microsoft 也建議優先從可用備份還原,而非直接進行 Hard Repair。
建議先提供 eseutil /mh 的結果(特別是 State、Log Required、Log Committed 欄位)以及完整的 JET 錯誤碼,我才能判斷目前是否還有機會透過 Soft Recovery 救回資料庫,而不必直接還原備份。