本小節包含以下主題:
使用傾印和載入程序以嘗試復原已損毀的資料庫。傾印和載入程序使用 Berkeley 資料庫 db_dump 和 db_load 公用程式,Calendar Server 在以下目錄中提供這些公用程式:
cal-svr-base/SUNWics5/cal/tools/unsupported/bin
db_dump 公用程式使用與 db_load 公用程式相容的格式,來讀取資料庫檔案並將資料庫項目寫入輸出檔案。
如需有關 db_dump 和 db_load 公用程式的文件,請參閱 Sleepycat Software 網站:
http://www.sleepycat.com/docs/utility/index.html
使用 db_dump 和 db_load 公用程式回復資料庫成功與否取決於資料庫的損毀程度。在成功地回復資料庫之前,您可能需要嘗試多個 db_dump 選項。但是,如果您的資料庫嚴重毀壞,回復也許是不可能的,您可能需要復原至資料庫的最後一個完好的緊急備份或歸檔備份。
在執行傾印和載入程序之前,行事曆資料庫必須為 Berkeley DB 3.2.9 版,或更高版本。如果您的版本是舊版,請首先執行 cs5migrate 公用程式以對您的行事曆資料庫進行升級。
如需 cs5migrate 的最新版本,請致電 Sun 技術支援。
以執行 Calendar Server 的使用者與群組 (例如 icsuser 與 icsgroup) 身份登入,或以超級使用者 (root) 身份登入。
如有必要,請停止 Calendar Server。
使用公用程式 (例如 csbackup、Sun StorEdge Enterprise BackupTM 軟體或 Legato Networker®) 備份已毀壞的資料庫。
如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料。
使用 db_dump 公用程式傾印每個已毀壞的資料庫檔案。
資料庫檔案為 ics50calprops.db、ics50journals.db、ics50alarms.db、ics50events.db、ics50todos.db 及 ics50gse.db。
請依次使用以下選項執行 db_dump,直到已回復資料庫 (或直到您確定無法回復資料庫) 為止:
No 選項,用於次要資料庫損毀。
-r 選項,用於中度資料庫損毀。
-r 選項,用於嚴重資料庫損毀。-R 選項從已毀壞的資料庫中傾印的資料要比 -r 選項多,包括部分已刪除的記錄。
例如,若要以 -r 選項執行 db_dump:
db_dump -r ics50events.db \> ics50events.db.txt
使用 db_load 公用程式將輸出檔案載入至新的資料庫檔案。
例如:
db_load new.ics50events.db < ics50events.db.txt
如果 db_load 報告的鍵值或資料項目為奇數,請編輯 db_dump 輸出檔案,並移除奇數鍵值或資料項目。然後再次執行 db_load。
對其他已毀壞的資料庫檔案重複前面的兩個步驟。
亦即對其他已毀壞的資料庫檔案執行 db_dump。
使用 csdb rebuild 指令重建回復的資料庫檔案,如22.5.6 重建已損毀的行事曆資料庫中所述。
rebuild 完成後,請複查輸出檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:
Calendar database has been rebuilt |
如果 csdb rebuild 指令未成功,請使用下一個 db_dump 選項 (-r 或 -R) 傾印資料庫。
如果 db_dump -R 選項無法回復已毀壞的資料庫,請連絡 Sun Microsystems 技術支援或銷售客戶代表,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。