若要回復已損毀的行事曆資料庫 (caldb),請使用 csdb 公用程式 rebuild 指令。rebuild 指令將掃描所有行事曆資料庫,以檢查是否發生損毀。如果 rebuild 指令找到不一致性,它會在 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建的行事曆資料庫 (.db 檔案)。
rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout 和 stderr) 重新導向至一個檔案。
在以下說明中, rebuild 指令不會重建群組排程引擎 (GSE) 資料庫。
若要重建行事曆資料庫而不重建 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 之後,請將重建的資料庫 (.db) 檔案及作業事件記錄 (log.*) 檔從 rebuild_db 目錄複製到您的生產資料庫。
如果存在任何已毀壞資料庫的共用 (__db.*) 檔案,請將其移至其他目錄。
重新啟動 Calendar Server。