以執行 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 選項多,包括部分已刪除的記錄。
例如,配合執行 db_dump 與 -r 選項:
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 指令重建回復的資料庫檔案,如重建已損毀的行事曆資料庫中所述。
rebuild 完成後,請複查輸出檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:
Calendar database has been rebuilt |
如果 csdb rebuild 指令未成功,請使用下一個 db_dump 選項 (-r 或 -R) 傾印資料庫。
如果 db_dump -R 選項無法回復已毀壞的資料庫,請與 Sun Microsystems 技術支援或銷售客戶代表連絡,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。