若要回復已損毀的行事曆資料庫 (caldb),請使用 csdb 公用程式的 rebuild 指令。rebuild 指令將掃描所有行事曆資料庫,以檢查是否有損毀。如果 rebuild 指令找到不一致性,其會在 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建行事曆資料庫 (.db 檔案)。
rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout 和 stderr) 重新導向至一個檔案。
在以下說明中,rebuild 指令不能重建群組排程引擎 (GSE) 資料庫。
若要重建行事曆資料庫而不重建資料庫,請:
以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。
停止 Calendar Server。
如果您尚未建立行事曆資料庫的副本,請建立副本。複製資料庫 (.db) 檔案和記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。
變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:
cd /opt/SUNWics5/cal/sbin |
如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。
在行事曆資料庫的副本中執行 rebuild 指令:
./csdb rebuild /tmp/db /tmp/ |
如果您未指定資料庫目錄,rebuild 將使用目前目錄中的資料庫。在前面的範例中,/tmp/ 參數為重建資料庫指定目標目錄。
請始終使用最新的備份複本重建您的行事曆資料庫。
然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中。)
例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601、db_0615 及 db_0629 中,請按以下序列執行 rebuild 指令:
./csdb rebuild db_0629
然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。
./csdb rebuild db_0615
然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。
./csdb rebuild db_0601
... etc.
rebuild 指令會將重建的資料庫寫入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄。
rebuild 完成後,請複查 rebuild.out 檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:
Calendar database has been rebuilt |
驗證 rebuild 成功之後,請從 rebuild_db 目錄中將重建資料庫 (.db) 檔案複製到生產資料庫。
如果您有任何已毀壞資料庫的共用 (__db.*) 檔案,請將其移至其他目錄。
重新啟動 Calendar Server。