Sun Java System Calendar Server 6.3 管理指南

18.3 清除刪除記錄資料庫

本小節描述如何清除刪除記錄資料庫。Calendar Server 提供兩種清除刪除記錄資料庫的類型:自動及手動。

本小節包含以下主題:

18.3.1 調整刪除記錄清除

清除刪除記錄資料庫之前,您需要深知您正在服務的一般使用者。如果您的一般使用者正在使用 Communications Express,則預設參數設定應該足夠了。不過,如果他們正在使用儲存事件及工作本機副本的用戶端使用者介面,例如 Connector for Microsoft Outlook 或 Sync Tool,則您必須調整自動清除配置參數的設定,以符合他們的需求。通常,他們需要刪除記錄包含長達 30 天或更長日期的項目。這將導致刪除記錄的大小顯著增長。如果未能做出這種調整,會導致資料庫發生問題。清除間隔也應該進行調整,以符合使用者的需求。例如,在您的刪除記錄資料庫將資料保留 30 天才允許清除的情況下,每分鐘執行清除可能沒有意義。由於事情每天都會變舊,所以每天清除是合理的。

手動執行 cspurge 時,也會發生類似的問題。如果從刪除記錄移除了太多,則它會導致 Connector for Microsoft Outlook 及 Sync Tool 的使用者與伺服器資料庫失去同步。

若等待很久才清除刪除記錄資料庫,會導致檔案變得非常的大。然後,當發生大量清除時,日常作業事件記錄會大量增加,以反映這樣的事實:每一個清除的項目都是記錄在那些記錄中並歸檔到歸檔備份及緊急備份的作業事件。作業事件記錄中的這些大量異常會讓系統看起來像有問題,並因為不瞭解發生什麼情況而浪費時間。

18.3.2 自動清除刪除記錄資料庫

如果願意,您可以讓 Calendar Server 以指定的間隔自動清除刪除記錄資料庫中的項目。自動清除依預設為停用。

以下 ics.conf 參數控制自動清除功能。

表 18–1 用於自動清除刪除記錄資料庫的配置參數

參數 

說明 

service.admin.purge.deletelog

啟用 ("yes") 或停用 ("no") 自動清除刪除記錄資料庫 (ics50deletelog.db) 項目。

預設為 "no"

caldb.berkeleydb.purge.deletelog.interval

指定自動清除刪除記錄資料庫 (ics50deletelog.db) 中項目的間隔時間 (以秒為單位)。

預設為 60 秒。

caldb.berkeleydb.purge.deletelog.beforetime

指定一個時間 (以秒為單位),清除刪除記錄資料庫 (ics50deletelog.db) 中早於此時間的項目。

預設為 518400 秒 (6 天)。

例如,若要使 Calendar Server 每隔五分鐘 (600 秒) 自動清除一次刪除記錄資料庫中超過兩天 (172800 秒) 的項目,請如下設定18.3.2 自動清除刪除記錄資料庫中的參數:

service.admin.purge.deletelog="yes"
 caldb.berkeleydb.purge.deletelog.interval=600
 caldb.berkeleydb.purge.deletelog.beforetime=172800

設定這些參數後,重新啟動 Calendar Server 以使新值生效。

18.3.3 手動清除刪除記錄資料庫

您可以使用 cspurge 公用程式,選擇手動清除刪除記錄資料庫 (ics50deletelog.db) 中的項目。

這個公用程式的用法如下:

cspurge -e endtime -s starttime

變數 endtimestarttime 指定結束和開始時間,且為祖魯時間 (也就是 GMT 或 UTC)。

若要執行 cspurge,您必須以執行 Calendar Server 的使用者及群組身份 (預設值為 icsusericsgroup) 或以 root 身份登入。

例如,清除從 2003 年 7 月 1 日到 2003 年 7 月 31 日的項目:

cspurge -e 20030731T235959Z -s 20030701T120000Z

如需更多資訊,請參閱D.13 cspurge