如果您已使用第 10 章, 配置自動備份 (csstored)中所述的自動備份功能,則可以在即時資料庫毀壞時使用緊急備份副本。
本小節包括如何復原兩種不同的自動備份:
復原備份之前,請確定您已經完成以下作業:
嘗試診斷是哪個作業事件導致即時資料庫損毀。
移除或校正損毀作業事件以便新的歸檔檔案不會被損毀。
透過將已損毀的資料庫複製到其他目錄或可移動媒體來保留該資料庫。如果您需要聯絡技術支援,此作業是必須的。
即時資料庫被毀壞時,應首先選擇緊急備份。若要復原緊急備份,請執行以下步驟:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將目前的緊急備份副本複製到新的回復資料庫目錄中。
將已毀壞的即時資料庫目錄中的 log.* 檔案複製到新的回復資料庫目錄中。
如果您保留了資料庫的歸檔檔案副本,請將尚未套用於即時資料庫的記錄複製到歸檔檔案目錄,這樣您的歸檔檔案備份副本就完整了。
配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求保留這些記錄檔。
對新的回復目錄中的資料庫檔案執行 db_verify。
如需說明,請參閱檢查行事曆資料庫是否損毀。
對新的回復目錄執行 csdb -v list。
如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。
將新的即時資料庫複製到緊急備份目錄中,以做為新的快照執行。
在拍攝下個常規快照之前,所有新記錄將被套用於此副本。
啟動 CalendarServer。
如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未毀壞的更舊的緊急備份:
如果您沒有未損毀的緊急備份,但有歸檔檔案備份及其作業事件記錄,則可以透過執行以下步驟復原已歸檔資料庫的最新未損毀版本:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將最新的歸檔檔案副本及其記錄檔複製到新的回復資料庫目錄。
將已毀壞的即時資料庫目錄中的任何未套用的 log.* 檔案複製到新的回復資料庫目錄中。
配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求仍舊將這些記錄檔保留在此處。
對新的回復目錄中的資料庫檔案執行 db_verify。
如需說明,請參閱檢查行事曆資料庫是否損毀。
對新的回復目錄執行 csdb -v list。
如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。
將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。
啟動 CalendarServer。
如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未損毀的更舊的歸檔檔案備份:
向後執行歸檔檔案備份副本,透過依次對每一個歸檔檔案備份副本執行以下三個回復程式以尋找未損毀的最新副本:db_recover -c-h、db_verify 和 csdb -v list。
通過的第一個歸檔檔案副本可以被復原至即時資料庫目錄。
使用未使用的歸檔檔案備份替代已毀壞的即時資料庫,如復原歸檔檔案備份中所述。
如果您的歸檔檔案備份都不可用,請致電技術支援。