本章及使用由 Messaging Server 建立的網域中之後的小節說明如何管理 Calendar Server,其中包含以下小節:
您可以透過執行 Delegated Administrator 公用程式 (以前的 User Management 公用程式) 或 Calendar Server 指令行公用程式和編輯 ics.conf 配置檔案來管理 Calendar Server。
若要執行指令行公用程式,您必須以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
其他管理主題包含在其他獨立章節中。其中包括以下主題︰
本小節包含如何使用 start-cal 和 stop-cal,並包含以下主題︰
您可以使用 start-cal 和 stop-cal 指令啟動和停止 Calendar Server。start-cal 和 stop-cal 公用程式位於 cal_svr_base/SUNWics5/cal/sbin 目錄中。您必須在安裝 Calendar Server 的本機上執行這些公用程式。
Calendar Server 提供 csstart 和 csstop 公用程式僅為與舊版相容。如果可能,請使用 start-cal 和 stop-cal 公用程式啟動和停止 Calendar Server。
start-cal 公用程式會以如下順序啟動 Calendar Server 服務:
enpd — 事件通知服務 (ENS)
csnotifyd — 通知服務
csadmind — 管理服務
csdwpd — 資料庫連線協定 (DWP) 服務,此分散式資料庫服務僅當您具有遠端 Calendar Server 資料庫配置時才啟動
cshttpd — HTTP 服務
csstored — 自動備份服務
如需這些服務的說明,請參閱Calendar Server 服務
以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。
停止 Calendar Server:
./stop-cal |
自動備份由 csstored 程序進行管理,該程序在發出 start-cal 時會自動啟動。然而,您也可以隨意啟用或停用自動備份。預設為停用自動備份。即使自動備份未啟用,csstored 程序也可執行。
有兩種類型的自動備份︰緊急備份和歸檔檔案備份。您可以分別啟用或停用它們。
csstored 程序必須在發出 start-cal 之前進行配置,否則您將收到一條通知您 csstored 尚未配置的錯誤訊息。此後,您將每 24 小時收到一次同樣的訊息,直到將其配置為止。
如需有關自動備份的資訊和配置 csstored 的說明,請參閱第 10 章, 配置自動備份 (csstored)。
以下是用於啟用和停止自動備份的工作清單:
在指令行變更至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
透過將以下 ics.conf 參數設定為 “yes”,啟用緊急備份︰
caldb.berkeleydb.hotbackup.enable="yes"
指定緊急備份目錄的目錄路徑︰
caldb.berkeleydb.hotbackup.path= /var/opt/SUNWics5/hotbackup_directory
預設為目前目錄。
完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰
cal_svr_base/SUNWics5/cal/sbin/start-cal
無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。
在指令行變更至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
透過將以下 ics.conf 參數設定為 “yes”,啟用歸檔檔案備份︰
caldb.berkeleydb.archive.enable=”yes”
指定歸檔檔案目錄的目錄路徑︰
caldb.berkeleydb.archive.path= /var/opt/SUNWics5/hotbackup_directory
預設為目前目錄。
完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰
cal_svr_base/SUNWics5/cal/sbin/start-cal
無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。
依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰
在指令行變更至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
透過將以下 ics.conf 參數設定為 "no",停用緊急備份︰
caldb.berkeleydb.hotbackup.enable="no"
完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰
cal_svr_base/SUNWics5/cal/sbin/start-cal
無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。
依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰
在指令行變更至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
透過將以下 ics.conf 參數設定為 "no",停用歸檔檔案備份︰
caldb.berkeleydb.archive.enable="no"
完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰
cal_svr_base/SUNWics5/cal/sbin/start-cal
無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。
群組排程引擎 (GSE) 保留將用於更新元件資料庫的事件佇列。管理員可以變更逾時值,以調整 Calendar Server 掃描佇列的時間間隔。還可以列出佇列中的事件,並在必要時刪除特定事件。
本小節包含以下主題:
GSE 可讓 Calendar Server 使用者建立事件並邀請其他與會人員。如果某位與會者位於同一 Calendar Server 上,則該事件會排程在該與會者的行事曆中。如果某位與會人員不在同一 Calendar Server 上,則系統會透過電子郵件傳送邀請。然後,與會人員可接受或拒絕邀請,GSE 將用回覆更新事件。
GSE 佇列實際上是由 GSE 管理的獨立資料庫。Calendar Server 在佇列中掃描元件資料庫所需的更新。
您可以透過調整此掃描的頻率來調校 Calendar Server。此操作可透過變更 ics.conf 檔案中 gse.belowthresholdtimeout 的逾時值來完成。請參閱第 21 章, �屐� Calendar Server �刁�。
GSE 佇列項目可使用 csschedule 來管理 (列出或刪除)。您必須在安裝 Calendar Server 的本地機器上執行 csschedule。
若要列出 GSE 佇列中的項目,請使用 csschedule 公用程式的 list 指令。
例如,列出 GSE 佇列中的所有項目:
csschedule list |
列出儲存在 GSE 佇列中的前十個項目:
csschedule -c 10 list |
列出 GSE 佇列中的包含 calid Holiday_Schedule 的行事曆的所有項目:
csschedule -v list Holiday_Schedule |
若要刪除 GSE 佇列中的項目,請使用 csschedule 公用程式的 delete 指令。
例如,刪除 GSE 佇列中的所有項目:
csschedule -v delete
刪除 GSE 佇列中 calA 行事曆的一個項目,該項目的第一個排程時間為 2001 年 11 月 30 日 13:30:45、偏移數為 1、唯一識別碼為 1111、週期性 ID 為 0、序列號為 0:
csschedule -v -t 20011130T133045Z -o 1 -u 1111 -r 0 -n 0 delete calA
您想將監視系統活動作為日常工作的一部分。您可以使用多種公用程式工具來監視 Calendar Server 作業:csmonitor、csstats 和 cstool。此外,您可以設置許多記錄檔以協助監視系統的使用。
本小節包含以下主題:
此 Calendar Server 公用程式是需要 bash 的 shell 程序檔。此公用程式在被呼叫時可執行下列功能︰
根據 ics.conf 檔案中指定的記錄層級,監視和記錄以下程序︰csadmind、csnotifyd、cshttpd 和 enpd.
查看 cshttpd 是否正在接受指令。
查看系統是否具有 LDAP 連線。
如果已啟用循環記錄,則查看是否存在一個以上作業事件檔案,如果是,則傳送電子郵件警告。
檢查行事曆資料庫可用的磁碟空間,以確定有足夠的空間來執行適當的作業。
如果發生錯誤,公用程式將進行記錄,並傳送電子郵件至 ics.conf 參數 service.monitor.emailaddress.to 指定的管理員。
若要除錯,您可以將監視器配置為在間隔時間很短的持續迴圈中執行,但這需要更多的系統資源,所以您不希望在正常生產中將其保留為該模式。
若要在一般情況下使用 csmonitor,請將其設定為以您選擇的間隔執行。
如需有關 csmonitor 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
編輯下表中所示的一個或多個 ics.conf 參數:
參數 |
說明和預設值 |
---|---|
指定 csmonitor 是否應持續迴圈︰"0" – 不持續迴圈 (預設)。"1" – 持續迴圈。 將此參數設定為 “1” 以使 csmonitor 可以自動執行。 |
|
指定兩個監視迴圈之間的延遲 (以秒為單位)。預設為 “60” 秒。 若要進行除錯,則設定較短的間隔時間;若要進行生產,則設定較長的間隔時間。 |
|
指定 csmonitor 傳送訊息的電子郵件位址。無給定預設。 |
|
指定 csmonitor 應將訊息傳送至的電子郵件位址。無給定預設。 |
|
service.monitor.csdb.logthreshold |
監視行事曆資料庫 (csdb)。指定最大磁碟佔用率的臨界值 (以總磁碟空間的百分比表示)。如果 csdb 目錄的磁碟佔用率超過此值,其將傳送警告電子郵件訊息。預設為 “90”。 |
指定 csmonitor 記錄檔名稱。預設為 “csmonitor.log”。 |
|
指定記錄檔的最大大小。如果記錄檔超出此大小,則 csmonitor 將記錄儲存為 csmonitor.log。timestamp 並重設目前記錄。預設為 “2097152” |
|
指定除錯級別。在 0 至 5 的範圍內,此值越高,csmonitor 傳送的訊息就越精確、越詳細。預設為 “0”,指定為不記錄。值 “5” 表示除錯記錄。 |
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
csstats 公用程式可顯示行事曆配置 (counter.conf) 檔案中定義的計數器物件的統計資訊。計數器物件 (如 httpstat、authstat、wcapstat 或 dbstat) 可顯示有關 Calendar Server 的資訊,其中包括:
最大並行運作的連線數和連線總數
成功和失敗的登入與連線總數
資料庫讀取、寫入和刪除數
如需有關 Calendar Server 計數器統計的資訊,請參閱附錄 ECalendar Server 配置參數。
您可以對下列服務及安裝 Calendar Server 的機器執行 Ping 作業︰
cshttpd
csadmind
enpd
如需有關使用 cstool 的資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
每種 Calendar Server 服務都將其狀態資訊寫入自己的 記錄檔。每個記錄檔都會以其相關的服務名稱來命名,如下表所示:
服務名稱 |
記錄檔名稱 |
---|---|
管理服務 (csadmind) |
admin.log |
分散式資料庫服務 (csdwpd) |
dwp.log |
HTTP 服務 (cshttpd) |
http.log |
通知服務 (csnotifyd) |
notify.log |
單次登入記錄 |
am_sso.log |
start 指令的記錄 |
start.log |
stop 指令的記錄 |
stop.log |
store 指令的記錄 |
store.log |
Calendar Server 記錄檔儲存在以下預設目錄中:
/var/opt/SUNWics5/logs
每個記錄檔會自動重建為具有唯一編號的新記錄檔。例如:
admin.log.8.1083013284 http.log.8.1083013284
Calendar Server 提供報告至記錄檔的事件的六個嚴重性層級,如下表中所述。您可以透過修改 ics.conf 參數 logfile.loglevel,來指定 Calendar Server 報告至記錄檔的事件的嚴重性級別。
嚴重性級別 |
涵義 |
---|---|
CRITICAL |
嚴重情況。 |
ERROR |
錯誤情況。 |
WARNING |
警告情況。 |
NOTICE |
正常但是重要的情況。此為每個行事曆服務的預設報告級別。 |
INFORMATION |
資訊。 |
DEBUG |
除錯級別訊息。 |
每個記錄事件以單行表示,每行顯示以下內容:相關的時間標記、伺服器主機名稱、嚴重性級別、程序名稱 (程序 ID)、事件類型、優先順序以及說明。
如需有關 ics.conf 記錄設定的資訊,請參閱附錄 ECalendar Server 配置參數。
如果已啟用 CLD 快取記憶體,則需要不時地清除記憶體。本小節包含以下主題:
CLD 快取記憶體會由於各種原因無法與系統配置保持同步,例如︰
增加、刪除或重新命名伺服器。
在配置中將伺服器從一項功能移至另一項功能。
將一個或多個行事曆移至不同的後端伺服器。
如果發生其中任何情況,為了更新 CLD 快取記憶體,您必須將其清除。
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。
重新啟動 Calendar Server。
如果在配置中增加、刪除或變更伺服器名稱,您應該執行以下數項「事務性工作」,以免出錯︰
清除 CLD 快取記憶體
如果已取出舊的伺服器,請從包含它的 ics.conf 參數中將其刪除。
匿名存取是一種不需要認證的特殊登入。啟用匿名登入後,依預設,對公開行事曆的讀取和寫入存取已啟用。可能會拒絕對公開行事曆的寫入存取。本小節包含以下主題:
Communications Express 要求寫入和讀取均允許匿名登入。請參閱配置 Communications Express。
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
編輯 ics.conf 中的以下參數,以啟用匿名存取︰
參數 |
說明和預設值 |
---|---|
service.http.allowanonymouslogin |
如有必要,將此參數設定為 “yes”,以啟用匿名存取 (登入)。預設值為 “yes”。 |
service.calendarsearch.ldap |
透過將此參數設定為 “no” (此為預設值),您可在執行行事曆搜尋時停用首先搜尋 LDAP,以便保護啟用匿名登入後的安全性。 |
Communications Express 要求 service.calendarsearch.ldap 參數的值為 “no”。這會與調校系統在 DWP 環境中發揮最佳效能的說明相衝突。(您的資料庫分布在多台後端伺服器上。)請參閱�▇@ DWP �燠活9��腹四搗j�M�刁�。
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
如下表所示編輯以下 ics.conf 參數:
參數 |
說明和預設值 |
---|---|
service.wcap.anonymous. allowpubliccalendarwrite |
允許或禁止匿名存取使用者寫入至公開的行事曆。將其值設定為 “yes” (此為預設值) 以啟用存取。 |
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
必須為 Communications Express 啟用代理伺服器管理員登入 (代理伺服器認證)。如需有關配置 Communications Express 的代理伺服器認證的說明,請參閱配置 Communications Express。
然而,即使您未使用 Communications Express,仍可以啟用代理伺服器認證。此小節包含在不使用 Communications Express 的情況下啟用代理伺服器認證的程序:
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
編輯 ics.conf 檔案,設定以下參數:
service.http.allowadminproxy = "yes"
將檔案儲存為 ics.conf。
重新啟動 Calendar Server 以使新值生效。
使用以下 WCAP 指令驗證管理員代理登入是否在工作:
http://server[:port] /login.wcap?user=admin-user&password=admin-password &proxyauth=calendar-user
其中:
server – 執行 Calendar Server 的伺服器名稱。
port – Calendar Server 的連接埠號碼。預設連接埠為 80。
admin-user – Calendar Server 管理員。例如,calmaster。
admin-password – admin-user 的密碼。
calendar-user – Calendar Server 使用者的 calid。
如果指令成功,Calendar Server 將顯示 calendar-user 的行事曆。如果發生問題,Calendar Server 將顯示「未授權」。原因可能是:
admin-user 沒有 Calendar Server 管理員權限。
admin-password 不正確。
calendar-user 不是有效的 Calendar Server 使用者。
在目前的發行版本中,請勿使用 cstool refresh 指令更新配置。而應使用 stop-cal 和 start-cal 指令。如需更多資訊,請參閱啟動和停止 Calendar Server。
本章包含有關管理託管網域的以下小節:
配置行事曆安裝以適用於託管網域並執行第 11 章, 設定託管網域中所述的準備工作後,即可增加新的託管網域。
每個網域均擁有您可設定的一組屬性和喜好設定。這些屬性是 icsCalendarDomain 物件類別的一部分。這些屬性包括喜好設定,例如存取權、存取控制清單 (ACL)、網域搜尋、網域搜尋存取權、使用者狀態以及代理登入。
使用以下兩組工具之一管理 Calendar Server 託管 (或虛擬) 網域:
Delegated Administrator 主控台或公用程式 – 用於 Schema 2 環境。
Delegated Administrator 是 Java Enterprise System 安裝程式中的可獨立安裝的元件。如需有關此公用程式的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。如需有關主控台的更多資訊,請使用 Delegated Administrator 主控台線上說明。
Calendar Server 公用程式 — (csdomain 和 csattribute) 用於 Schema 1 環境。
與 Calendar Server 一同安裝。您可以使用 csdomain 增加或刪除屬性,但是沒有 modify 指令。使用 csattribute 修改現有屬性的值。此外,如果需求提高,請使用 ldapmodify 增加或刪除使用 csdomain 建立的網域中的物件類別。
如需有關 csdomain 和 csattribute 的資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
如需有關特定物件類別和屬性的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」。
如需託管網域簡介和其他介紹材料,請參閱第 11 章, 設定託管網域。
Calendar Server 不支援使用 Access Manager 主控台管理網域。
建立用於 Schema 1 或 Schema 2 的託管網域:
您可以使用 Delegated Administrator 主控台或公用程式:
主控台 — 使用 [組織清單] 頁面上的 [建立新組織] 精靈。
如需更多資訊,請參閱 Delegated Administrator 主控台線上說明。
公用程式 — 使用 commadmin domain create 指令。
例如,若要建立網域 sesta.com,請發出以下指令:
commadmin domain create -D calmaster -d sesta.com -w calmasterpassword -S cal -B backend.sesta.com
如需有關 Delegated Administrator 公用程式的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
您必須在託管網域模式中執行 csdomain。如需有關如何啟用託管網域的說明,請參閱第 11 章, 設定託管網域。
在 Schema 1 中建立託管網域時,請使用 csdomain create。例如,若要建立 west.sesta.com,請使用以下指令:
csdomain create west.sesta.com
本小節包括您必須執行的兩項工作以啟用交叉網域搜尋:
在 LDAP 項目中為每個允許搜尋此網域的網域增加名稱,請參閱為允許搜尋此網域的網域增加名稱。
此網域中的使用者向事件傳送邀請時,增加可由此網域搜尋的網域名稱,請參閱增加可由此網域搜尋的網域名稱。
使用以下任一工具都可以完成以上工作:ldapmodify (用於任何一種 Schema 模式) 或 Delegated Administrator 主控台或公用程式 (用於 Schema 2)。
每個網域 LDAP 項目均以 ACE 的形式指定存取權限,您可以在 icsExtendedDomainPrefs 屬性的 domainAccess 參數中定義 ACE。允許外部網域搜尋此網域的兩種不同方式:
Calendar 存取控制中更完整地說明了 ACI 的建構。
可透過三種方式完成:
使用 ldapmodify 在 icsExtendedDomainPrefs 的 domainAccess 喜好設定中建立以下 ACE 字串:
@domain_being_allowed ^a^lsfr^g
透過指定允許搜尋此網域的網域,後跟允許搜尋需要的充分的權限來形成 ACE。
使用 Delegated Administrator 公用程式指令 commadmin domain modify 在 icsExtendedDomainPrefs 屬性中增加指定 domainAccess 喜好設定的 ACE 字串。
例如,在 Schema 2 環境中,sesta.com 允許來自 siroe.com 的搜尋:
commadmin domain modify -D admin -w adminpassword -X hostmachine_1 -d sesta.com -A +icsextendeddomainprefs:"domainAccess=@@d^a^slfrwd^g; @siroe.com^a^lsfrwd^g;anonymous^a^r^g;@^a^s^g"
使用 Delegated Administrator 主控台,在建立或編輯組織的特性時,您可以將網域增加至 [允許來自這些組織中使用者的邀請] 清單。
這會更新 icsExtendedDomainPrefs 屬性中的 domainAccess 喜好設定。
雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已將權限設定為允許所有使用者讀取事件詳細資訊,否則使用者無法查看事件詳細資訊。
可以使用三種方式來允許所有外部網域搜尋此網域:
使用 ldapmodify 在 icsExtendedDomainPrefs 的 domainAccess 喜好設定中建立以下 ACE 字串:
@^a^slfr^g
透過指定所有網域均具有執行搜尋的充分的存取權限來形成 ACE。
使用 Delegated Administrator 公用程式指令 commadmin domain modify,在 icsExtendedDomainPrefs 屬性中增加指定 domainAccess 喜好設定的 ACE 字串。
例如,在 Schema 2 環境中,sesta.com 允許來自所有網域的搜尋:
commadmin domain modify -D admin -w adminpassword -X hostmachine_1 -d sesta.com -A +icsextendeddomainprefs:"domainAccess=@@d^a^slfrwd^g; anonymous^a^r^g;@^a^slfr^g"
字元 @@d 是指主要所有者的網域。
使用 Delegated Administrator 主控台,在建立或編輯組織的特性時,您可以將網域增加至 [允許來自這些組織中使用者的邀請] 清單。
這會更新 icsExtendedDomainPrefs 屬性中的 domainAccess 喜好設定。
雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已設定允許所有使用者讀取事件詳細資訊的權限,否則使用者無法查看事件詳細資訊。
可以使用三種方式來增加要依此網域搜尋的外部網域:
使用 ldapmodify 為可由此網域中的使用者搜尋的每個外部網域增加一個 icsDomainNames 的實例。
例如,執行交叉網域搜尋時,sesta.com 同時在 siroe.com 和 example.com 中搜尋。使用 ldapmodify (用於 Schema 1 或 Schema 2) 建立以下 LDIF:
dn: dc=sesta, dc=com, o=internet changetype: modify add: icsDomainNames icsDomainNames:siroe.com icsDomainNames:example.com
使用 Delegated Administrator 公用程式指令 commadmin domain modify 指定選項 -A,以增加要搜尋的網域名稱。
例如:
commadmin domain modify -D admin -w adminpassword -X hostmachine_1 -d sesta.com -A +icsDomainNames:siroe.com -A +icsDomainNames:example.com
使用 Delegated Administrator 主控台,在建立或編輯組織的特性時,您可以將網域增加至 [邀請這些組織中的行事曆] 清單。
這會將 icsDomainNames 屬性增加至網域 LDAP 項目。此網域中的使用者向事件傳送邀請時,為要搜尋的每個外部網域增加一個屬性。
如需更多資訊,請參閱 Delegated Administrator 主控台線上說明。
Calendar Server 預設為非託管網域。如果您要在 Java Enterprise System 部署中使用 Calendar Server 和 Messaging Server,則應該使用託管網域。
您可以透過編輯 ics.conf 檔案針對您的安裝啟用或停用託管網域。
編輯 ics.conf 檔案,如下所示:
service.virtualdomain.support="yes" (預設為 "no"。)
重新啟動 Calendar Service。
如需實作託管網域必需的所有 ics.conf 參數清單,請參閱設置託管網域環境。
本章說明如何使用 Calendar Server 公用程式佈建與管理使用者和資源。本章包含以下小節:
可以使用以下一種使用者管理工具管理行事曆使用者和資源:
Delegated Administrator 主控台
使用此 GUI 在 LDAP 中為 Calendar Server 佈建使用者和資源。如需有關使用 GUI 的資訊,請參閱 Delegated Administrator 主控台線上說明。
Delegated Administrator 公用程式 (commadmin)
使用這些工具在 LDAP 中為 Calendar Server 佈建使用者和資源。如需詳細說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
Delegated Administrator 不管理行事曆。若要為使用者和資源建立行事曆,請使用 Calendar Server 公用程式。
Calendar Server 公用程式 (csuser 和 csresource)
使用這些公用程式管理行事曆。此外,如果您的配置符合以下所有條件,請使用這些公用程式管理使用者和資源:
您未在使用 Access Manager。
您已安裝了使用 Sun LDAP Schema 1 的舊版 Calendar Server 或 Messaging Server,
並要繼續使用 Schema 1。
另請參閱此指南中的指令行公用程式參照附錄 DCalendar Server 指令行公用程式參照。
在特定情況下,即使您使用的是 Schema 2 和 Delegated Administrator,仍會需要使用某些 Calendar Server 指令行公用程式執行特殊功能。在必要時,本指南中以工作為導向的文件會告訴您使用何種公用程式。
本小節提供以下有關管理新的 Calendar Server 使用者和資源的資訊:
您可以使用 Delegated Administrator 主控台或公用程式:
Delegated Administrator 主控台
在 Delegated Administrator 主控台中,使用 [建立新使用者] 精靈。(按一下使用者要常駐之組織的 [使用者清單] 頁面中的 [新建]。)如需更多資訊,請參閱 Delegated Administrator 主控台線上說明。
Delegated Administrator 公用程式
使用 commadmin 公用程式的 user create 指令。例如,在 sesta.com 網域中增加使用者 jdoe:
commadmin user create -D calmaster -F John -n sesta.com -k hosted -l jdoe -w calmasterpassword -W jdoepassword -L Doe -S cal -B red.sesta.com -E jdoe@sesta.com
如需有關 commadmin 公用程式的所有可用選項的詳細資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
使用 csuser 公用程式。例如,在 sesta.com 網域中增加使用者 jdoe:
csuser -m jdoe@sesta.com -d sesta.com create jdoe
您可以使用 Delegated Administrator 主控台或公用程式:
Delegated Administrator 主控台
在 Delegated Administrator 主控台中,使用 [建立新資源] 精靈。(按一下資源要常駐之組織的 [行事曆資源] 標籤中的 [新建]。)如需更多資訊,請參閱 Delegated Administrator 主控台線上說明。
Delegated Administrator 公用程式
使用 commadmin 公用程式的 rescource create 指令建立 LDAP 項目。例如,若要增加會議室 Conference_Room_100,請使用以下指令:
commadmin resource create -D calmaster -w calmasterpassword -n sesta.com -c room100 -N Conference_Room_100
然後,您必須使用 csresource 建立實際的資源行事曆。如需有關如何建立資源行事曆的資訊,請參閱建立行事曆。
如需有關 commadmin 公用程式的所有可用選項的詳細資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
使用 csresource 公用程式建立 LDAP 項目和資源行事曆。例如,若要增加投影機 p101,請使用以下指令:
csresource -m p101@siroe.com -c p101 create Projector_101
如需有關 csresource 的更多資訊,請參閱csresource。
Calendar Server 需要使用者和資源具有 mail 屬性,該屬性包含使用者或資源的電子郵件位址。該 mail 屬性將使人們能夠使用電子郵件位址或 calid 搜尋行事曆和資源。使用 Delegated Administrator 建立新的使用者時,其會自動增加 mail 屬性。即使未向該使用者指定郵件服務,仍會如此。
Calendar Server 不支援資源行事曆的電子郵件通知。
增加 mail 屬性不會啟用使用者行事曆的電子郵件通知。
若要啟用使用者行事曆的電子郵件通知,請將以下兩個屬性增加至使用者的 LDAP 項目:
icsExtendedUserPrefs:ceNotifyEnable=1 icsExtendedUserPrefs:ceNotifyEmail=jdoe@sesta.com
如果您的使用者和資源已被增加至舊版的 Calendar Server (當時不需要 mail 屬性),則可能必須將 mail 屬性增加至現有使用者和資源 LDAP 項目。
本小節包含以下主題:
若要檢查該屬性是否已設定,請使用帶有 -v (詳細) 選項的 csattribute list 指令。
csattribute -v list Room100
其輸出會告知 mail 屬性是否已存在:
cn=Room 100,ou=conferenceRooms,dc=sesta,dc=com has mail: Room100@sesta.com
若要將 mail 屬性增加至現有使用者和資源,請使用以下方法之一:
使用 Calendar Server csattribute 公用程式。
以下範例會為 sesta.com 伺服器上名為 Room100 的現有會議室增加 LDAP mail 屬性:
csattribute -a mail=Room100@sesta.com add Room100
使用 ldapmodify 將屬性直接增加至 LDAP 項目。
建立使用者後,請使用 csuser 公用程式執行以下管理工作:
若要列出所有行事曆使用者或顯示指定使用者的行事曆屬性,請使用 csuser 公用程式的 list 指令。
例如,顯示所有能使用行事曆功能的使用者:
csuser list
顯示單一使用者 (如 jsmith) 的所有行事曆屬性:
csuser -v list jsmith
停用使用者的目的在於防止使用者登入 Calendar Server。依據您用於建立使用者的使用者管理工具,會進行不同的處理。在 Delegated Administrator 主控台中建立的使用者也應使用它進行管理。同樣,如果您使用 Delegated Administrator 公用程式將行事曆服務指定給使用者,則使用它移除服務。最後,非託管網域環境中的使用者應僅使用 Calendar Server 公用程式進行管理。各自對情況的處理稍有不同。
本小節包含以下主題:
Calendar Server 公用程式 (csuser disable)(Calendar Server 公用程式)
在 Delegated Administrator 主控台中,從 [使用者清單] 頁面選取使用者。在此使用者的 [特性] 中,刪除包含行事曆服務的服務套裝軟體。這會停用行事曆的使用者,包括將使用者的 icsStatus 設定為 inactive。
如果套裝軟體還包含其他服務,您必須使用不包含行事曆的其他套裝軟體重新指定那些服務。
若要防止使用者存取行事曆服務,請將該服務從使用者的 LDAP 項目中移除,如以下範例所示:
commadmin user delete jsmith -S cal
這會停用行事曆使用者,而未完全移除 LDAP 項目。此外,此指令會將使用者的 icsStatus 變更為 inactive。
disable 指令可防止使用者存取行事曆資料,但不會從 LDAP 項目或 Calendar Server 資料庫中移除該使用者的資訊。此指令會將 icsStatus 屬性從 active 變更為 inactive。在非託管網域節點中,沒有行事曆服務。
例如,防止 jsmith 存取 Calendar Server:
csuser disable jsmith
如果 jsmith 目前已登入 Calendar Server,則 jsmith 仍可存取行事曆資料,直至其登出。
Delegated Administrator (commadmin user create)(用於 Schema 2)
Calendar Server 公用程式 (csuser enable)(用於 Schema 1)。
您可以增加啟用新使用者和現有使用者:
新使用者 — 建立使用者時,使用 [新建使用者] 精靈為使用者指定包含行事曆服務的服務套裝軟體。使用者會自動啟用。
現有使用者 — 從 [使用者清單] 頁面中選取使用者,並使用 [指定服務套裝軟體] 精靈選取包含行事曆服務的服務套裝軟體。使用者會自動啟用。
要在建立使用者時允許該使用者使用行事曆服務,請使用以下範例所示的命令:
commadmin user create jsmith -S cal
如果建立使用者時您未允許該使用者使用行事曆服務,以後還可以使用修改指令將行事曆服務增加給該使用者,如以下範例所示:
commadmin user modify jsmith -S cal
如果您在建立使用者項目時使用了 csuser create,則使用者會自動啟用。
如果某位使用者向另一位尚未啟用行事曆功能的使用者 (亦即該使用者沒有預設行事曆) 傳送請求,則 Calendar Server 會向傳送請求的使用者傳回錯誤「找不到行事曆」。
如果您需要為行事曆使用者設定電子郵件別名,請將 mailalternateaddress 屬性增加至使用者的 LDAP 項目。mail 屬性提供主要郵件位址,而 mailalternateaddress 屬性用於電子郵件別名。這兩個屬性均將郵件位址對映至使用者的行事曆 ID (calid)
您可以使用 Calendar Server 公用程式 csattribute 或透過使用 ldapmodify 直接更新 LDAP 來增加屬性。以下範例使用 csattribute。
若要啟用這些變更,可能還需要重建別名表或配置。請參閱 Messaging Server (或您的電子郵件產品) 的文件,以及網站自身的文件和有關郵件服務變更的程序。在以下網站可獲得 Messaging Server 文件:http://docs.sun.com/coll/1312.1 和 http://docs.sun.com/coll/1422.1。
例如,為具有以下值的名為 JohnSmith 之使用者增加 mailalternateaddress 屬性:
使用者 ID (uid) 和 calid:johnsmith
password:password for John Smith
電子郵件位址:john.smith@sesta.com
電子郵件別名﹕johns@sesta.com 和 jsmith@sesta.com
csattribute -a mailalternateaddress=johns@sesta.com add johnsmith csattribute -a mailalternateaddress=jsmith@sesta.com add johnsmith
若要確定特定使用者是否存在於您的目錄伺服器中,以及該使用者是否能存取 Calendar Server 資料,請使用 csuser 公用程式的 check 指令。
例如,檢查 jsmith 是否已啟用行事曆功能:
csuser check jsmith
如果 check 指令指示某個使用者不在 LDAP 目錄伺服器中,則您必須為該使用者建立目錄伺服器項目。
依據您是刪除託管網域還是非託管網域中的使用者,請使用不同的工具:
無 undelete 指令。
使用 Delegated Administrator 刪除託管網域中的使用者後,必須清除這些使用者,然後重新增加。直至執行清除後,該使用者名稱才可以重複使用。
對於非託管網域,請參閱僅適用於非託管網域:取消刪除標記刪除但未清除的使用者。
您可以使用任一 Delegated Administrator 介面標記要刪除的使用者。但是,您無法使用 Delegated Administrator 主控台清除 LDAP 中的使用者。您必須使用 Delegated Administrator 公用程式進行清除。以下工作列出了刪除 LDAP 中使用者的步驟。直至完成最後一步,使用者才從 LDAP 中真正移除。
標記要刪除的使用者項目。
對於 Delegated Administrator 主控台:在 [使用者清單] 頁面中選取要刪除的使用者,然後按一下 [刪除]。
對於 Delegated Administrator 公用程式:使用 commadmin user delete 指令。例如:
commadmin user delete -D chris -n siroe.com -w bolton -l jsmith
兩種情況中,使用者 LDAP 項目中的 icsStatus 屬性均由 active 變更為 deleted。
使用 Calendar Server 公用程式 csclean 移除屬於一個或所有網域中所有已刪除使用者的所有行事曆,如以下範例所示:
csclean clean “*”
或移除屬於一個網域中所有已刪除使用者的行事曆,並指定實際的網域,如以下範例所示:csclean clean sesta.com
如果您在刪除使用者的行事曆之前不慎從 LDAP 中清除了使用者,則可以稍後使用 cscal 公用程式將其移除,如管理使用者行事曆中所述。
使用 Delegated Administrator 公用程式指令 commadmin domain purge 清除所有標記刪除之使用者的網域。
例如:
commadmin domain purge -D chris -d sesta.com -n siroe.com -w bolton
在此範例中,sesta.com 中所有標記為已刪除的使用者均將被清除,亦即被永久性移除。
不時手動執行此公用程式,以清除您的 LDAP 目錄。如需有關此指令的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
若要移除指定使用者的 LDAP 項目和使用者的預設行事曆,請使用 Calendar Server 公用程式 csuser 及 delete 指令。
例如,若要刪除使用者 jsmith 的 LDAP 項目和預設行事曆,請使用以下指令:
csuser delete jsmith
如果您要移除屬於此使用者的其他行事曆,您必須如管理使用者行事曆中所述使用 cscal。
對於非託管網域,若要取消刪除標記刪除但尚未清除的使用者,必須將使用者的 icsStatus 屬性重設為 active。您可以透過直接變更 LDAP 項目 (使用 ldapmodify) 或使用 Calendar Server 公用程式 csattribute 完成此作業。
但是,在非託管網域中,使用者一旦清除,您將只能透過從備份將其復原來回復 LDAP 伺服器資訊。
若要復原特定使用者之所有行事曆 LDAP 屬性的預設設定,請使用 csuser 公用程式的 reset 指令。
例如,將 jsmith 的所有行事曆屬性重設為預設配置設定:
csuser reset jsmith
重設某位行事曆使用者後,所有行事曆屬性均將從該使用者的 LDAP 項目中移除,包括 icsCalendarUser (物件類別)、icsSubscribed、icsCalendarOwned、icsCalendar 和 icsDWPHost (如果在 LDAP CLD 設定中)。Calendar Server 管理員將無法代表使用者建立行事曆。
在以下情況中,這些屬性會在該使用者的 LDAP 項目中復原:
該使用者重新登入 Calendar Server,或者
Calendar Server 管理員為該使用者發出 csuser enable 指令 (即使在這種情況下,icsDWPHost 屬性也不會復原)。
如果一個或多個使用者 ID 需要變更,請執行 csrename 公用程式。此公用程式會執行以下步驟:
轉換 Calendar Server LDAP 屬性 (帶有 ics 前綴的屬性) 中的使用者 ID。LDAP 目錄會適當更新。
重新命名 Calendar Server 資料庫檔案的事件和工作中的使用者。將新資料庫寫入目標目錄,而不會修改現有資料庫檔案。
請注意,即使變更一個使用者 ID,也會導致整個資料庫被重寫。因此,執行此公用程式「代價昂貴」。
如需有關如何執行 csrename 公用程式的說明,請參閱附錄 DCalendar Server 指令行公用程式參照。
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/ SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
如下表所示編輯以下 ics.conf 參數:
參數 |
說明和預設值 |
---|---|
service.wcap. allowpublicwritablecalendars |
讓使用者擁有公開可寫入行事曆。依預設 (設定為 “yes”) 啟用。 |
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
增加資源後,可以使用 csresource 管理資源:
本小節包含為 Messaging Server 和 Sendmail 設定 bitbucket 通道的指示。bitbucket 通道是放棄為資源行事曆產生的電子郵件的一種渠道。這些範例使用 sesta.com 伺服器上名為 Room100 的資源。如果不設定 bitbucket 通道 (或等效通道),則需要定期刪除傳送至資源行事曆的電子郵件訊息。
本小節包含以下程序:
確定 bitbucket 通道已在 imta.cnf 檔案中定義。
若要將訊息導向至 bitbucket 通道,請使用 csattribute 公用程式為資源建立電子郵件位址:
csattribute -a mail=Room100@bitbucket.sesta.com add Room100 |
在適當主機上的 /etc/aliases 檔案中,增加如下項目:
Resource/Conference room aliases Room100: /dev/null |
使用 csattribute 公用程式將資源的電子郵件位址增加至 LDAP 目錄:
csattribute -a mail=Room100@sesta.com add Room100 |
使用csattribute公用程式或 ldapmodify 管理 Calendar Server 所使用的 LDAP 屬性。使用 csattribute 可以列出、增加或刪除屬性。若要修改屬性,請使用 ldapmodify。本小節包含以下主題:
以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsuser 和 icsgroup) 的身份登入,或者以 root 身份登入
變更至 sbin 目錄。
使用 csattribute list 指令列出使用者或資源的屬性。例如,若要列出 tchang@sesta.com 的屬性,請發出以下指令:
./csattribute -t user -d sesta.com list tchang
以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsuser 和 icsgroup) 的身份登入,或者以 root 身份登入
如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。
變更至 sbin 目錄。
使用 csattribute add 指令將屬性增加至使用者或資源。例如,將 LDAP 屬性 icsCalendar 與值 Conference_Schedule 增加至使用者 tchang:
./csattribute -a icsCalendar=Conference_Schedule add tchang@sesta.com
以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsuser 和 icsgroup) 的身份登入,或者以 root 身份登入
如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。
變更至 sbin 目錄。
使用 csattribute delete 指令刪除使用者或資源的屬性。例如,從使用者 tchang 中刪除 LDAP 屬性 icsCalendar 與值 Conference_Schedule :
./csattribute -a icsCalendar=Conference_Schedule -t user -d sesta.com delete tchang
若要修改 LDAP 項目屬性,請使用 ldapmodify。例如,若要使用 uid=tchang 變更使用者的狀態,請使用 ldapmodify,如下所示:
dn:uid=tchang,ou=people,o=sesta.com changetype: modify add: objectclass objectClass: icsCalendarUser add: icsStatus icsStatus: active |
如果您的站點使用的是 LDAP CLD 外掛程式,請勿嘗試透過使用 csattribute 變更 icsDWPHost 的值來將使用者的行事曆從一個後端主機移至另一個後端主機。 修改 icsDWPHost 不會使行事曆移至新的後端主機。如需有關如何將行事曆從一個後端主機移至另一個後端主機的說明,請參閱管理使用者行事曆。
本章包含以下主題,說明如何使用 Calendar Server 指令行公用程式來建立和管理行事曆:
Delegated Administrator 不會建立或管理行事曆。您必須使用附錄 DCalendar Server 指令行公用程式參照中所述的 Calendar Server 公用程式。
建立行事曆之前,您必須瞭解以下資訊:
共有兩種類型的行事曆:使用者行事曆和資源行事曆。
使用者行事曆用於排程人的活動。資源行事曆用於排程無生命物件 (例如會議室或影像設備) 的使用。
兩種類型的行事曆均由唯一行事曆識別碼 (calid) 來識別。
使用 cscal 建立使用者行事曆。(或者,您可以允許登入時自動佈建。請參閱自動建立使用者行事曆。
使用 csresource 建立資源行事曆。(不存在資源行事曆的自動佈建。)
若要執行 cscal 或 csresource,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。您必須從 /opt/SUNWics5/cal/sbin 目錄執行這些指令。也就是說,您必須變更至 sbin 目錄;您無法透過指定路徑從其他目錄執行這些指令。
Calendar Server 資料庫中的每個行事曆均由唯一行事曆識別碼 (ID) 或 calid 來識別。建立行事曆時,會要求您指定 calid。
本小節包含以下主題:
資料庫中的每個行事曆均由唯一行事曆 ID (calid) 來識別。以下 calid 語法包含三個部分:
userid[@domain][:calendar-name]
三個部分如下:
此 Calendar Server 實例中網域的唯一使用者 ID。
使用者網域的名稱。
沒有託管網域時,網域部分為可選項,因為可以確定使用者所在的網域。
有託管網域時,如果未指定網域部分,則 Calendar Server 將使用 ics.conf 參數 service.defaultdomain 中指定的值指定網域。如果使用者不在預設網域中,則必須指定網域部分。
如需有關託管網域 (亦稱虛擬網域) 的更多資訊,請參閱第 11 章, 設定託管網域和第 13 章, 管理託管網域。
特定使用者的唯一的可選擇行事曆名稱。雖然所有者僅有一個預設行事曆,但是可能有用於不同用途的其他行事曆。每個非預設行事曆均由其名稱識別。例如,如果使用者 John Doe 具有 uid jdoe,則他的預設行事曆可能為 jdoe@sesta.com。他用於追蹤自己所訓練 Little League 隊的棒球比賽的輔助行事曆可能由以下 calid 識別:jdoe@sesta.com:baseball。
建立 calid 時,請記住以下規則:
行事曆 ID 需要大小寫相符。例如,JSMITH 與 jsmith 不同。(這點與電子郵件位址不同,電子郵件位址不區分大小寫。例如,jsmith@sesta.com 相當於 JSMITH@SESTA.COM。)
行事曆 ID 不能包含空格,並限於以下字元:
如果您具有在自己擁有託管網域之前建立的 calid,並且現在要將非託管網域 calid 轉換為託管網域 calid,則可以使用 csvdmig 公用程式將網域部分增加至您現有的 calid。請參閱csvdmig,以獲得有關如何使用此公用程式的說明。
本小節包含以下主題:
使用者首次登入時,Calendar Server 會自動為該使用者建立預設行事曆。此功能稱為自動佈建。依預設,已啟用自動佈建。但是,自動佈建僅適用於使用者行事曆;資源行事曆必須明確地建立。
Calendar Server 會從使用者 ID 為此新預設行事曆建立行事曆 ID (calid),除非以此為名稱的行事曆已存在。
例如,如果使用者 ID 為 jsmith 的 John Smith 首次登入 Calendar Server,Calendar Server 會自動建立預設行事曆,其 calid 為 jsmith。John Smith 建立的每個後續行事曆在行事曆名稱之前均具有包含 jsmith: 的 calid。例如,如果 John Smith 稍後建立名為 meetings 的新行事曆,則新行事曆 (在非託管環境中) 的 calid 為 jsmith:meetings。
當無預設行事曆的使用者被指定為與會者時,Calendar Server 會傳回錯誤「找不到行事曆」。
依預設,已啟用自動佈建。但是,如果您在停用該功能後需要再次啟用它,請執行以下步驟:
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:
參數 |
說明和預設值 |
---|---|
local.autoprovision |
設定為 “yes”,可在使用者首次登入時自動建立預設行事曆。依預設,已啟用自動佈建。 若要關閉此功能,請將值設定為 “no”。 |
驗證使用者的 LDAP 項目是否已為行事曆啟用。
該項目必須包含 icsCalendarUser 物件類別。如果未包含,請將該類別增加至使用者的 LDAP 項目。
如果您的站點使用的是託管網域,則使用者的網域必須也啟用行事曆,才能使用自動佈建。網域項目必須包含 icsCalendarDomain 物件類別。
儲存該檔案。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:
參數 |
說明和預設值 |
---|---|
local.autoprovision |
將參數設定為 no 可停用使用者行事曆的自動佈建。 |
儲存該檔案。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
如果自動佈建已停用,則必須明確地為使用者建立行事曆,然後他們才可以成功登入。
Calendar Server 使用存取控制清單 (ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 [工作]) 的存取控制。
本小節包含以下主題:
下表說明 Calendar Server 用於存取控制的 ics.conf 檔案中的配置參數。
表 15–1 存取控制配置參數
參數 |
說明 |
---|---|
指定使用者建立行事曆時使用的預設存取控制設定。預設為: "@@o^a^r^g;@@o^c^wdeic^g; @^a^fs^g;@^c^^g;@^p^r^g" |
|
指定行事曆所有者的預設存取控制設定。預設為: "@@o^a^rsf^g;@@o^c^wdeic^g" |
|
指定建立資源行事曆時使用的預設存取控制設定。預設為: "@@o^a^r^g;@@o^c^wdeic^g; @^a^rsf^g" |
建立新事件或工作時,使用者可指定該事件或工作是公開的、私人的還是只有時間和日期 (機密) 的事件或工作:
對使用者的行事曆具有讀取權限的任何人均可以檢視事件或工作。
僅行事曆的所有者才可以檢視事件或工作。
這些為機密事件和工作。行事曆的所有者可以檢視事件或工作。其他對行事曆具有讀取權限的使用者只會看到行事曆上出現「無標題事件」,而且標題不是可使用的連結。
calstore.filterprivateevents 決定 Calendar Server 是否篩選 (識別) 私人事件和工作以及只有時間與日期 (機密) 的事件和工作。依預設,此參數設定為 "yes"。如果您將 calstore.filterprivateevents 設定為 "no",則 Calendar Server 會將私人事件和工作以及只有時間與日期的事件和工作視為公開事件和工作。
下表說明可讓您設定或修改用於存取控制的 ACL 的 Calendar Server 指令行公用程式:
表 15–2 存取控制的指令行公用程式
公用程式 |
說明 |
---|---|
將 create 指令和 modify 指令與 -a 選項配合使用,以設定特定使用者行事曆或資源行事曆的 ACL。 |
|
如果您要使用 csresource 建立資源行事曆 (在 Schema 1 模式中),請將 csresource 公用程式與 -a 選項配合使用,以設定資源行事曆的 ACL。 |
|
csuser |
使用 Schema 2 commadmin 公用程式變更使用者建立行事曆時所使用的預設 ACL。 將 Schema 1 csuser 公用程式與 -a 選項配合使用,以變更使用者建立行事曆時所使用的預設 ACL。 |
若要在 Delegated Administrator 主控台中設定存取權限,請從 [組織特性] 頁面中 (也可從 [建立新組織] 精靈中) 按一下 [進階權限] 按鈕,以查看可從主控台管理的存取權限清單。
本小節包含以下主題:
若要建立新行事曆,請使用 cscal 公用程式的 create 指令。使用者或資源項目必須已存在於 LDAP 目錄中。請參閱第 14 章, 管理使用者和資源,以獲得有關將使用者和資源增加至 LDAP 目錄的資訊。
如果您的站點使用的是 LDAP 行事曆查找資料庫 (CLD) 外掛程式,您必須在同一後端伺服器上為特定使用者或資源建立所有的行事曆,如使用者或資源項目中的 icsDWPHost LDAP 屬性所指示。如果您嘗試在其他後端伺服器上建立行事曆,cscal 公用程式將傳回錯誤。如需有關 LDAP CLD 外掛程式的資訊,請參閱第 6 章, 配置跨多台機器的行事曆資料庫分布。
例如,建立行事曆 ID (calid) 為 jsmith 的新行事曆:
cscal -o jsmith -n JohnSmithCalendar create jsmith
其中:
-o jsmith 指定新行事曆的主要所有者。
-n JohnSmithCalendar 指定新行事曆的可檢視名稱。
預設的存取控制設定由 ics.conf 檔案中的 calstore.calendar.default.acl 定義。
建立可檢視名稱為 Hobbies 且由 John Smith 所有,並對群組排程使用預設存取控制設定的行事曆:
cscal -n Hobbies -o jsmith create Personal
其中:
-n Hobbies 指定行事曆的可檢視名稱。
-o jsmith 指定主要所有者的使用者 ID。
Personal 用做行事曆 ID (calid) 的第二部分。例如:jsmith:Personal
以下範例會建立一個與上述範例類似的新行事曆,但其還會將該行事曆與名為 sports 的種類相關聯,該範例還啟用雙預定功能,並指定 Ron Jones 為另一位所有者:
cscal -n Hobbies -o jsmith -g sports -k yes -y rjones create Personal
其中:
-g sports 將行事曆與名為 sports 的種類相關聯。
-y rjones 指定行事曆的另一位所有者。
-k yes 啟用雙預定功能。(-k no 會停用雙預定功能。)
以下範例會建立一個與上述範例類似的行事曆,但還會為群組排程設定特定的存取控制設定:
cscal -n Hobbies -o jsmith -a "@@o^a^sfr^g" create Personal
其中 -a "@@o^a^sfr^g" 授予其他所有者對該行事曆的元件和行事曆特性的排程、空閒/忙碌以及讀取等存取權限,以進行群組排程。
資源行事曆與可排程的事項相關聯,例如會議室、筆記型電腦、高射投影機和其他設備。資源行事曆需要存取控制清單。
如表 15–3 所示,ics.conf 檔案中有兩個配置參數適用於資源行事曆:
resource.default.acl – 預設存取控制清單。
resource.allow.doublebook – 允許或不允許雙預定的參數。
有時可能需要雙預定使用者的行事曆,而可能不需要雙預定資源,因此預設值為 "no"。然而,如果需要,您可以將其變更為 "yes"。
若要變更這些參數 (如表 15–3 中所示) 的預設值,請編輯 ics.conf 檔案。對預設值的變更將僅適用於新的資源行事曆;不會變更現有資源的值。
對於 Schema 1,使用 Calendar Server 公用程式 cscal 變更現有資源行事曆的值。csresource 公用程式不包含 modify 指令。
對於 Schema 2,使用 Delegated Administrator 公用程式指令 commadmin resource modify。Delegated Administrator 主控台不可以變更行事曆資源的這些值。
Calendar Server 通知軟體的設計僅用於將通知傳送給使用者,而不傳送至資源。
參數 |
說明和預設值 |
---|---|
resource.default.acl |
此參數確定建立資源行事曆時使用的預設存取控制權限。此預設權限由以下存取控制清單 (ACL) 指定: "@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g" 此 ACL 會授予所有行事曆使用者對該行事曆 (包含元件和特性) 的讀取、排程以及空閒/忙碌存取權限。 若要變更資源的權限,請在使用 csresource 公用程式的 create 指令建立行事曆時,使用 -a 選項。 |
resource.allow.doublebook |
此參數決定資源行事曆是否允許雙預定。雙預定允許資源行事曆同時具有多個事件排程。 預設為 "no" — 不允許雙預定。 若要允許資源行事曆的雙預定,請在使用 csresource 公用程式的 create 指令建立行事曆時,使用 -k 選項。 |
Calendar Server 無法自動佈建資源行事曆。對於您站點所需的每個資源,您必須使用以下方法:
對於 Schema 1,使用 Calendar Server 公用程式指令 csresource create。
此公用程式可同時建立資源的 LDAP 項目和預設行事曆。
例如,若要建立資源 LDAP 項目和行事曆 ID 為 aud100、可檢視名稱為 Auditorium (LDAP cn 屬性) 並具有預設設定的行事曆,請使用以下指令:
csresource -m aud100@siroe.com -c aud100 create Auditorium
對於 Schema 2,使用 Delegated Administrator 公用程式指令 commadmin resource create 組合建立 LDAP 項目。然後使用 Calendar Server 公用程式指令 csresource create 建立預設行事曆。
對於 Schema 2,使用 Delegated Administration 主控台建立資源 LDAP 項目。然後使用 Calendar Server 公用程式指令 csresource create 建立預設行事曆。
若要使用主控台建立 LDAP 資源,請從 [組織清單] 中選取該資源要常駐的組織。在該組織的 [行事曆資源] 頁面中,按一下 [新建] 以顯示 [建立新行事曆資源精靈]。
如果該資源的 LDAP 項目已存在,則 csresource 僅建立行事曆。它不會建立重複的 LDAP 項目。
如需有關 Delegated Administrator 公用程式的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
如需有關 Delegated Administrator 主控台的更多資訊,請參閱線上說明。
如需有關 csresource 的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
依預設,Calendar Server 不允許資源行事曆的雙預定 (resource.allow.doublebook 參數)。此預設可避免資源 (如會議室和設備) 的排程發生衝突。但是,如果您要允許資源行事曆的雙預定,請在建立行事曆時將 csresource -k 選項設定為 “yes”。
以下指令建立資源 LDAP 項目和行事曆,但 -k 選項允許對行事曆使用雙預定,-o 選項將 bkamdar 指定為行事曆的所有者,而 -y 選項將 jsmith 選項指定為另一位所有者:
csresource -m aud100@siroe.com -c aud100 -k yes -o bkamdar -y jsmith create Auditorium
若要控制誰可以排程特定資源,請考量對該資源行事曆擁有寫入權的使用者加以限制。例如,您可能只想允許特定的使用者排程會議室或預訂設備。
如果未指定資源行事曆的所有者,將使用 ics.conf 檔案中 service.admin.calmaster.userid 參數的值。
建立使用者行事曆後,請使用cscal公用程式執行以下管理工作:
若要顯示所有行事曆、由某位使用者所有的所有行事曆或特定行事曆的特性,請使用 cscal 公用程式的 list 指令。
例如,列出行事曆資料庫中的所有行事曆:
cscal list
列出 jsmith 擁有的所有行事曆:
cscal -o jsmith list
列出行事曆 ID 為 jsmith:meetings 的行事曆的所有特性:
cscal -v list jsmith:meetings
若要從 Calendar Server 中刪除一個或多個行事曆,請使用 cscal 公用程式的 delete 指令。此公用程式會刪除行事曆,但不會從目錄伺服器中刪除使用者。
delete 指令會從行事曆資料庫中移除行事曆的所有資訊,並且無法復原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料 。
cscal 公用程式可讓您刪除單個或多個行事曆。
例如,刪除行事曆 ID 為 jsmith:meetings 的特定行事曆:
cscal delete jsmith:meetings
刪除其主要所有者為 jsmith 的所有行事曆:
cscal -o jsmith delete
使用 Calendar Server 公用程式指令 csuser delete 或 Delegated Administrator 主控台或公用程式刪除一個或多個使用者後,由該使用者所有的行事曆可能仍在資料庫中。
有兩種方法可移除使用者的行事曆。使用何種方法取決於刪除使用者時所使用的工具︰
csuser 公用程式可移除 LDAP 目錄中的使用者及其預設行事曆,但不移除可能由該使用者所有的其他任何行事曆。如需有關如何使用 cscal 移除這些行事曆的說明,請參閱移除使用 csuser 刪除的使用者之所有行事曆。
Delegated Administrator 不會移除任何行事曆。請使用 Delegated Administrator 標記要刪除的使用者,然後使用 Calendar Server 公用程式 csclean 移除標記刪除的使用者的行事曆。
如需有關如何使用 csclean 移除已刪除使用者的行事曆的說明,請參閱移除由 Delegated Administrator 刪除的使用者的所有行事曆。
如需有關使用 Delegated Administrator 公用程式的說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
如需有關使用 Delegated Administrator 主控台的說明,請參閱線上說明。
執行 cscal list,以找到已刪除所有者的 uid 對應的所有行事曆。
cscal -o owner list
使用 cscal 移除該所有者的所有行事曆。
cscal -o owner delete
透過再次執行 csuser list,驗證是否已移除所有行事曆。
如果已使用 commadmin 將使用者標記為已刪除,且使用者的 LDAP 項目已清除,則使用此程序。
Delegated Administrator 不會移除行事曆。請使用 csclean 公用程式移除使用 Delegated Administrator 標記為已刪除的所有使用者的全部行事曆。
請使用 csclean 移除標記為已刪除但尚未清除之使用者的所有行事曆。
例如,若要移除過去 10 天內 sesta.com 網域中標記為已刪除的使用者的所有行事曆,請使用以下指令︰
csclean -g 10 clean sesta.com
如果使用者已從 LDAP 中清除,則必須使用 cscal。
如需說明,請參閱移除使用 csuser 刪除的使用者之所有行事曆。
若要啟用行事曆以允許使用者進行存取,請使用 cscal 公用程式的 enable 指令。
例如,使用預設配置設定啟用行事曆 jsmith:meetings:
cscal enable jsmith:meetings
啟用行事曆 jsmith:meetings 但不允許雙預定:
cscal -k no enable jsmith:meetings
若要防止使用者存取行事曆,請使用 cscal 公用程式的 disable 指令。disable 指令可防止使用者存取行事曆,但不會從行事曆資料庫中移除資訊。
例如,防止使用者存取 jsmith:meetings:
cscal disable jsmith:meetings
若要修改行事曆的特性,請使用 cscal 公用程式的 modify 指令。
例如,變更 AllAdmins 的群組排程存取控制設定並將 RJones 指定為另一位所有者:
cscal -a "@@o^c^wd^g" -y RJones modify AllAdmins
其中:
-a "@@o^c^wd^g" 授予所有者對 AllAdmins 的元件 (事件和工作) 的寫入和刪除存取權限。
-y RJones 將此使用者 ID 指定為另一位所有者。
若要從行事曆中移除特性值,請使用 cscal 公用程式的 modify 指令,並以兩個雙引號 ( "") 指定該選項的值。
cscal -d "" modify jsmith:meetings
從 jsmith:meetings 中移除所有種類:
cscal -g "" modify jsmith:meetings
cscal -y "" modify jsmith:meetings
如果使用者的預設行事曆未顯示在 Communications Express 的 [目前行事曆] 下拉式清單中,但仍存在於資料庫中,您可以透過更新使用者 LDAP 項目中的以下屬性來回復該行事曆:
icsCalendar:default_calid
icsSubscribed:default_calid
其中 default_calid 為使用者的預設行事曆 ID (calid)。
對於 Schema 2,請使用以下方法之一更新屬性:
使用 Directory Server 公用程式 ldapmodify。
使用 Calendar Server 公用程式指令 csuser reset。
使用 Delegated Administrator 公用程式指令 commadmin user modify。
使用 Delegated Administrator 主控台,透過編輯 [使用者特性] 頁面增加預設行事曆名稱。
對於 Schema 1,請使用 csattribute add 指令更新屬性。
若要將使用者行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:
在原始伺服器上,使用csuser公用程式停用行事曆使用者。例如,停用使用者 ID 和 calid 為 bkamdar 的使用者:
csuser disable bkamdar |
在原始伺服器上,使用csexport公用程式將使用者的每個行事曆從行事曆資料庫匯出至檔案。例如:
csexport -c bkamdar calendar bkamdar.ics |
將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。
在新伺服器上,使用csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:
csimport -c bkamdar calendar bkamdar.ics |
在 LDAP 目錄伺服器上,使用csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com:
csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar |
在新伺服器上,使用使用者行事曆的csuser公用程式啟用行事曆使用者。例如:
csuser enable bkamdar |
在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:
cscal -v -o bkamdar list bkamdar ... csattribute -v list bkamdar |
在原始伺服器上,刪除您剛移動的所有行事曆。例如:
cscal -o bkamdar delete bkamdar |
-o 選項刪除主要所有者為 bkamdar 的所有行事曆。
如果您使用的是 CLD 快取記憶體選項,將行事曆移至其他後端伺服器之後,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。若要清除 CLD 快取記憶體,請執行以下步驟:
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。
重新啟動 Calendar Server。
建立資源行事曆後,請使用 csresource 公用程式管理該行事曆。以下是管理資源行事曆的程序︰
若要顯示資源行事曆,請使用 csresource 公用程式的 list 指令。
例如,顯示所有 Calendar Server 資源行事曆及其相應 LDAP 屬性的清單:
csresource list
顯示名為 Auditorium 的特定資源行事曆的所有 LDAP 屬性清單:
csresource -v list Auditorium
若要修改資源行事曆,請使用cscal公用程式的 modify 指令 (csresource 不包含 modify 指令)。
例如,將所有者設定為 tchang,並將另一位名為 mwong 的所有者增加至名為 Auditorium 的資源行事曆:
cscal -o tchang -y mwong modify aud100
在此範例中,cscal 公用程式需要 calid (aud100),而非行事曆名稱 (Auditorium)。
您可能需要停用某個資源行事曆,以防止使用者排程事件。例如,某間會議室在改建期間可能無法使用,或者某台高射投影機可能已送去修理。
若要停用或啟用資源行事曆,請使用 csresource 公用程式的 enable 或 disable 指令。
例如,停用名為 Auditorium 的資源行事曆:
csresource disable Auditorium
稍後啟用該資源行事曆:
csresource enable Auditorium
若要刪除資源行事曆,請使用 csresource 公用程式的 delete 指令。
例如,刪除 Auditorium 資源行事曆:
csresource delete Auditorium
Calendar Server 會顯示以下訊息:
Do you really want to delete this resource (y/n)?
輸入「y」可刪除行事曆,輸入「n」可取消此作業。
如果輸入「y」,Calendar Server 會刪除行事曆並顯示訊息指明行事曆已被刪除。
若要將使用者行事曆或資源行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:
在原始伺服器上,使用csresource公用程式停用行事曆資源。例如,停用使用一般名稱 Auditorium 的資源:
csresource disable Auditorium |
在原始伺服器上,使用csexport公用程式將每個資源行事曆從行事曆資料庫匯出至檔案。例如:
csexport -c aud100 calendar aud100.ics |
將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。
在新伺服器上,使用csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:
csimport -c bkamdar calendar bkamdar.ics |
在 LDAP 目錄伺服器上,使用csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com:
csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar |
在新伺服器上,使用csresource公用程式啟用行事曆資源。例如:
csresource enable bkamdar |
在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:
cscal -v -o bkamdar list bkamdar csattribute -v list bkamdar |
在原始伺服器上,刪除您剛移動的所有行事曆。例如:
cscal -o bkamdar delete bkamdar |
-o 選項刪除主要所有者為 bkamdar 的所有行事曆。
如果您使用的是 CLD 快取記憶體選項,且已將行事曆移至其他後端伺服器,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。若要清除 CLD 快取記憶體,請執行以下步驟:
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。
重新啟動 Calendar Server。
只要使用者行事曆或資源行事曆的權限被設定為允許使用讀取權限,您便可以建立指向一個或多個使用者行事曆或資源行事曆的連結。例如,您可以將行事曆連結嵌入網頁或電子郵件訊息中。這樣,其他使用者無需登入 Calendar Server,即可匿名檢視該行事曆。
http://CommunicationsExpresshostname: CommunicationsExpressport/uwc/ ?calid=calid-1[; ... ;calid-n]
對於多個行事曆,請使用分號 (;) 分隔各行事曆 ID (calid)。
例如,若要連結至 jsmith@sesta.com 和 jdoe@siroe.com 的預設行事曆,請輸入:
http://calendar.sesta.com:8080/?calid=jsmith@sesta;jdoe@siroe.com
連結至 calid 為 overhead_projector10 的高射投影機資源行事曆:
http://calendar.sesta.com:8080/uwc/?calid=overhead_projector10
若要匯出行事曆資料至檔案及從檔案中匯入行事曆資料,請分別使用 csexport 和 csimport 公用程式。行事曆資料可為 iCalendar (.ics) 或 XML (.xml) 格式。
您必須在安裝 Calendar Server 的機器上本機執行 csexport 和 csimport。Calendar Server 可以執行,也可以停止。
若要從先前使用 csexport 公用程式儲存的檔案匯入行事曆資料,請使用 csimport。匯入檔案的檔案副檔名 (.ics 或 .xml) 指示該檔案的儲存格式。
例如,從以 iCalendar (text/calendar MIME) 格式儲存的檔案 jsmith.ics 將行事曆資料匯入行事曆 ID (calid) jsmithcal:
csimport -c jsmithcal calendar jsmith.ics
從以 XML (text/xml MIME) 格式儲存的名為 jsmith.xml 的檔案將資料匯入行事曆 jsmithcal:
csimport -c jsmithcal calendar jsmith.xml
若要將行事曆資料匯出至檔案,請使用 csexport。您為輸出檔案指定的檔案副檔名 (.ics 或 .xml) 可決定使用何種格式。
例如,以 iCalendar (text/calendar MIME) 格式將行事曆 ID (calid) 為 jsmithcal 的行事曆匯出至名為 jsmith.ics 的檔案:
csexport -c jsmithcal calendar jsmith.ics
以 XML (text/xml MIME) 格式將行事曆 jsmithcal 匯出至名為 jsmith.xml 的檔案:
csexport -c jsmithcal calendar jsmith.xml
Calendar Server 將許多資料庫檔案保存在多個目錄中。必須透過實作第 10 章, 配置自動備份 (csstored)中所述的自動備份程序,或透過實作您自己的備份系統來保護資料庫檔案。您可以使用 csdb 公用程式管理資料庫檔案。
本章說明如何使用 csdb 管理 Calendar Server,其中包括以下小節:
若要管理資料庫檔案,請使用 Calendar Server 公用程式 csdb。本小節包含以下主題:
行事曆資料庫公用程式 csdb 將資料庫檔案視為三種邏輯資料庫:
caldb 由資料庫目錄中的所有 .db 檔案和 _db.* 檔案組成。以下為 行事曆資料庫檔案 (以及 cld_cache 和 ldap_cache 子目錄) 的預設位置:
/var/opt/SUNWics5/csdb
如果您願意,可以在執行 Calendar Server 配置程式 (csconfigurator.sh) 時指定其他目錄。如需有關配置程式的資訊,請參閱第 3 章, Calendar Server 配置程式 (csconfigurator.sh)。
下表說明行事曆資料庫 (caldb) 檔案:
表 16–1 Calendar Server 資料庫檔案
檔案 |
說明 |
---|---|
ics50calprops.db |
所有行事曆的行事曆特性。包含行事曆 ID (calid)、行事曆名稱、存取控制清單 (ACL) 及所有者。 |
ics50events.db |
所有行事曆的事件。 |
ics50todos.db |
所有行事曆的待辦事項 (工作)。 |
ics50alarms.db |
所有事件和待辦事項 (工作) 的警示。 |
ics50gse.db |
群組排程引擎 (GSE) 之排程請求的佇列。 |
ics50journals.db |
行事曆的日誌。在目前發行版本中未實現日誌。 |
ics50caldb.conf |
資料庫版本識別碼。 |
ics50recurring.db |
週期性事件。 |
ics50deletelog.db |
刪除的事件和待辦事項 (工作)。另請參閱第 18 章, 管理刪除記錄資料庫 |
階段作業資料庫由以下目錄中的所有檔案組成/opt/SUNWics5/cal/lib/admin/session/ and /opt/SUNWics5/cal/lib/http/session/
統計資料庫由 counter 目錄中的所有檔案組成:
/opt/SUNWics5/cal/lib/counter/
-t caldb – 行事曆資料庫
-t sessdb – 階段作業資料庫
-t statdb – 統計資料庫
如果不包含 -t 選項,則除 check 和 rebuild 僅在行事曆資料庫上作業之外,csdb 將在所有三個資料庫上作業。
本小節說明如何使用csdb公用程式執行以下管理工作:
若要執行 csdb 公用程式,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
若要檢視資料庫群組 (caldb、sessdb 和 statdb) 的狀態,請使用 csdb 公用程式的 list 指令。
若要列出資料庫狀態,請:
以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。
Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。
變更至 /sbin 目錄。例如,在 Solaris 作業系統上,輸入:
cd /opt/SUNWics5/cal/sbin |
對一個或所有資料庫群組執行 list 指令。例如,若要列出所有三個資料庫群組的狀態和統計資料,請執行:
./csdb list
以下代碼顯示範例輸出:
Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Calendar database version: 3.0.0 [BerkeleyDB] Total database size in bytes: 57344 Session database version: 1.0.0 [BerkeleyDB] Total database size in bytes: 0 Counter database version: 1.0.0 [Memory Mapped Files] Total database size in bytes: 118792 |
或者您可以選擇使用詳細模式。例如:
./csdb -v list
以下範例代碼顯示詳細輸出:
Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Calendar database version: 3.0.0 [BerkeleyDB] Total database size in bytes: 57344 Total number of calendars: 2 Total number of events: 0 Total number of tasks: 0 Total number of alarms: 0 Total number of gse entries: 0 Total number of master component entries: 0 Total number of deletelog entries: 0 Total logfile size in bytes: 5779919 Session database version: 1.0.0 [BerkeleyDB] Total database size in bytes: 0 Total logfile size in bytes: 0 Counter database version: 1.0.0 [Memory Mapped Files] Total database size in bytes: 118792 |
或者,使用 -t 選項指定一個目標資料庫群組 (caldb、sessdb 或 statdb)。例如,若要僅檢視行事曆資料庫的資料庫狀態和統計資料,請執行:
csdb -t caldb list
使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprops]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。
check 指令不檢查警示或群組排程引擎 (GSE) 資料庫中是否有損毀。
若要檢查資料庫是否損毀,請:
以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。
Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。
如果您尚未建立行事曆資料庫的副本,請建立副本。僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔案或記錄 (log.*) 檔。
變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:
cd /opt/SUNWics5/cal/sbin |
在行事曆資料庫的副本中執行 check 指令:
./csdb check dbdir \> /tmp/check.out 2\>&1 |
如果未指定 dbdir,check 將使用目前目錄中的資料庫。
check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout 和 stderr) 重新導向至一個檔案 (如範例中所示)。
check 完成後,請複查輸出檔案。
如果資料庫已毀壞,則可以使用緊急備份副本替代該資料庫。或者,您可以嘗試執行 rebuild 指令重建已毀壞的資料庫。
若要回復已損毀的行事曆資料庫 (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。
如果您已在所在站點實作群組排程,則重建應該包括 GSE 資料庫。
若要同時重建行事曆資料庫和 GSE 資料庫,請:
透過執行 csschedule -v list 指令確定 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 -g 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 |
然後 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。
輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。掃描第一遍以驗證 calprops 資料庫中的資訊,然後再掃描一遍以確定可從行事曆資料庫中存取 calprops。
以下範例顯示指令及其產生的輸出:
# ./csdb -g rebuild Building calprops based on component information. Please be patient, this may take a while... Scanning events database... 512 events scanned Scanning todos database... 34 todos scanned Scanning events database... 512 events scanned Scanning todos database... 34 todos scanned Scanning deletelog database... 15 deletelog entries scanned Scanning gse database... 21 gse entries scanned Scanning recurring database... 12 recurring entries scanned Successful components db scan Calendar database has been rebuilt Building components based on calprops information. Please be patient, this may take a while... Scanning calprops database to uncover events... 25 calendars scanned Scanning calprops database to uncover todos... 25 calendars scanned Successful calprops db scan Calendar database has been rebuilt |
若要刪除行事曆資料庫,請使用 csdb 公用程式的 delete 指令。必須停止 Calendar Server。
使用 -t 選項指定目標資料庫 (caldb、sessdb 或 statdb);否則,csdb 將刪除所有三個資料庫。
例如,若要刪除行事曆資料庫:
csdb -t caldb delete
csdb 公用程式會在刪除資料庫之前發出警告。
如果您選擇不使用 Calendar Server 提供的自動備份功能 (使用 csstored),則需要實作備份程序來保護資料。本章說明如何使用 Calendar Server 和其他 Sun 工具來執行行事曆資料庫檔案的手動備份和復原。
若要備份與復原 /var/opt/SUNWics5/csdb 目錄中的 Calendar Server 資料,請使用以下指令行公用程式:
csbackup 可備份行事曆資料庫、特定行事曆或使用者的預設行事曆。要備份的目錄必須由執行階段使用者 (icsuser) 所有,否則當您嘗試復原資料時會收到錯誤訊息。
csrestore 可復原使用 csbackup 儲存的行事曆資料庫、個別行事曆或使用者的預設行事曆。
如果您的現有自訂程序檔使用的是 Berkeley 資料庫工具 (例如 db_recover),您可能會發現該工具在升級至 Calendar Server 6 之後無法正常工作。在 Calendar Server 2004Q4 之前,這些工具使用靜態程式庫進行編譯。自該發行版本以來,這些工具使用動態程式庫進行編譯。
若要適應此變更,請修改自訂程序檔以使用動態連結程式庫,方法如下:將全域變數 LD_LIBRARY_PATH 變更為動態程式庫 (libdb-4.2.so) 的名稱。
本章包含以下小節:
Calendar Server 2 資料與目前的產品不相容。請勿嘗試復原由 Calendar Server 2 backup 公用程式備份的行事曆資料,因為這樣會遺失資料。
如果您有 2 份行事曆資料要移至目前的發行版本,則必須連絡技術支援,以獲得相應的遷移公用程式。
csbackup 公用程式可備份行事曆資料庫、指定的行事曆或使用者的預設行事曆。本小節說明以下內容:
以資料庫檔案所有者 (例如 icsuser) 的身份登入。
使用 csbackup 公用程式的 database 指令。
例如,將行事曆資料庫備份至名為 backupdir 的目錄:
csbackup -f database backupdir |
透過檢查備份目錄中的 ics50caldb.conf 版本檔案,驗證已備份的資料庫版本是否正確。
如果目標備份目錄已存在,並且您未指定 -f 選項,則 csbackup 公用程式會失敗。例如,如果 backupdir 存在,則即使目錄為空,以下指令也會失敗:
csbackup database backupdir |
因此,如果您指定已存在的目標備份目錄,請在執行 csbackup 時包含 -f 選項。
您也可以指定不存在的目標備份目錄,並讓 csbackup 為您建立該目錄。
以資料庫所有者 (icsuser) 的身份登入。
若要以 iCalendar 或 XML 格式將行事曆備份至檔案,請使用 csbackup 公用程式的 calendar 指令。
備份檔案的檔案副檔名 (.ics 或 .xml) 指示格式。
例如,以 iCalendar 格式 (文字/行事曆 MIME) 將行事曆 jsmithcal 備份至 backupdir 目錄中的 jsmith.ics 檔案:
csbackup -c jsmithcal calendar backupdir/jsmith.ics |
或者,以 XML 格式 (文字/XML) 將行事曆 jsmithcal 備份至 backupdir 目錄中的 jsmith.xml 檔案:
csbackup -c jsmithcal calendar backupdir/jsmith.xml |
以資料庫所有者 (icsuser) 的身份登入。
若要以 iCalendar 或 XML 格式將使用者的預設行事曆備份至文字檔案,請使用 csbackup 公用程式的 def cal 指令。您為輸出檔案指定的檔案副檔名 (.ics 或 .xml) 決定使用何種格式。
例如,以 iCalendar (文字/行事曆 MIME) 格式將行事曆使用者 jsmith 的預設行事曆備份至備份目錄中名為 jsmith.ics 的檔案:
csbackup -a jsmith defcal backupdir/jsmith.ics |
或者,以 XML (文字/xml MIME) 格式將行事曆使用者 jsmith 的預設行事曆備份至備份目錄中名為 jsmith.xml 的檔案:
csbackup -a jsmith defcal backupdir/jsmith.xml |
csrestore 公用程式可復原使用 csbackup 儲存的行事曆資料庫、個別行事曆或使用者的預設行事曆。您必須在安裝 Calendar Server 的本地機器上執行 csrestore 公用程式,並且必須先停止 Calendar Server。(但是,當您備份資料庫時,Calendar Server 可以正在執行。)
本小節說明以下內容:
以資料庫所有者 (icsuser) 的身份登入。
若要復原使用 csbackup 公用程式儲存至備份目錄的行事曆資料庫,請使用 csrestore 公用程式的 database 指令。
例如,復原儲存至名為 backupdir 的備份目錄的行事曆資料庫:
csrestore database backupdir |
以資料庫所有者 (icsuser) 的身份登入。
若要從使用 csbackup 公用程式儲存至備份目錄的資料庫復原特定行事曆,請使用 csrestore 公用程式的 database 指令與 -c 選項。
例如,從備份資料庫目錄 backupdir 復原行事曆 jsmithcal:
csrestore -c jsmithcal calendar backupdir |
以資料庫所有者 (icsuser) 的身份登入。
若要復原使用 csbackup 公用程式儲存至備份檔案的特定行事曆,請使用 csrestore 公用程式的 calendar 指令與 -c 選項。
備份檔案的檔案副檔名 (.ics 或 .xml) 指示儲存行事曆時使用的格式。
例如,復原以 iCalendar (文字/行事曆 MIME) 格式儲存至 backupdir 目錄中的檔案 jsmith.ics 中的行事曆 jsmithcal:
csrestore -c jsmithcal calendar backupdir/jsmith.ics |
或者,復原以 XML (文字/行事曆 MIME) 格式儲存至 bcakupdir 目錄中的檔案 jsmith.xml 中的行事曆 jsmithcal:
csrestore -c jsmithcal calendar backupdir/jsmith.xml |
以資料庫所有者 (icsuser) 的身份登入。
若要復原使用 csbackup 公用程式儲存至備份檔案的使用者預設行事曆,請使用 csrestore 公用程式的 defcal 指令。
備份檔案的檔案副檔名 (.ics 或 .xml) 指示儲存行事曆時使用的格式。
例如,復原以 iCalendar (文字/行事曆 MIME) 格式儲存至備份目錄 backupdir 中名為 jsmith.ics 之檔案的行事曆使用者 jsmith 的預設行事曆:
csrestore -a jsmith defcal backupdir/jsmith.ics |
復原以 XML (文字/xml MIME) 格式儲存至備份目錄 backupdir 中名為 jsmith.xml 之檔案的行事曆使用者 jsmith 的預設行事曆:
csrestore -a jsmith defcal backupdir/jsmith.xml |
您也可以使用 Sun StorEdge Enterprise Backup 軟體 (以前為 Solstice Backup) 或 Legato Networker 來備份和復原 Calendar Server 資料。Sun StorEdge Enterprise Backup 軟體與 Legato Networker 類似,並且本小節中的說明適用於這兩種產品。
但是,嘗試備份 Calendar Server 之前,請參閱 Sun StorEdge Enterprise Backup 文件或 Legato Networker 文件。
如需 Sun StorEdge Enterprise Backup 軟體文件,請參閱 http://docs.sun.com。
本小節說明以下內容:
Calendar Server 在 /opt/SUNWics5/cal/sbin 目錄中提供以下檔案,以與 Sun StorEdge 或 Legato 備份軟體配合使用:
Calendar Server 應用程式特定模組 (ASM)。ASM 是可由 Sun StorEdge 或 Legato 備份軟體進行呼叫以備份與復原資料的程式。
呼叫 csbackup 公用程式的程序檔。
– 呼叫 csrestore 公用程式的程序檔。
若要使用 Sun StorEdge 或 Legato 備份軟體備份行事曆資料庫,請:
將 Sun StorEdge 或 Legato nsrfile 二進位檔案複製到 /usr/lib/nsr 目錄。
在 /usr/lib/nsr 目錄中建立以下符號連結:
icsasm -\> /opt/SUNWics5/cal/sbin/icsasm nsrfile -\> /usr/lib/nsr/nsrfile |
變更至 /opt/SUNWics5/cal/sbin 目錄,並執行 csbackup 公用程式與 -l 選項。例如:
cd /opt/SUNWics5/cal/sbin ./csbackup -l |
-l 選項可在目前目錄下建立備份目錄影像。此目錄中的檔案為空並僅用於為備份程式提供有關行事曆將如何儲存至備份媒體的資訊。如果備份目錄已存在,則會與目前目錄結構同步化。
使用 save 指令備份行事曆資料。例如:
/usr/bin/nsr/save -s /opt/SUNWics5/cal/sbin/budir |
您也可以使用 Sun StorEdge 或 Legato 備份 GUI 來排程備份,方法是將用戶端儲存集設定為定期備份資料庫。
注意,請勿修改 .nsr 檔案。所產生的這些檔案包含備份程序期間由 save 指令和 icsasm 指令解譯的指令。
Calendar Server 不支援增量備份功能。請勿使用此功能,因為備份目錄只是資料夾結構的影像,不包含實際資料。
您無法備份名稱中包含非 ASCII 字元或正斜線 (/) 的行事曆。
自動化備份程序。
前面的步驟說明如何手動執行備份。設定備份程式的 backup 指令,以在執行備份程式的 save 指令之前執行 Calendar Server 的 csbackup 指令行公用程式,從而實現自動化的備份程序。
若要復原行事曆資料,請:
使用 Sun StorEdge Enterprise Backup 軟體的 nwrestore 功能或 recover 指令復原已備份的行事曆資訊。
如果您使用 nwrestore,則會收到以下訊息:
"File already exists. Do you want to overwrite, skip, backup, or rename?" |
請選擇 overwrite。
顯示此訊息是因為備份樹只是目錄階層。即備份樹由空檔案組成,並永久保持該方式。
Calendar Server 包含刪除記錄資料庫 (ics50deletelog.db),可以儲存已刪除的事件和待辦事項 (工作)。
在以前的發行版本中,Calendar Server 不維護已刪除事件和工作的資料庫。使用者不得不儲存事件或待辦事項 (工作) 的唯一識別碼 (uid) 或週期性識別碼 (rid) 來確定哪些元件已被刪除。這一限制直接影響到使用 WCAP 指令開發用戶端使用者介面 (UI) 的各個安裝。為解決此限制,已建立刪除記錄資料庫。
本章說明以下內容:
Calendar Server 自動在 csdb 目錄中建立刪除記錄資料庫 (ics50deletelog.db) 及其他 Calendar Server 資料庫檔案。Calendar Server 會將事件和待辦事項寫入刪除記錄資料庫,如下所示:
非週期性事件和待辦事項
刪除某個非週期性事件或待辦事項時,Calendar Server 會將其從事件資料庫 (ics50events.db) 或待辦事項資料庫 (ics50todos.db) 中移除,然後將其寫入刪除記錄資料庫 (ics50deletelog.db) 中。
週期性事件和待辦事項
刪除某個週期性事件或工作的個別實例時,Calendar Server 會將該事件或工作的每個已刪除實例寫入刪除記錄資料庫 (ics50deletelog.db) 中。
刪除某個週期性事件或待辦事項的所有實例時,Calendar Server 會將主要元件從事件或待辦事項資料庫中刪除,然後將其寫入刪除記錄資料庫中。刪除記錄資料庫中的主要元件包含 rrules、rdates、exrules 以及 exdates 週期性參數。
若要從刪除記錄資料庫傳回項目,請以展開模式或壓縮模式使用 fetch_deletedcomponents WCAP 指令:
展開模式 (recurring = 0)
如果 recurring 參數為 0,則 fetch_deletedcomponents 傳回符合條件的週期性事件之所有實例,但不傳回週期性事件的主要元件。
壓縮模式 (recurring = 1)
如果 recurring 參數為 1,則 fetch_deletedcomponents 傳回非週期性事件以及所有週期性事件的主要元件,但不傳回個別週期性事件。
如果刪除週期性事件鏈中的所有實例,則主要元件傳回 dtstart、dtend、rrules、rdates、exrules、exdates 和 uid 參數。
此外,fetch_deletedcomponents 不傳回與仍處於使用中的已刪除週期性實例相關的主要元件。若要傳回使用中的主要元件,請使用 fetchcomponents_by_lasmod WCAP 指令。fetch_deletedcomponents 指令應與 fetchcomponents_by_lasmod 指令配合使用。
如需有關 WCAP 指令的更多資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
Calendar Server 提供自動清除刪除記錄資料庫和手動清除刪除記錄資料庫。
如果願意,您可以讓 Calendar Server 自動清除刪除記錄資料庫中的項目。
下表說明 ics.conf 檔案中控制自動清除的參數。
表 18–1 用於自動清除刪除記錄資料庫的配置參數
參數 |
說明 |
---|---|
啟用 ("yes") 或停用 ("no") 自動清除刪除記錄資料庫 (ics50deletelog.db) 項目。 預設為 "no"。 |
|
指定自動清除刪除記錄資料庫 (ics50deletelog.db) 中項目的間隔時間 (以秒為單位)。 預設為 60 秒。 |
|
指定一個時間 (以秒為單位),清除刪除記錄資料庫 (ics50deletelog.db) 中早於此時間的項目。 預設為 86400 秒 (1 天)。 |
例如,若要使 Calendar Server 每隔五分鐘 (600 秒) 自動清除一次刪除記錄資料庫中超過兩天 (172800 秒) 的項目,請如下設定自動清除刪除記錄資料庫中的參數:
service.admin.purge.deletelog="yes" caldb.berkeleydb.purge.deletelog.interval=600 caldb.berkeleydb.purge.deletelog.beforetime=172800
設定這些參數後,重新啟動 Calendar Server 以使新值生效。
若要手動清除刪除記錄資料庫 (ics50deletelog.db ) 中的項目,請使用 cspurge 公用程式:
cspurge -e endtime -s starttime
其中 endtime 和 starttime 指定開始和結束時間,且為祖魯時間 (也就是 GMT 或 UTC)。
若要執行 cspurge,您必須以執行 Calendar Server 的使用者與群組身份 (預設值為 icsuser 和 icsgroup) 或以 root 身份登入。
例如,清除從 2003 年 7 月 1 日到 2003 年 7 月 31 日的項目:
cspurge -e 20030731T235959Z -s 20030701T120000Z
如需更多資訊,請參閱cspurge。
下表列出了支援刪除記錄資料庫 (ics50deletelog.db) 的 Calendar Server 公用程式:
表 18–2 支援刪除記錄資料庫的公用程式
公用程式 |
說明 |
---|---|
cspurge |
允許手動清除刪除記錄資料庫中的項目。 |
csbackup 和 csrestore |
支援刪除記錄資料庫的備份與復原。 |
csstats |
報告刪除記錄資料庫統計資料。 |
csdb |
支援對刪除記錄資料庫的重建、回復以及檢查作業。 |
cscomponents |
列出 (唯讀) 刪除記錄資料庫中的項目數。 |
如需更多資訊 (包括這些公用程式的語法),請參閱附錄 DCalendar Server 指令行公用程式參照。
本附錄說明 Calendar Server 如何定義與處理時區,包括:
如需有關時區特性和參數的更多資訊,請參閱 RFC 2445「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」:
http://www.ietf.org/rfc/rfc2445.txt
timezones.ics 檔案包含 Calendar Server 支援的時區表示。此檔案位於以下目錄中:
cal_svr_base/SUNWics5/cal/data
啟動時,Calendar Server 會讀取 timezones.ics 檔案,產生時區資料,然後將該資料儲存在記憶體中。這樣,在 Calendar Server 執行時,時區資料會保留在記憶體中。因此,如果增加新時區或修改現有時區,您必須先停止再重新啟動 Calendar Server,以使變更生效。
timezones.ics 檔案中的時區由 TZID 參數識別。例如,Calendar Server 使用 America/Los_Angeles TZID 識別太平洋標準時間 (PST/PDT) 時區,如範例 19–1中所示。TZNAME 特性是時區的縮寫表示,例如使用 PST (太平洋沿岸標準時間) 表示 America/Los_Angeles 時區。
識別日光節約時間 (DST) 的時區 (例如 America/Los_Angeles) 包含兩個子元件:STANDARD (標準時間) 及 DAYLIGHT (DST)。X-NSCP-TZCROSS 清單包含一系列指示時區何時該在 DST (DAYLIGHT) 和標準 (STANDARD) 時間之間進行切換變更的日期。
RRULE 特性定義 STANDARD 和 DAYLIGHT 規則的式樣。TZOFFSETFROM 和 TZOFFSETTO 特性定義 DST 至標準或標準至 DST 的變更發生前後與 GMT 之間的偏移。Communications Express 使用者介面使用 X-NSCP-TZCROSS 中的日期確定何時顯示時區變更。
包含時區 ID (tzid) 參數的 WCAP 指令應參照 timezones.ics 檔案中定義的有效時區。這樣,Calendar Server 才會傳回使用該時區的資料。如果 WCAP 指令指定的時區無法識別,Calendar Server 會依預設傳回 GMT 時區中的資料。如需有關 WCAP 的更多資訊,請參閱「Sun Java System Calendar Server 6 2005Q4 Developer’s Guide」。
以下範例顯示 America/Los_Angeles 時區在 timezones.ics 檔案中的表示。
BEGIN:VTIMEZONE TZID:America/Los_Angeles BEGIN:STANDARD DTSTART:19671025T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:-0700 TZOFFSETTO:-0800 TZNAME:PST END:STANDARD BEGIN:DAYLIGHT DTSTART:19870405T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4 TZOFFSETFROM:-0800 TZOFFSETTO:-0700 TZNAME:PDT END:DAYLIGHT X-NSCP-TZCROSS: 19880403T100000Z;19881030T090000Z;19890402T100000Z;19891029T090000Z; 19900401T100000Z;19901028T090000Z;19910407T100000Z;19911027T090000Z; 19920405T100000Z;19921025T090000Z;19930404T100000Z;19931031T090000Z; 19940403T100000Z;19941030T090000Z;19950402T100000Z;19951029T090000Z; 19960407T100000Z;19961027T090000Z;19970406T100000Z;19971026T090000Z; 19980405T100000Z;19981025T090000Z;19990404T100000Z;19991031T090000Z; 20000402T100000Z;20001029T090000Z;20010401T100000Z;20011028T090000Z; 20020407T100000Z;20021027T090000Z;20030406T100000Z;20031026T090000Z; 20040404T100000Z;20041031T090000Z;20050403T100000Z;20051030T090000Z; 20060402T100000Z;20061029T090000Z;20070401T100000Z;20071028T090000Z; 20080406T100000Z;20081026T090000Z;20090405T100000Z;20091025T090000Z; 20100404T100000Z;20101031T090000Z;20110403T100000Z;20111030T090000Z; 20120401T100000Z;20121028T090000Z;20130407T100000Z;20131027T090000Z; 20140406T100000Z;20141026T090000Z;20150405T100000Z;20151025T090000Z; 20160403T100000Z;20161030T090000Z;20170402T100000Z;20171029T090000Z; 20180401T100000Z;20181028T090000Z;20190407T100000Z;20191027T090000Z; 20200405T100000Z;20201025T090000Z;20210404T100000Z;20211031T090000Z; 20220403T100000Z;20221030T090000Z;20230402T100000Z;20231029T090000Z; 20240407T100000Z;20241027T090000Z;20250406T100000Z;20251026T090000Z; 20260405T100000Z;20261025T090000Z;20270404T100000Z;20271031T090000Z; 20280402T100000Z;20281029T090000Z;20290401T100000Z;20291028T090000Z; 20300407T100000Z;20301027T090000Z;20310406T100000Z;20311026T090000Z; 20320404T100000Z;20321031T090000Z;20330403T100000Z;20331030T090000Z; 20340402T100000Z;20341029T090000Z;20350401T100000Z;20351028T090000Z; 20360406T100000Z;20361026T090000Z;20370405T100000Z;20371025T090000Z; 20360406T120000Z;20361026T110000Z;20370405T120000Z;20371025T110000Z END:VTIMEZONE |
本小節說明以下主題:
本小節說明如何向 Calendar Server 增加新的時區,以便其在 Communications Express 使用者介面中可用。例如,您可能要為 America/Miami 增加新時區。
增加新時區最簡單的方法是複製並編輯以下步驟所說明的每個檔案中與要增加的時區類似的時區項目。例如,如果要為 America/Miami 增加時區,可複製並編輯每個檔案中用於 America/New_York 的時區項目。
在以下檔案中為新時區增加時區區段:
cal_svr_base/SUNWics5/cal/data/timezones.ics |
同樣,增加新時區區段最簡單的方法是將類似的現有區段 (包括所有日光節約時間 [DST] 偏移) 複製到要增加的時區。然後,編輯新時區區段,以對新時區進行變更。如果您的新時區包含日光節約時間 (DST),請嘗試找到一個類似的時區。
修改以下檔案中的 getDisplayNameofTZID 範本:
cal_svr_base/SUNWics5/cal/html/language/i18n.xsl file |
其中 language 指定您的站點使用的語言的目錄。例如:en (英文),或 fr (法文)。
如下所示,在 i18n.xsl 檔案中增加新項目:
<xsl:when test="$tzid=’TimeZoneArea/ TimeZoneName’"TimeZoneArea/ TimeZoneName</xsl:when\> |
其中:
TimeZoneArea 為某個地理區域:非洲、美洲、亞洲、大西洋、澳大利亞、歐洲或太平洋。
TimeZoneName 為新時區的名稱。
例如:
<xsl:when test="$tzid='America/Miami'"\>America/Miami</xsl:when\> |
修改以下 XML 檔案:
cal_svr_base/SUNWics5/cal/html/change_timezone.xml cal_svr_base/SUNWics5/cal/html/new_cal.xml cal_svr_base/SUNWics5/cal/html/new_group.xml |
在以下每個檔案中,增加以下行:
<timezone type="TimeZoneType" tzid="TimeZoneArea/TimeZoneName" offset="offset"> |
其中:
TimeZoneType 為 "americas"、"europeAfrica" 或 "asiaPacific"。
TimeZoneArea 和 TimeZoneName 在增加新時區中定義。
offset 為新時區超過 (+) 或落後 (-) GMT 的小時數。例如,如果新時區落後 GMT 四小時,偏移應為 "-04:00"。
例如:
<timezone type="americas" tzid="America/Miami" offset="-05:00" daylightOffset="-04:00"> |
如果要將新時區做為預設時區供使用者優先使用,請修改以下檔案中的 timezone 項目:
cal_svr_base/SUNWics5/cal/html/default_user_prefs.xml |
先停止 (如有必要) 再重新啟動 Calendar Server,以使新時區生效。
本小節說明如何修改現有時區。例如,您可能要變更時區名稱,如將「America/Phoenix」變更為「US/Arizona」。
修改以下檔案中您要變更之時區的時區區段:
cal_svr_base/SUNWics5/cal/data/timezones.ics |
如果變更時區名稱,請將 TZID 項目變更為新名稱。
修改以下檔案中的 getDisplayNameofTZID 範本:
cal_svr_base/SUNWics5/cal/html/language/i18n.xsl file |
其中:language 指定您的站點使用的語言之目錄。例如:en (英文),或 fr (法文)。
如果變更名稱,請將現有時區名稱變更為新名稱。
修改以下 XML 檔案,以變更時區:
cal_svr_base/SUNWics5/cal/html/change_timezone.xml cal_svr_base/SUNWics5/cal/html/new_cal.xml cal_svr_base/SUNWics5/cal/html/new_group.xml |
如需有關這些檔案中項目的資訊,請參閱增加新時區。
如果變更影響到供使用者優先使用的預設時區,請修改以下檔案中的「icsTimeZone」項目:
cal_svr_base/SUNWics5/cal/html/default_user_prefs.xml |
先停止 (如有必要) 再重新啟動 Calendar Server,以使時區變更生效。
Calendar Server 已與 Sun Java System Instant Messaging 6.0 (或更高版本) 整合,可為行事曆事件與工作提供自動快顯提醒通知。
本章說明以下內容:
本小節包含以下主題:
使用者可以接收行事曆上即將發生的事件和即將執行的工作的 Instant Messenger 快顯提醒通知。若要啟用這些快顯提醒通知,必須執行以下兩項工作:
管理員必須將 Calendar Server 和 Instant Messaging Server 配置為允許使用快顯通知。
一般使用者必須在 Communications Express 的 [選項] 標籤中指定電子郵件提醒通知,即在 [事件通知系統] 中設定警示。
一般使用者必須在 Instant Messenger 中啟用行事曆提醒通知。
啟用快顯提醒通知後,在事件或工作即將發生時,在 [事件通知系統] 中設定的警示將會使 Calendar Server 傳送電子郵件通知和 Instant Messaging 以顯示快顯提醒通知。
Calendar Server 管理員可以選擇為一般使用者配置電子郵件通知或快顯提醒通知,或同時配置這兩個選項。例如,若要關閉電子郵件提醒通知,請在 ics.conf 檔案中設定以下參數:
caldb.serveralarms.binary.enable= "no"
如果已經配置,Instant Messaging 快顯提醒通知會遵循以下架構流程:
Instant Messaging JMS 訂閱者可訂閱事件通知服務 (ENS) 中的 Calendar Server 事件與通知。
Calendar Server 將事件或工作通知以 text/xml 或 text/calendar 的格式發佈至 ENS。
Instant Messaging JMS 訂閱者接收行事曆事件或工作通知,然後產生 text/calendar 格式的訊息。
Instant Messaging 伺服器將此訊息傳送給行事曆所有者 (如果該一般使用者在線上)。
如果收件者在線上,Instant Messenger 會根據此訊息在一般使用者的桌面上產生 HTML 快顯提醒通知。
本小節包含以下配置說明:
以下配置 Instant Messaging 以進行快顯所必需的高階工作清單可為您提供方便。若要配置 Instant Messaging,請參閱 Instant Messaging 文件,位於:
http://docs.sun.com/coll/1309.1 和 http://docs.sun.com/coll/1420.1
安裝新的套裝軟體 SUNWiimag。
必須先使用 Java Enterprise System 安裝程式安裝 Instant Messaging 套裝軟體,才可將 Instant Messaging 用於快顯。
在安裝 Instant Messaging 的機器上,變更至以下目錄:
cd /etc/opt/SUNWiim/default/config
如下表中所示編輯一個或多個 iim.conf 檔案中的參數。
顯示的參數值假設您要對事件和工作均執行快顯提醒通知。如果您的 iim.conf 檔案中尚不存在這些參數,請增加。
變更至 imadmin 指令行公用程式所在的目錄:
cd /opt/SUNWiim/sbin
使用 imadmin 啟動行事曆代理程式:
imadmin start agent-calendar
行事曆代理程式是 Instant Messaging 元件,可為 Calendar Server 使用者提供快顯功能。使用隨 Instant Messaging 提供的工具,您可以啟動、停止、重新啟動行事曆代理程式或檢查其狀態,以及透過記錄檔監視其作業。
如果您有包含 stop、start 和 refresh 指令的程序檔,請將行事曆代理程式增加至這些程序檔。
如需有關 imadmin 和行事曆代理程式的更多資訊,請參閱「Sun Java System Instant Messaging 7 2005Q1 管理指南」。
確認下表中所示的 ics.conf 參數具有所示的值。如果不具有所示值,或您希望自訂值,請執行以下步驟:
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
如下表中所示編輯 ics.conf 參數:
參數 |
說明和預設值 |
---|---|
caldb.serveralarms |
啟用要佇列的行事曆警示。預設為 “yes” (已啟用)。 |
caldb.serveralarms.contenttype |
警示內容的輸出格式。預設為 "text/xml"。 |
caldb.serveralarms.dispatch |
啟用要派送的行事曆警示。預設為 “yes”。 |
caldb.serveralarms.dispatchtype |
要派送的伺服器警示的類型。預設為 "ens"。 |
caldb.serveralarms.url |
這是用於警示擷取警示內容的 URL。預設為 "enp:///ics/customalarm"。 |
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
若要接收 Calendar Server 事件與工作的快顯提醒通知,一般使用者必須按照如下所示配置其 Instant Messenger:
�Y�n�▇@ Calendar Server ���刁款A�剎炯q�H�U�趟��G
�Y�n�▇@ Calendar Server �s�� LDAP ㄖ�籮鼬A���佚��刁款A�則��H�U弋�我W�[��d�� LDAP �t�m�兵砝C
ⅴ弋�岔東餚��腹四戡祁果冽枓綜��j�M�w�]�腹四慍C�剋鬚w�s�b (pres)�BΨ�� (eq) N�l�r�� (sub) ��d�����C
ⅴ弋�岔東鴣j�Mㄏ�祁果冽派����愍L�腹四慍C�剋鬚w�s�b (pres)�BΨ�� (eq) N�l�r�� (sub) ��d�����C�t�勁拮\�▇@ DWP �燠活9��腹四搗j�M�刁��C
�o�列彪床鬚w�祁果函��D�n�M���N�q�l�l�頤儉}�C�t�勁拮\建立使用者和資源�MCalendar Server 公用程式 (csuser enable)�C
�p�莆��嚕W�[ㄖ�籮鼬A����d���箇T�A�勁拮\ Directory Server k�頸A�凜頸G
http://docs.sun.com/coll/1316.1 �M http://docs.sun.com/coll/1419.1
�暮z�B�� DWP �燠� (�Y�腹四搆箏召w���G�b�h�胄絕莆鼬A���W) 3�佣A�j�M�腹四搆箏召w3���腹四愍i�湘|w�鐳O�佣C�籮b LDAP ��ㄖ3�d�戡������愍X�腹四搏`�n�� DWP �D�蟯|�蠟栩C
ν�p�`�]�t�H�U�D�D�G
�Y�n�洽杭腹四搗j�M�H���鑰d�� LDAP ㄖ�齲A�M�窘A�d�莆腹四搆箏召w�A�勁膾腮H�U�B�J�G
�s�� ics.conf �兵砥9� service.calendarsearch.ldap �拭北An�k���N�拭司]�w�� “yes” (�w�])�A�p�U�洽理G
service.calendarsearch.ldap="yes"
���s�洎岌腹四搓A�年A�p�U�洽理R
start-cal
�p�G�z�n〥�\�杭W�s�籌��}�腹四慍A�起��z��ㄌ�腹四搗j�M�d�� LDAP�C�緊崗W�ACommunications Express �n�D�拭右托� “no”�C
�Y�n�T�w�O�_�i�H�z�L�虔愣�d�▇@�腹四搗j�M�刁款A�哎��家H�U LDAP �饕O�G
ldapsearch -b "base" "(&(icscalendarowned=*user*) (objectclass=icsCalendarUser))" |
�愧� base �� Calendar Server ���祁果冽M�綜��箏卮派b��ㄖ�籮鼬A���� LDAP �蕞� DN�Auser ���@�誤祁果兩i�b�j�M�踫瓠團濟卄暨J���年C
�蘊宸撚礫A�p�G�]�t 60,000 �范�ㄖ�A�b�S⑼�� icsCalendarOwned �虔愣�d���!p�U�A�W�z�j�M�j�鏝蛄n 50 �� 55 �歐��C�胄虔愣�d�稍A�W�z�j�M�死荻j�� 1 �� 2 �歐��C
�z�L�膾� comm_dssetup.pl ���A�撬� LDAP 弋�床虔愣�d�A�杭瓠株� icsCalendarOwned �虔愣�d�C
comm_dssetup.pl ��ⅴ弋�序M�瓷h�愍L弋�床虔愣�d�A�Hㄌ�h�荃嗽k�▇@�刁款C�p�G�z�|ξ�膾� comm_dssetup.pl �杯膾腥F�oξ�膾舅虔愣�d�A�h�i�H�Aⅳ�膾萵耍�ㄌ�{①�枕祁� Directory Server �u�傭虔愣�d�C
�p�莆��� comm_dssetup.pl �p�餡虔愣�d���箇T�A�勁拮\屬性索引�C
�p�莆��嚕W�[ㄖ�籮鼬A����d���箇T�A�勁拮\ Directory Server k�頸A�凜頸G
http://docs.sun.com/coll/1316.1 �M http://docs.sun.com/coll/1419.1
�卦w�]�ACalendar Server 3��ㄌ�Uㄌ�r〤�j�M�C�]�N�O� A�暮z�祁杼秈服卯祁果兕����j�M�腹四搭佣A�果卓暮z�b�梁q〢���o�X search_calprops.wcap �佣AΠ�N�j�M�P�祁� WCAP �饕O�伍e���j�M�r�綠輓T�桿升�〦�e�C
�p�G�z�w�z�L�� ics.conf �兵砥9��H�U�腹耀懷隴� (�z�L���┤}�Y��乍�上��u!�v) �洽枓Uㄌ�r〤�j�M�A�h�i�湘|�賬刁湧_�t���v�T�C
!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"
�Y�n�蘊差Uㄌ�r〤�j�M�賬刁氬��v�T�A�剎b�蒂��。J乍�上� (�u!�v) �H�Aⅳ���搬��隴��C
�t�朋����鑽T�wㄌ�優x�s�祁果具腹四搓��絕訪謨��A�M�稅~�湊q�腹四搆箏召w3�s�籍腹四慍C���戡嘰A�撬��絕訪謨��A�t�杰N�j�M�祁果協�ㄖ�� LDAP ㄖ�觀��D�誹X icsDWPHost 弋�尿Cⅴ�j�M�盛O�佣A���B�Cⅳ�s�籍腹四搆箏召余.����膾腳��j�M�C�C�胥祁果協Χq�@�~�—|�hⅳ�s�蘊箏召w�A�]ⅴ�n�hⅳ�j�M LDAP�C�Y�n�`�勘劫:��W�j�刁款A�卻z�L�s�� ics.conf �兵砲胤洽� CLD �桐艦O�咯旗A�p�U�洽理G
caldb.cld.cache.enable="yes"
LDAP �箏占桐艦O�咯滴x�s�祁果� ID N�搞欲餵� icsDWPHost 弋�尿C�b�j�M�祁果協�ㄖ�� LDAP 6�e�A�t�枚|�甬d�桐艦O�咯暨W�O�_⑼�胥祁果� ID�C�p�G�桐艦O�咯暨W⑼�胥祁果� ID�A�t�杰N�q�x�s�� icsDWPHost 弋�岑ⅡD�誹X�絕荼D�繙W�側C�p�G�桐艦O�咯暨7S⑼�胥祁果� ID�A�t�杰N�膾� LDAP �j�M���N�祁果� ID �P弋�抄句s�� CLD �桐艦O�咯暨0C�H�稍A�s�蘊胥祁果具腹四搆箏去��t�祚N�[�栩A�]���t�板{�b�i�H�b�桐艦O�咯暨6戡噓胥祁果� ID�C
�洽� LDAP �箏占桐艦O�咯槓稍A�z�i�H�祁� ics.conf �拭叱豎搖i�葆屐孫C�咳弱飭U�撩9��@�胚杭h�胞拭北G
�卦w�]�A�w�洽� LDAP �箏占桐艦O�咯旗C�z�i�H�z�L�]�w�H�U�拭叨N�搬�ㄌ�G local.ldap.cache.enable="no"
�拭� |
�?�/�� |
---|---|
local.ldap.cache .checkpointinterval |
�甬d�I�膾董驕b�甬d�I6�︵Rt���模北C�w�]�� “60”�C �b���﹒� LDAP �佣A�z�i�湔n�Y�u�–j�H���i�港O�蹼桐艦O�咯槐{���C�P�佣A�勁O�撥A�V�O�g�`�鴣s�桐艦O�咯旗A�t�沱��藻z���暨J�V�W�c�C |
local.ldap.cache. circularlogging |
�鬚w�B�z�� LDAP �箏占桐艦O�咯榣箏召w�O�鱷兌策O�_�n�N�搜��嗧C�w�]�� “yes”�C �冑支甜頤��拭北A�█D�z⑼�梁q���M�▊`①�i�H���╰␉��O�鱷佣C |
local.ldap.cache. logfilesizemb |
�鬚w�甬d�I�兵祐��兕j�j�p (�快U�價���)�C�w�]�� "10” �快U�價��孫C �p�G�z�祁杯��﹒� LDAP�Aⅴ�兵砭i�H�b�甬d�I�–j���濟��e�燕 C�悉御緊彗!p�A���峻N�曳]�w���@�茄P�O�纜緊崗j�p���濃��卡r |
local.ldap.cache. maxthreads |
�鬚w LDAP �箏占桐艦O�咯榣箏召w�膾董鱉��兕j�卉荀C�w�]�� “1000”�C �b���﹒� LDAP �佣A�z�i�湔n�W�[�膾董鱉��卉荀C�o�i�湘|�W�[ CPU ���Qㄌ�v�C�朱暮z�� LDAP �﹒忘兕栓免��C�甬d�I�卉荀C |
local.ldap.cache. mempoolsizemb |
�鬚w�@ㄌ�O�咯榮��快U�價��庭卉荀C�w�]�� “4” �快U�價��孫C |
local.ldap.cache. entryttl |
�鬚w LDAP �箏占桐艦O�咯榦�ㄖ���u⑼�刀劫 v(TTL) (�H�撢��腳�)�C�w�]�� “3600” �� (1 �p��)�C �p�G�z���桐艦O�咯榦燕!�S�� (���﹒�)�A�h�i�H�Y�u TTL �劫 C�鑰O�A�o�i�湘|�W�[ LDAP �箏召w�s�繽��嗇漳卉荀A���]ⅴ�嗇榭緝w�t�昕C |
local.ldap.cache. cleanup.interval |
�鬚w�U�桐艦O�咯榣箏召w�M�▄@�~6�!��–j�劫� (�H�撢��腳�)�C�w�]�� “1800” �� (30 ��亡)�C �t�板��─L������ㄖ�C�劫︱–j2δ�P��ㄖ TTL �劫…晤P�C�鑰O�祀��P�BF�N�|�頹[⑼�一C |
local.ldap.cache. stat.enable |
�鬚w�O�_�b�O�鱷伯ⅥO�纜� LDAP �箏占桐艦O�咯榮��s�藻!p���C�L�枇p�箏北C�w�]�� “no”�C �Y�n�W�j�刁款A�咬戎b�┘鏖派。7祁杭��]�w�C |
local.ldap.cache. stat.interval |
�鬚w�U�枇p�箏司鵠i�g�J�O�鱷佚��–j�劫� (�H�撢��腳�)�C�w�]�� “1800” �� (30 ��亡)�C �朱� local.ldap.cache.stat.enable �洽枝伯~�|�B�頹i�祁果��A�C�Y�u�–j�i�H�餐U�z�兇T�a�T�w�設D�派b�C�W�[�–j�N�|�緝w�t�枓顫J�C |
Communications Express �w����ㄌ�箏占桐艦O�咯旗C
⑼�@�賣��糊�ㄖ�b�桐艦O�咯暨9����d�劫.HN�桐艦O�咯榮��j�p���拭北C
�Y�n�屐宮桐艦O�咯旗A�剎p�U�撚洽硫s�匱@�胚杭h�胞拭北G
表 21–2 ㄌ�骸t�m LDAP SDK �桐艦O�咯榮� ics.conf �拭�
�拭� |
�?辮M�w�]�� |
---|---|
ㄖ�eξ�管@�C�zδ��h�役��� ldap_cache ㄖ�釁�〦�e�A�M�筆��s�洎� Calendar Server�C �p�G service.ldapmemcache �� "yes"�A�hⅴ�拭卉東髭]�w�桐蘋�ㄖ���兕j�模北C�p�G�� “0”�A�h�豌桐蘋�ㄖ���劫:S⑼���碾C�w�]�� “30”�C |
|
�p�G service.ldapmemcache �� "yes"�A�hⅴ�拭卉東髭]�w�桐艦O�咯榴N�蠢果��O�咯榮孔!��兕j�卉� (�H�價��屑��腳�)�C�p�G�� “0”�A�h�桐艦O�咯槌L�j�p���碾C�w�]�� “131072”�C |
�zδ���O�鏜臥冑W�卉職��j�p�P�爰荻��!�Ψ�勾H�K�W�L�iㄌ�臥剌孔 C�Y�n�餐U�最z�k�吾兵秣卉覆P�螟葫卉繙蠢果��臥剌孔 A�i�H牛�頤U�� ics.conf �拭去��]�w�A�o�伍拭卯M�w�z�@ⅳ�i�O�d���卉薩卉��另qN十�o�M�╰␉��卉����臥剌孔︶{�免扣��噓m�C
⑼�T�虔i�H�w�豎C�致卉贅����B�k�吾兵祕M�螟葫卉觴弱亂��拭奴���
mindays – �卉繒i�H�O�贊b�臥冑W���兕桌拭北C
maxdays – �卉繒i�H�O�贊b�臥冑W���具hQ�北C
threshold – �祁果��臥剌孔・岑�w�CΠ�Q�@��十�o�I�祁昕C
Calendar Server �b2�W�L�臥咪{�免扣��鵑頭U�b�具h���i�殘拭半��O�醱卉繕C�]ⅴ�A�p�Gㄖ�e���卉翹臥臥剌��祁板v�W�L�{�免年A�t�杰N�M�┼咖␉��卉薩卉��A���d�袍臥剌��祁板v�O�_�C�償{�免年C�t�枚|�~仇�M�╰␉��卉薩卉��A���嘻勿X�H�U�濟@�!p�G���▅愍L�卉薩卉��N�免P�臥冑W���卉覲卉荃p�髭兕p�卉薩卉��卉荀A�杪臥剌孔!��祁板v�C�償{�免年C
�]ⅴ�A�z�i�H�祁氛{�免旬拭台最z�卉翹祁果��臥剌孔 C�晝知A�z�]�i�H�z�L�弱飭��\���臥剌孔?M�卉����j�p�苦最z�O�贊b�臥冑W���卉覲卉荀C
�U�撮C�X�F���緻臥剌孔?M�O�d�b�臥冑W���卉覲卉蚩� ics.conf �拭北G
表 21–3 ㄌ�髭]�w�O�贊b�臥冑W���卉職��卉蚩� ics.conf �拭�
ics.conf �拭� |
�w�]�]�w |
�?� |
---|---|---|
caldb.berkeleydb.hotbackup.mindays |
3 |
�螟葫卉繒i�O�贊b�臥冑W���兕桌拭北C |
caldb.berkeleydb.hotbackup.maxdays |
6 |
�螟葫卉繒i�O�贊b�臥冑W���具hQ�北C |
caldb.berkeleydb.hotbackup.threshold |
70 |
ㄌ�鴒螟葫卉職��臥剌孔・岑�w�C�樟W�L�{�免早佣A十�o�M�╰␉��卉��C |
caldb.berkeleydb.archive.mindays |
3 |
�k�利卉繒i�O�贊b�臥冑W���兕桌拭北C |
caldb.berkeleydb.archive.maxdays |
6 |
�k�利卉繒i�O�贊b�臥冑W���具hQ�北C |
caldb.berkeleydb.archive.threshold |
70 |
ㄌ�儡k�吾兵秣卉職��臥剌孔・岑�w�C�樟W�L�{�免早佣A十�o�M�╰␉��卉��C |
�p�G�Y�x�鼬A��⑼�h�� CPU�A�卦w�] Calendar Server �|�b�o�� CPU �W��Χ HTTP �A�� (cshttpd �{��) �M����①�箏召w�A�� (csdwpd �{��)�C
service.http.numprocesses �M service.dwp.numprocesses �拭叻T�w���C�蚩A�旬膾腦��{�乒��緊恿卉荀C�卦w�]�A�b�w�秀�� A�o�伍拭司]�w���鼬A�� CPU ���卉荀A�黌z�i�H���]�o�伙年C�派p�A�p�G�鼬A���馭� 8 �� CPU�A�黌z�叨� cshttpd �M csdwpd �{�任戎b 4 �� CPU �W�膾腱A�h�N�拭司]�w���G
service.http.numprocesses="4" service.dwp.numprocesses="4"
�Y�n��ㄌ�t�饕��勾\�款A�匍N service.loadbalancing �拭叭W�[�� ics.conf �兵砝A���N�搔]�w�� “no”�C�M�筆��s�洎� Calendar Server�A�芬甜頹帕一C
�i�H�祁杭U�� ics.conf �拭去��O�免戍茂弱� Calendar Server �刁款C
�s�b�H�U�������O�免年R
�p�莆��嚮s�� ics.conf �拭去��箇T�A�勁拮\編輯 ics.conf 配置檔案�C
�U�槽?� ics.conf �兵砥4按最z (csadmin) �A�戍祁果� Calendar Server �O�冷拭北C
表 21–4 �最z�A�� (csadmin) �� HTTP �O�免�
�拭� |
�?� |
---|---|
service.admin.idletimeout |
�鬚w csadmind �A�戎b�肩=m�� HTTP �s�u�O�伯��e�Φ蛇��模北C �w�]�� 120 �� (2 ��亡)�C |
service.admin.resourcetimeout |
�鬚w csadmind �A�戎b�肪綜��腹四搓� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C �w�]�� 900 �� (15 ��亡)�C |
service.admin.sessiontimeout |
�鬚w csadmind �A�戎b�� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C �w�]�� 1800 �� (30 ��亡)�C |
�U�槽?� ics.conf �兵砥ⅣMㄌ�頭@�誤祁果函� Calendar Server HTTP �O�冷拭北C
表 21–5 ics.conf 3ㄌ�頭@�誤祁果函� HTTP �O�免� (cshttpd �A��)
�拭� |
�?� |
---|---|
service.http.idletimeout |
�鬚w cshttpd �A�戎b�肩=m�� HTTP �s�u�O�伯��e�Φ蛇��模北C �w�]�� "120" �� (2 ��亡)�C |
service.http.resourcetimeout |
�鬚w cshttpd �A�戎b�肪綜��腹四搓� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C �w�]�� "900" �� (15 ��亡)�C |
service.http.sessiontimeout |
�鬚w cshttpd �A�戎b�� HTTP �Χq�@�~�O�伯��e�Φ蛇��模北C �w�]�� "1800" �� (30 ��亡)�C |
�H�U ics.conf �兵祗拭可鬚w�b Calendar Server ��〦�e�u�@���y�s�峻叫{d�� (GSE) �稼C6�e�蛄n�Φ蛇��劫� (�H�撢��腳�)�G
gse.belowthresholdtimeout="3"
�p�G�稼C3���u�@�h�餞洎t�m�膾董鱉��兕j�卉荀A�h�刻稅@�胞膾董齬N�l�祖��s���y�u�@�稼C�C�]ⅴ�A�朱撩u�@�卉荃p�餞洎t�m�膾董鱉��兕j�卉衰佣Aⅴ�]�w�~�殖帕一C
�w�]�� "3"�C�W�jⅴ�卉訌|�磐栽鼬A�����y�稼C���W�v���▇@�嗇榷刁款C�鑰O�A�p�Gㄏ�館卉鴕q���W�[�胥秉稼C牛�o�L�j�A�i�H�磐栓劫 A�H〥�\�餐殷B�z�稼C�C�o�i�湘|�免P���C�嗇榷刁款A�觀卉骼N�|�餐柴鴣s�C
本章包括一些可以用於確定系統是否有問題以及問題出現之原因的疑難排解技術。本章包含以下主題:
由於沒有一個可以將整個系統置於「除錯模式」的 ics.conf 參數,所以本小節說明一些獲得有用除錯資訊的方法:
確定關閉不需要的多餘記錄和監視,否則將對效能起負面影響。
使用下表中顯示的參數提昇記錄詳細度:
參數 |
說明和預設值 |
---|---|
logfile.loglevel |
設定為 DEBUG 以記錄所有層級,包括 CRITICAL、ALERT、ERROR、WARNING、NOTICE 和 INFORMATION。此設定可套用於所有記錄。 |
如需有關可用的不同記錄的更多資訊,請參閱使用 Calendar Server 記錄檔。
若要記錄對 LDAP 資料快取記憶體的所有存取情況並列印記錄 (報告),請設定下表中所顯示的 ics.conf 參數。
參數 |
說明和預設值 |
---|---|
local.ldap.cache.stat.enable |
指定是否在記錄檔中記錄對 LDAP 資料快取記憶體的存取情況並列印統計資料。預設為 “no” (無記錄的統計)。設定為 “yes” 以啟用對統計的記錄。 若要增強效能,請僅在除錯模式中使用此設定。 |
local.ldap.cache.stat.interval |
指定各統計資料報告寫入記錄檔的間隔時間 (以秒為單位)。預設為 “1800” 秒 (30 分鐘)。 此預設僅在記錄啟用時才處於作用中。縮短間隔可以協助您準確地確定問題所在。增加間隔將會減緩系統載入。 |
目前 Calendar Server 中沒有使 LDAP 快取記憶體資料過期的邏輯。您必須手動移除 ldap_cache 目錄的內容並重新啟動 Calendar Server。
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/ldap_cache 目錄中的所有檔案,但請勿移除 ldap_cache 目錄本身。
重新啟動 Calendar Server。
使用以下公用程式監視系統:
csmonitor – 指定您需要的除錯層級。數字越大,訊息越詳細。
csstats – 使用 list 指令顯示在 counter.conf 檔案中定義的計數器物件的統計資訊。
cstool – 使用此公用程式對以下服務執行 ping 作業:cshttpd、csadmind 和 enpd。
如需有關 Calendar Server 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
如果您是首次建立託管環境,則必須透過增加適當的網域、容器、使用者和資源項目在 LDAP 中建立 DC 樹狀結構。如果使用 Calendar Server 公用程式 (例如 cscal) 時 DC 樹狀結構尚不存在,您可能會看到以下錯誤訊息:「Initialization failed .... exiting」。
確定您的 DC 樹狀結構在 DC 樹狀結構根目錄下至少包含一個 (預設) 網域。使用建立新的託管網域中的說明建立 DC 樹狀結構。
Calendar Server 提供了數個用於遷移行事曆資料庫和 LDAP 目錄的公用程式。本小節包含以下主題:
一般情況下,如果您在使用遷移公用程式時遇到疑難,則應該先收集好以下資訊,然後聯絡技術支援:
有問題的資料庫的備份副本。
所有相關記錄的副本。
所有錯誤輸出訊息,包括記憶體。
各遷移公用程式及其文件位於以下清單中所指定的位置:
此公用程式隨附於 Delegated Administrator,是一個可獨立安裝元件。它可將您的 LDAP 目錄從 Schema 1 遷移至 Schema 2。如需有關此公用程式的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Migration Guide」。
技術支援提供了包括公用程式及其文件的遷移程式集。
此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中,其中包括疑難排解小節。如果您要使用託管網域和 LDAP 行事曆查找資料庫 (CLD) 外掛程式,則必須執行此公用程式。
此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中。使用此公用程式為托管網域準備行事曆資料庫和 LDAP 目錄項目。
此公用程式與 Calendar Server 一同安裝。文件位於第 4 章, 資料庫遷移公用程式中。使用此公用程式遷移 Calendar Server 2 資料庫,以與 Calendar Server 5 相容。
此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意,因為來源資料庫中缺乏一致性。與許多手冊相同,此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意。通常需要對原始碼檔案執行許多工作,此公用程式才可以執行。可以考量使用專業服務協助您規劃遷移。
本小節包括多種用於非資料庫問題的疑難排解方法。本小節包括以下主題:
此外,在 SSL 章節中還包含 SSL 疑難排解小節:
若要驗證服務是否在偵聽指定的連接埠號,請使用cstool 公用程式的 ping 指令。對某種服務執行 ping 作業不會驗證該服務是否確實正在執行,但會指示該服務是否可以接受套接字連線。
Calendar Server 服務選項為:
HTTP 服務 (cshttpd)
管理服務 (csadmind)
事件通知服務 (enpd)
您無法對 DWP 服務 (csdwpd) 或通知服務 (csnotifyd) 執行 ping 作業。
例如,對主機名稱為 calserver 的機器執行 ping 作業,以查看 cshttpd 服務是否正在偵聽連接埠 80:
cstool -p 80 -h calserver ping http
依預設,cstool 會等待 120 秒,以查看有無回應;但您可以使用 -t timeout 選項變更該值。
如需完整的公用程式參考材料,請參閱附錄 DCalendar Server 指令行公用程式參照。
必須執行 Calendar Server,才能執行 cstool。
如果發出 start-cal 時未能啟動所有的行事曆服務,則必須先停止啟動的服務,然後再重新啟動。例如,如果 enpd、csnotifyd 和 csadmind 已啟動,但 cshttpd 未啟動,則必須停止 enpd、csnotifyd 和 csadmind。
若要啟動行事曆服務,請:
以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
使用 start-cal 停止服務,然後再重新啟動服務。例如:
cal_svr_base/SUNWics5/cal/sbin/start-cal
start-cal 首先發出 stop-cal 指令,然後才啟動各種行事曆服務。
如果 stop-cal 未能停止服務,則可能是因為某些子程序沒有停止。若要處理此情況,請參閱修正 stop-cal 問題。
關閉時需要考量以下兩個不同的問題:
發出 stop-cal 後,很可能未停止某些子程序。例如,stop-cal 可能停止了 cshttpd 父系程序,但未停止任何 cshttpd 子程序。在此情況下,您必須使用以下程序分別停止其餘 Calendar Server 程序:
以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
透過為每種服務輸入 ps 指令,確定其餘 Calendar Server 程序的程序 ID (PID):
ps -elf | grep cs-process |
其中 cs-process 為 enpd、csnotifyd、csdwpd、csadmind 或 cshttpd。例如:
ps -elf | grep cshttpd |
使用仍在執行的各程序的 PID,輸入 kill -15 指令強制結束該程序。例如:kill -15 9875
再次輸入各 ps 指令,以確定所有 Calendar Server 程序均已停止。
If a Calendar Server process is still running, enter a kill -9 command to kill it. For example: kill -9 9875 |
在執行 Calendar Server 的 Linux 系統上,如果您使用 ps 指令搜尋行事曆程序,其結果可能會令人費解。在 Linux 上,ps 指令傳回正在執行的執行緒清單,而非程序清單。尚無可以僅顯示程序的已知解決方法。
如果 Calendar Server 未正確關閉,請執行以下步驟:
執行先前程序修正 stop-cal 問題中的步驟。
手動刪除 LDAP 資料快取記憶體資料庫目錄中的所有檔案。
這些剩餘檔案可能會毀壞資料庫。若要刪除這些檔案,請:
重新啟動 Calendar Server。
cal_svr_base /SUNWics5/cal/sbin/start-cal
如需有關如何配置 LDAP 資料快取的說明,請參閱為 LDAP 配置 Calendar Server。如需有關 LDAP 資料快取記憶體的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide」。
對後端伺服器執行 ping 作業以檢查它是否有回應。
如果有回應,請移至步驟 3。如果沒有回應,請確定其失敗原因及其何時可以再次工作,然後繼續
清除 CLD 快取記憶體。請參閱清除 CLD 快取記憶體。
如果您要使用 CLD 快取記憶體選項並且已更新 ics.conf 參數的伺服器名稱,則應清除 CLD 快取記憶體以移除伺服器名稱。CLD 快取記憶體中的過期項目會妨礙前端伺服器建立與正確後端伺服器之間的連線,或會導致某個行事曆在被移動後,Calendar Server 無法找到該行事曆。
重新啟動 Calendar Server。
如果您要使用 CLD 快取記憶體選項並且已將一個或多個行事曆移至其他後端伺服器上 (或者變更了後端伺服器的名稱),請執行以下步驟:
確定執行用於移動行事曆的程序,該程序位於:
清除 CLD 快取記憶體。請參閱清除 CLD 快取記憶體。
如果您將一個或多個行事曆移動至其他後端伺服器上,則 CLD 快取記憶體將會過期。若要更新快取記憶體,您需要將其清除以便重建。
驗證 service.http.allowadminproxy 是否已設定為 “yes”。
驗證 admin-user 是否具有 Calendar Server 管理員權限。
驗證 admin-password 是否正確。
驗證 calendar-user 是否為有效的 Calendar Server 使用者。
LDAP 目錄伺服器配置中的 nsslapd-sizelimit 與 nsLookthroughLimit 屬性的值必須足夠大,以便搜尋可以正確完成。如果 nsSizeLimit 的值不夠大,可能會發生截斷,並且不會顯示任何結果。如果 nsLookthroughLimit 的值不夠大,搜尋可能無法完成。
本小節包含以下主題:
若要確定這些屬性是否已設定為適當的值,請嘗試以下指令:
ldapsearch -b "base " "(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"
其中 base 為 Calendar Server 的使用者和資源資料所在的目錄伺服器的 LDAP 基底 DN,而 user 為一般使用者可在使用者介面中搜尋對話方塊中輸入的值。
如果 LDAP 伺服器傳回錯誤,可能是 nsSizeLimit 參數或 nsLookthroughLimit 參數的值不夠大。
這些屬性的 DN 為:
dn: cn=config,cn=ldbm databases,cn=plug ins,cn=config
使用 ldapmodify 動態設定 nsLookthroughLimit 的值。
您不必停止再重新啟動 Directory Server 以變更此屬性。
預設值為 5000。如果搜尋沒有報告結果,您可能要增加此值。但是,這可能會減緩 LDAP 伺服器。
如果可能,請將限制設定為 -1,從而不加任何限制。但是,請謹慎執行此作業,因為該作業可能會導致系統當機。
如果您要將 nsslapd-sizelimit 設定為更高的值,則必須執行以下步驟:
停止 Directory Server。
編輯 dse.ldif 檔案。
重新啟動目錄伺服器。
如需有關如何使用 ldapmodify 和編輯 dse.ldif 檔案的資訊,請參閱 Directory Server 文件,位於:
http://docs.sun.com/coll/1316.1 和 http://docs.sun.com/coll/1419.1
依預設,start-cal 指令啟動 csstored 程序 (即使其尚未配置)。未配置的 csstored 程序將在執行 csstored 的每台機器上每隔 24 小時發出一次訊息,說明其尚未配置。
若要停用該訊息,請防止 csstored 在未配置的情況下執行。若要停止 csstored 程序執行,請為產生訊息的每台機器設定如下所示的 ics.conf 參數:
service.store.enable=”no”
請小心不要停用已配置 csstored 以進行自動備份的機器上的程序。
本小節包括關於 Calendar Server 資料庫的各種問題:
您將要執行的許多疑難排解步驟要求已存取 Berkeley 資料庫公用程式。儘管 Calendar Server 隨附有這些公用程式的某個版本,但其不受支援。您可能希望直接從 Sleepycat Software (http://www.sleepycat.com) 獲得更多資訊。
本小節包含以下主題:
設定並匯出 LD_LIBRARY_PATH 環境變數,以反映以下目錄:
cal_svr_base/SUNWics5/cal/tools/unsupported/bin/
下表列出了一些常用 Berkeley 資料庫工具 (公用程式)。
Berkeley 資料庫工具 |
說明 |
---|---|
db_archive |
將不再使用的記錄檔之路徑名稱寫入標準輸出 (每行一個路徑名稱)。 |
db_checkpoint |
常駐程式程序,監視資料庫記錄並定期呼叫檢查點常式檢查資料庫記錄。 |
db_deadlock |
遍歷資料庫環境鎖定區域並在每次偵測到死結或已逾時的鎖定請求時中斷鎖定請求。 |
db_dump |
使用 db_load 公用程式可以識別的平面文字格式,將指定的檔案寫入標準輸出。 |
db_load |
從標準輸入中讀取檔案並將其載入指定的資料庫檔案。如果檔案不存在,該工具將建立它。 |
db_printlog |
除錯公用程式以人類可讀格式傾印記錄檔。 |
db_recover |
應用程式、資料庫或系統出現意外故障後,將資料庫復原為與原來一致的狀態。 |
db_stat |
顯示資料庫環境的統計。 |
db_verify |
驗證一個或多個檔案的結構及檔案包含的資料庫。 |
如果 Berkeley 資料庫處於死結狀態,則必須重設資料庫。儘早偵測此情況是很重要的。
若要使系統能定期檢查資料庫以偵測死結狀態並通知管理員,請:
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
如有必要,編輯 ics.conf 以具有以下值:
local.caldb.deadlock.autodetect=”yes”
此參數設定為 “yes” 時,啟動監視鎖定區域的 db_deadlock 常駐程式。
可導致行事曆資料庫損毀的原因有以下多種:系統資源競爭、硬體故障、應用程式錯誤、資料庫故障,當然,還有人為的錯誤。本小節說明如何偵測行事曆資料庫損毀:
沒人能保證資料庫不受到損毀。但是可以將資料丟失和作業當機時間降至最低。密切監視資料庫和行事曆伺服器是儘早偵測損毀的關鍵。經常並完整地備份是從損毀 (只要發現) 中恢復的關鍵。
以下是行事曆資料庫可能受到的損毀的兩個層級:
應用程式層級 – 在多個資料庫檔案的一個資料庫檔案中的違例項目上作業時,這些項目會阻止伺服器執行。
資料庫層級 – Berkeley 資料庫頁面的損毀會導致各種問題的發生。一個常見問題就是執行 csdb check 時迴圈。另一個常見問題是出現如下錯誤訊息:
“illegal page type or format”, or “page 97895 doesn’t exist, create flag not set.”
監視 Calendar Server 記錄檔 (包括警示記錄),以發現任何可能指出資料庫損毀的錯誤訊息。如需有關記錄檔的資訊,請參閱使用 Calendar Server 記錄檔。
您應定期檢查記錄檔,瞭解是否存在 ALERT、CRITICAL、ERROR 以及 WARNING 層級的錯誤,一旦發現錯誤,應執行 Calendar Server 來檢查事件,以找出可能的問題。Calendar Server 正常作業期間會產生 NOTICE 和 INFORMATION 層級的記錄事件,這些事件可協助您監視伺服器狀態。
切勿移除資料庫目錄中的任何作業事件記錄檔。業事件記錄檔包含作業事件更新 (增加、修改或刪除),移除它們可能會損毀行事曆資料庫並且無法回復。
當您請求 Calendar Server 技術支援時,可能需要提供記錄檔,以協助解決問題。
使用 csmonitor 公用程式監視 Calendar Server。該公用程式會在偵測到問題 (例如存在多個作業事件記錄檔或行事曆資料庫磁碟空間不足) 時透過電子郵件警示管理員。如需更多資訊,請參閱csmonitor。
使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprop]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。
check 指令不檢查警示或群組排程引擎 (GSE) 資料庫中是否有損毀。
以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。
Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。
如果您尚未建立行事曆資料庫的副本,請建立副本。
僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔案或記錄 (log.*) 檔。
變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。
例如,在 Solaris 作業系統上,輸入以下作為預設目錄:
cd /opt/SUNWics5/cal/sbin |
在行事曆資料庫的副本中執行 check 指令:
./csdb check dbdir /tmp/check.out |
如果您未指定 dbdir,check 將使用目前目錄中的資料庫。
check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout 和 stderr) 重新導向至一個檔案 (如範例中所示)。
check 完成後,請複查輸出檔案。如果您的資料庫已毀壞,請執行 rebuild 指令。
(請參閱重建已損毀的行事曆資料庫。)
本小節包括如何在回復模式中保持已損毀的資料庫可存取,並包含以下主題:
遇到資料庫損毀時,防止服務中斷的一個方法是將資料庫置於唯讀模式。此模式允許一般使用者讀取資料庫項目,但不允許對其進行增加、修改或刪除。如果一般使用者嘗試增加、修改或刪除任何行事曆資料,系統將提示錯誤訊息。此外,當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。
如果資料庫已毀壞到不可被讀取的程度,則必須將服務中斷足夠長的時間以復原備份。復原備份的最快方法是具有完好的緊急備份。請參閱復原之前。
儘管不是必要的,但您可以選擇暫時停止行事曆服務以防止資料庫被進一步損毀。
若要停止行事曆服務,請:
cal_svr_base/SUNWics5/cal/sbin/stop-cal
在指令行變更至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
為行事曆資料庫指定唯讀模式:
caldb.berkeleydb.readonly=”yes”
完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server︰
cal_svr_base /SUNWics5/cal/sbin/start-cal
您必須重新啟動服務,以使 ics.conf 變更生效。
本小節包括一些常見資料庫故障以及一些建議的補救方法。本小節包含以下主題:
由於 csadmind 是同時處理群組排程引擎 (GSE) 和警示派送引擎的服務,因此這種情況可能是由 GSE 佇列或警示佇列的違例項目導致的。
補救方法:
如果 csadmind 沒有執行,請立刻發出 stop-cal。
將行事曆伺服器置於執行狀態可能會導致作業事件記錄累積,從而進一步損毀資料庫,並且可能要花更長的時間使作業事件記錄檔符合資料庫。
嘗試再次重新啟動 csadmind (再次發出 start-cal)。
如果啟動成功,請確定透過以下操作使兩個佇列發揮其功能:
使用 csschedule 檢查 GSE 佇列。
使用 dbrig 檢查警示佇列。
如需有關執行 csschedule 和 dbrig 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照。
如果 csadmind 由於傾印而當機,請分析 pstack。
如果您在追蹤中發現任何與 GSE 有關的功能 (它們中有字母 GSE),請查看 GSE 佇列的第一個項目和事件資料庫中的參照項目。多數時候,GSE 項目中涉及的事件是違例項目。若要修正此問題,請:
使用 csschedule 移除 GSE 項目。
使用 cscomponents 從資料庫中移除違例事件。
如需有關執行 csschedule 和 cscomponents 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照。
如果項目沒有被損毀,可能是行事曆伺服器無法處理的特殊情況。
執行以下步驟:
拍攝已損毀的資料庫的行事曆環境快照,並聯絡客戶支援。
若要建立環境備份,請:
若要避免服務中斷,請將行事曆資料庫暫時置於唯讀狀態,並復原至緊急備份副本。
將行事曆資料庫暫時置於唯讀狀態可防止任何增加、修改或刪除作業事件的發生。一般使用者增加、修改或刪除任何行事曆資料時都會收到錯誤訊息。當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。
若要將行事曆資料庫置於唯讀模式,請編輯 ics.conf 檔案並將以下參數設定為 “yes”,如下所示:
caldb.berkeleydb.readonly=”yes”
使用復原自動備份副本中的說明復原至緊急備份副本。
配置並啟用 csstored 後,在幾分鐘內即成為最新的緊急備份變為可用。您應經常驗證緊急備份副本以確定其也未被毀壞。(執行 db_verify。)
如果其他所有方法均失敗,請執行傾印和重新載入程序以查看其是否能挽救資料庫。
使用傾印和載入程序回復行事曆資料庫中說明了此程序。
這種情況可能是由控制執行緒導致的,該執行緒鎖定了 Berkeley DB 資料庫頁面,並在退出時未釋放鎖定。若要確認此問題,請執行 cshttpd 程序上的 pstack,並執行 csadmind。(pstack 是標準的 UNIX 公用程式,其位於:/usr/bin/pstack)。該公用程式將顯示等待以獲得鎖定的執行緒。
若要修正此問題,請重新啟動 Calendar Server,如下所示:
資料庫迴圈通常是由資料庫檔案中的損毀導致的。由於是資料庫損毀,故無法復原。有數個選項:
復原至緊急備份。
如果損毀是最近發生的,則可使用一個緊急備份。
使用突變歸檔回復程序。
如需建議使用的程序,請參閱復原自動備份副本。
使用傾印和重新載入程序,使用傾印和載入程序回復行事曆資料庫。
本小節說明如何使用 csdb rebuild 指令,其中包含以下主題:
rebuild 指令掃描行事曆資料庫,並檢查行事曆特性 (calprop) 事件和待辦事項 (工作) 是否損毀。如果 rebuild 指令找到不一致性,其會在 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建行事曆資料庫 (.db 檔案)。
不帶有 -g 選項的 rebuild 指令重建除群組排程引擎 (GSE) 資料庫之外的所有資料庫。若還要重建 GSE 資料庫,請包含 -g 選項。
若要確定 GSE 資料庫中是否有項目,請在執行 rebuild 指令之前執行 csschedule -v list 指令,然後使 GSE 處理完那些項目。
以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。
停止 Calendar Server。
建立行事曆資料庫副本,並將行事曆資料庫置於 /tmp/db 目錄中。
複製資料庫 (.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/ 參數為重建資料庫指定目標目錄。
若還要重建 GSE 資料庫,請包含 -g 選項。
rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdout 和 stderr) 重新導向至一個檔案。
請始終使用最新的備份複本重建您的行事曆資料庫。
然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中。)
例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601、db_0615 及 db_0629 中,請按以下序列執行 rebuild 指令:
./csdb rebuild db_0629 ./csdb rebuild db_0615 ./csdb rebuild db_0601 |
然後 rebuild 指令會將重建資料庫寫入 cal_svr_base/SUNWics5/cal/sbin/rebuild_db 目錄。
rebuild 完成後,請複查 rebuild.out 檔案中的輸出。
如果重建成功,rebuild.out 檔案中的最後一行應為:
Calendar database has been rebuilt |
驗證在先前步驟中的重建成功之後,請從 rebuild_db 目錄將重建資料庫 (.db) 檔案複製到您的生產資料庫。
如果您有任何已毀壞資料庫的共用 (__db.*) 檔案或記錄 (log.*) 檔,請將其移至其他目錄。
重新啟動 Calendar Server。
以下範例顯示指令及其產生的輸出:
# ./csdb -g rebuild Building calprops based on component information. Please be patient, this may take a while... Scanning events database... 512 events scanned Scanning todos database... 34 todos scanned Scanning events database... 512 events scanned Scanning todos database... 34 todos scanned Scanning deletelog database... 15 deletelog entries scanned Scanning gse database... 21 gse entries scanned Scanning recurring database... 12 recurring entries scanned Successful components db scan Calendar database has been rebuilt Building components based on calprops information. Please be patient, this may take a while... Scanning calprops database to uncover events... 25 calendars scanned Scanning calprops database to uncover todos... 25 calendars scanned Successful calprops db scan Calendar database has been rebuilt |
前面的輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。掃描第一遍以驗證行事曆特性資料庫中的資訊,然後再掃描一遍以確定行事曆特性資料庫可存取。
本小節包含以下主題:
使用傾印和載入程序以嘗試復原已損毀的資料庫。傾印和載入程序使用 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 選項多,包括部分已刪除的記錄。
例如,配合執行 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 技術支援或銷售客戶代表連絡,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。
如果您已使用第 10 章, 配置自動備份 (csstored)中所述的自動備份功能,則可以在即時資料庫毀壞時使用緊急備份副本。
本小節包括如何復原兩種不同的自動備份:
復原備份之前,請確定您已經完成以下作業:
嘗試診斷是哪個作業事件導致即時資料庫損毀。
移除或校正損毀作業事件以便新的歸檔檔案不會被損毀。
透過將已損毀的資料庫複製到其他目錄或可移動媒體來保留該資料庫。如果您需要聯絡技術支援,此作業是必須的。
即時資料庫被毀壞時,應首先選擇緊急備份。若要復原緊急備份,請執行以下步驟:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將目前的緊急備份副本複製到新的回復資料庫目錄中。
將已毀壞的即時資料庫目錄中的 log.* 檔案複製到新的回復資料庫目錄中。
如果您保留了資料庫的歸檔檔案副本,請將尚未套用於即時資料庫的記錄複製到歸檔檔案目錄,這樣您的歸檔檔案備份副本就完整了。
配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求保留這些記錄檔。
對新的回復目錄中的資料庫檔案執行 db_verify。
如需說明,請參閱檢查行事曆資料庫是否損毀。
對新的回復目錄執行 csdb -v list。
如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。
將新的即時資料庫複製到緊急備份目錄中,以做為新的快照執行。
在拍攝下個常規快照之前,所有新記錄將被套用於此副本。
啟動 CalendarServer。
如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未毀壞的更舊的緊急備份:
如果您沒有未損毀的緊急備份,但有歸檔檔案備份及其作業事件記錄,則可以透過執行以下步驟復原已歸檔資料庫的最新未損毀版本:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將最新的歸檔檔案副本及其記錄檔複製到新的回復資料庫目錄。
將已毀壞的即時資料庫目錄中的任何未套用的 log.* 檔案複製到新的回復資料庫目錄中。
配合執行 db_recover 與針對新的回復資料庫指定的 -c -h 選項。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求仍舊將這些記錄檔保留在此處。
對新的回復目錄中的資料庫檔案執行 db_verify。
如需說明,請參閱檢查行事曆資料庫是否損毀。
對新的回復目錄執行 csdb -v list。
如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。
將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。
啟動 CalendarServer。
如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未損毀的更舊的歸檔檔案備份:
向後執行歸檔檔案備份副本,透過依次對每一個歸檔檔案備份副本執行以下三個回復程式以尋找未損毀的最新副本:db_recover -c-h、db_verify 和 csdb -v list。
通過的第一個歸檔檔案副本可以被復原至即時資料庫目錄。
使用未使用的歸檔檔案備份替代已毀壞的即時資料庫,如復原歸檔檔案備份中所述。
如果您的歸檔檔案備份都不可用,請致電技術支援。
本小節包含以下主題:
如果您已使用 Berkeley 資料庫工具 (例如 db_recover) 建立自訂備份程序檔,則可能會發現升級至 Calendar Server 後,該程序檔無法再工作。其原因是:舊版 Calendar Server 使用靜態式庫編譯工具。現在使用動態程式庫 (libdb-4.2.so) 編譯工具。
若要將現有的自訂程序檔與新的動態式庫一同使用,請按如下所示設定以下全域變數:
LD_LIBRARY_PATH=libdb-4.2.so