本小節包含如何處理 Calendar Server 部署管理的章節。
這個部分包含以下章節:
本章說明 Calendar Server 部署的伺服器管理。
本章包含以下小節:
您可以透過執行 Delegated Administrator 公用程式 (以前稱為 User Management Utility) 或 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 的本機上執行這些公用程式。
檢查您的程序檔,確定未使用舊的 csstart 和 csstop 公用程式。請使用 start-cal 和 stop-cal 公用程式啟動和停止 Calendar Server。
start-cal 公用程式會以如下順序啟動 Calendar Server 服務:
watcher — 監視程式,監視系統的程序
enpd — 事件通知服務 (Event Notification Service, ENS)
csstored — 自動備份服務
csnotifyd — 通知服務
csadmind — 管理服務
csdwpd — 資料庫連線協定 (Database Wire Protocol, DWP) 服務,此分散式資料庫服務僅當您具有遠端 Calendar Server 資料庫配置時才啟動
cshttpd — HTTP 服務
如需這些服務的說明,請參閱1.10 在 Calendar Server 版本 6.3 中作為常駐程式執行的服務
以對系統具有管理權限的使用者身份登入。
發出 stop-cal 指令,確定已停止所有 Calendar Server 服務。
移至目錄。
cal-svr-base/SUNWics5/cal/sbin
啟動 CalendarServer。
./start-cal
以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。
移至目錄。
cal-svr-base/SUNWics5/cal/sbin
停止 Calendar Server。
./stop-cal
自動備份由 csstored 程序進行管理,該程序在發出 start-cal 後會自動啟動。然而,您也可以隨意啟用或停用自動備份。預設為停用自動備份。即使自動備份未啟用,csstored 程序也會執行。
有兩種類型的自動備份︰緊急備份和歸檔備份。您可以分別啟用或停用它們。
如需有關自動備份的資訊和配置 csstored 的說明,請參閱第 9 章, 配置自動備份。
以下是用於啟用和停止自動備份的作業清單:
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 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 檔案,但是您必須重新啟動服務以使變更生效。
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 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 檔案,但是您必須重新啟動服務以使變更生效。
依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 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 檔案,但是您必須重新啟動服務以使變更生效。
依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 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 檔案,但是您必須重新啟動服務以使變更生效。
本小節包含管理群組排程引擎 (Group Scheduling Engine, GSE) 的概念資訊和說明
GSE 會保留一個事件佇列,用來更新元件資料庫。管理員可以變更逾時值,以調整 Calendar Server 掃描佇列的時間間隔。還可以列出佇列中的事件,並在必要時刪除特定事件。
本小節包含以下主題:
GSE 可讓 Calendar Server 使用者建立事件並邀請其他與會者。如果某位與會者位於同一 Calendar Server 上,則該事件會排程在該與會者的行事曆中。如果某位與會者不在同一 Calendar Server 上,則系統會透過電子郵件傳送邀請。然後,與會者可接受或拒絕邀請,GSE 將用回覆更新事件。
GSE 佇列實際是 csadmind 程序所管理的獨立資料庫,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 和 Messaging Server 現在使用相同的停止和啟動機制,為 Sun JavaTM Enterprise System Monitoring Framework (JESMF) 的一部分。start-cal 指令會先啟動 watcher 程序,然後啟動其他所有程序。watcher 程序瞭解其他服務擁有的任何相依性,及服務啟動的順序。
每個註冊的服務 (程序) 會開啟與監視程式的連線。如果某程序因未適當地中斷連線而終止,則監視程式會自動重新啟動它。如果此程序在定義的間隔內終止兩次,則不會再重新啟動它。此逾時間隔是可配置的。
監視程式會寫入單一記錄檔 cal-svr-base/data/log/watcher.log,其中包含以下資訊:
傳送給管理主控台的失敗通知和無回應錯誤訊息。
所有伺服器的停止和啟動記錄。
如需如何配置監視程式的資訊,請參閱配置 Calendar Server 版本 6.3 的監視程式 (程序)
本小節包含如何清除 CLD 快取記憶體的概念資訊和說明。
本小節包含以下主題:
如果已啟用 CLD 快取記憶體,則需要不時地清除記憶體。基於各種原因,CLD 快取記憶體可能無法與您的系統配置同步 (失去時效)。
以下是 CLD 快取記憶體可能失去時效的一些原因。
增加、刪除或重新命名伺服器。
在配置中將伺服器從一項功能移至另一項功能。
將一個或多個行事曆移至不同的後端伺服器。
如果發生其中任何情況,為了更新 CLD 快取記憶體,您必須將其清除。
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。
重新啟動 Calendar Server。
如果在配置中增加、刪除或變更伺服器名稱,您應該執行以下數項「事務性工作」,以免出錯。
以下步驟有助於使 CLD 保持最新:
清除 CLD 快取記憶體
如果已移除舊的伺服器,請從包含它的 ics.conf 參數中將其刪除。
本小節包含如何啟用和停用匿名存取 (登入) 的說明。
匿名存取是一種不需要認證的特殊登入。啟用匿名登入後,依預設,對公開行事曆的讀取和寫入存取已啟用。可能會拒絕對公開行事曆的寫入存取。
本小節包含以下主題:
Communications Express 要求寫入和讀取均允許匿名登入。請參閱4.1 配置 Communications Express。
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 /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 環境中發揮最佳效能的說明相衝突。(您的資料庫分布在多台後端伺服器上。)請參閱21.2 提昇 DWP 環境中的行事曆搜尋效能。
將檔案儲存為 ics.conf。
重新啟動 Calendar Server。
cal-svr-base/SUNWics5/cal/sbin/start-cal
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 /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 的代理伺服器認證的說明,請參閱4.1 配置 Communications Express。
然而,即使您未使用 Communications Express,仍可以啟用代理伺服器認證。本小節包含在不使用 Communications Express 的情況下啟用代理伺服器認證的程序:
以擁有變更配置權限的管理員身份登入。
移至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
編輯 ics.conf 檔案,確認將以下參數設定為:
service.http.allowadminproxy = "yes"
否則,請將它變為 "yes"。
將檔案儲存為 ics.conf。
重新啟動 Calendar Server 以使新值生效。
使用以下 WCAP 指令驗證管理員代理登入是否在工作:
http://server[:port]/login.wcap? user=admin-user&password=admin-password &proxyauth=calendar-user&fmt-out=text/html
以下清單定義了以上範例中的變數:
server – 執行 Calendar Server 的伺服器名稱。
port – Calendar Server 的連接埠號碼。預設連接埠為 80。
admin-user – Calendar Server 管理員。例如,calmaster。
admin-password – admin-user 的密碼。
calendar-user – Calendar Server 使用者的 calid。
如果指令成功,系統將顯示 calendar-user 的行事曆。若發生問題,系統將顯示 [未授權]。
以下是指令可能失敗的部分原因清單:
admin-user 沒有 Calendar Server 管理員權限。
admin-password 不正確。
calendar-user 不是有效的 Calendar Server 使用者。
在 Calendar Server 6.3 發行版本中,使用 stop-cal 和 start-cal 指令來重新整理配置。如需更多資訊,請參閱12.1 啟動與停止 Calendar Server 6.3 程序。
本章包含如何在 Calendar Server 部署中管理網域的概念資訊與說明。
本章包含有關管理多個網域的以下小節:
管理 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」。
如需多個網域及其他簡介性內容的簡介,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境。
Calendar Server 不支援使用 Access Manager 主控台管理網域。
本小節包含將網域增加至 Calendar Server 部署的概念資訊與說明。您可以使用任一模式與多個網域搭配。不過,如果您可以選擇,請使用 Schema 2,以利用更好的工具組。
本小節包含以下主題:
Calendar Server 軟體具有多個預設會啟用的網域。不要變更以下 ics.conf 參數的值:service.virtualdomain.support="yes"。
一旦完成了第 10 章, 設定多重網域 Calendar Server 6.3 環境中描述的準備工作,您就可以增加網域。
每個網域均擁有您可設定的一組屬性和喜好設定。這些屬性是 icsCalendarDomain 物件類別的一部分。這些屬性包括喜好設定,例如存取權、存取控制清單 (ACL)、網域搜尋、網域搜尋存取權、使用者狀態以及代理登入。
本小節包含如何在 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 公用程式的簡化範例說明。
在 Schema 1 中建立網域時,請使用 csdomain create。例如,若要建立 west.sesta.com,請使用以下指令。
csdomain create west.sesta.com
如需有關如何為多個網域進行配置的說明,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境。
本小節包含啟用交叉網域搜尋的說明。
本小節包括您必須執行的兩項工作以啟用交叉網域搜尋:
在 LDAP 項目中為每個允許搜尋此網域的網域增加名稱,請參閱13.3.1 為允許搜尋此網域的網域增加名稱。
此網域中的使用者向事件傳送邀請時,增加可由此網域搜尋的網域名稱,請參閱13.3.2 增加可由此網域搜尋的網域名稱。
使用以下任一工具都可以完成以上工作:ldapmodify (用於任何一種 Schema 模式) 或 Delegated Administrator 主控台或公用程式 (用於 Schema 2)。
每個網域 LDAP 項目均以 ACE 的形式指定存取權限,您可以在 icsExtendedDomainPrefs 屬性的 domainAccess 參數中定義 ACE。允許外部網域搜尋此網域的兩種不同方式:
1.8 Calendar Server 版本 6.3 的存取控制中有如何建構 ACI 的更完整的說明。
可透過三種方式完成:
使用 ldapmodify 在 icsExtendedDomainPrefs 的 domainAccess 喜好設定中建立以下 ACE 字串:
@domain_being_allowed ^a^lsfr^g
透過指定允許搜尋此網域的網域,後跟允許搜尋需要的充分的權限來形成 ACE。
只容許一個 domainAccess 特性實例。如果使用 ldapmodify 變更值,您必須確定沒有不慎地重複建立這個特性。
不同於系統循序讀取 ics.conf 檔案,並採用它最後找到的屬性值的方式,對於 LDAP 項目,系統會使用它最先找到的實例。因為 LDAP 搜尋機制不保證將以任何特定順序搜尋項目內容,所以可能會先擷取舊版的特性,並且 Calendar Server 軟體將不會再進一步搜尋。
使用 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 主控台線上說明。
本章說明如何使用 Delegated Administrator 和 Calendar Server 公用程式來管理使用者、群組和資源。
本章包含以下小節:
本小節包含建立新使用者項目的說明。
本小節包含以下主題:
本小節說明如何為 Schema 2 LDAP 項目建立新行事曆使用者。
您可以使用 Delegated Administrator 主控台或公用程式:
Delegated Administrator 主控台
在 Delegated Administrator 主控台中,使用 [Create New User (建立新使用者)] 精靈。(按一下使用者要常駐之組織的 [使用者清單] 頁面中的 [新建]。)如需更多資訊,請參閱 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
本小節說明如何建立新群組 LDAP 項目
本小節包含以下說明:
群組是使用者、資源或其他群組 (巢式群組) 的已命名清單。群組可以是靜態或動態。
群組不會同時包含靜態和動態成員。如果建立了空群組,預設為靜態群組。
您可以使用以下工具之一:
Delegated Administrator 主控台 — 從 [群組] 頁面中按一下 [增加]。會出現 [建立新群組] 精靈。[行事曆服務詳細資訊] 會在 [郵件服務詳細資訊] 螢幕之後出現。您也可以將服務套裝軟體指定給 [行事曆服務詳細資訊] 螢幕上的群組。
如需有關主控台的更多資訊,請參閱 Delegated Administrator 主控台線上說明。
Delegated Administrator 公用程式 — 使用 commadmin group create。
例如:
commadmin group create -D chris -n sesta.com -w bolton -G testgroup -d sesta.com -m lorca@sesta.com -S mail -M achiko@varrius.com
如需有關 commadmin 公用程式的所有可用選項的詳細資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」
直接增加群組 LDAP 項目。使用「Sun ONE Directory Server Resource Kit 5.2 Tools Reference」中說明的目錄伺服器 LDAP 指令。
群組 LDAP 項目應該包括 icsCalendarGroup 物件類別,這是 GroupofUniqueNames 物件類別的延伸。以下是可以包括的屬性:
屬性 |
說明 |
---|---|
groupid |
這是群組的唯一必要屬性。它是群組的唯一識別碼,類似於使用者的 uid。 |
icsSecondaryowners |
群組的共同所有者。 |
icsDefaultacl |
新群組行事曆的 ACL 字串。 |
icsCalendar |
這個群組的預設行事曆的 calid。 群組不是必須具有預設行事曆。 |
icsStatus |
群組行事曆的狀態。可能值為:active、inactive、deleted。 |
icsTimezone |
群組的時區。 |
icsDWPHost |
預設行事曆所在的後端主機的名稱。 |
icsDoublebooking |
預設行事曆是否允許在相同時段排定多個事件。這會置換網域層級喜好設定 (icsAllowRights 的位元 15)。請參閱配置群組的 Calendar Server,以瞭解群組的網域預設層級。 |
icsAutoaccept |
預設行事曆是否將自動接受邀請。 |
|
這個群組的電子郵件位址。 |
owner |
群組的所有者 LDAP 項目的辨別名稱。必須是單一值。 |
主要所有者是由來自 GroupOfUniqueNames 物件類別的屬性 owner 指定。
例如,群組 LDAP 項目可能包含:
dn: groupid=mygroup, ou=group, o=sesta.com objectclass:groupofuniquenames objectclass:icsCalendarGroup groupid:mygroup owner:uid=jdoe, ou=people, o=sesta.com icsSecondaryowners:uid=pfox, ou=people, o=sesta.com icsStatus:active uniqueMember: uid=wsmith, ou=people, o=sesta.com
如需有關物件類別和屬性的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」。
本小節說明如何建立新資源。
使用以下其中一種方法來建立行事曆資源項目:
本小節包含在 Schema 2 模式中建立新資源 LDAP 項目的說明。
您可以使用 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 建立實際的資源行事曆。如需有關如何建立資源行事曆的資訊,請參閱15.5 建立行事曆
如需有關 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 的更多資訊,請參閱D.15 csresource。
本小節包含為郵件服務啟用 LDAP 項目的概念資訊及說明。
本小節包含以下主題:
Calendar Server 需要使用者、群組及資源具有 mail 屬性,其中包含使用者、群組或資源的電子郵件位址。該 mail 屬性將使人們能夠使用電子郵件位址或 calid 搜尋行事曆。使用 Delegated Administrator 建立新的使用者時,其會自動增加 mail 屬性。即使未向該使用者指定郵件服務,仍會如此。不過,如果已在不需要 mail 屬性的 Calendar Server 版本中建立使用者和資源,則您可能必須增加 mail 屬性至現有的使用者和資源 LDAP 項目。
增加 mail 屬性不會啟用使用者行事曆的電子郵件通知。
Calendar Server 不支援群組或資源行事曆的電子郵件通知。
若要啟用使用者行事曆的電子郵件通知,請將以下兩個屬性增加至使用者的 LDAP 項目:
icsExtendedUserPrefs:ceNotifyEnable=1
icsExtendedUserPrefs:ceNotifyEmail=jdoe@sesta.com
如果不知道使用者、群組和資源是否具有 mail 屬性,對於 Schema 2 環境,可使用 Delegated Administrator 來檢查是否有郵件服務。
對於 Schema 1 環境,可以 -v (詳細) 選項使用 csattribute list 指令。
例如,若要檢查會議室資源 Room100 是否具有 mail 屬性,您應該發出以下指令:
csattribute -v list Room100
其輸出會告知 mail 屬性是否已存在:
cn=Room 100,ou=conferenceRooms,dc=sesta,dc=com has mail: Room100@sesta.com
如果 mail 屬性存在,則您不必進行增加。如果屬性不存在,則如以下小節所示進行增加。
如果您正要將現有的 LDAP 項目轉換為具有行事曆功能的項目,則您必須將 mail 屬性增加至每一個沒有包含它的使用者、群組及資源 LDAP 項目。
若要將 mail 屬性增加至現有使用者、群組和資源,請使用以下方法之一:
對 Schema 2 環境使用 Delegated Administrator 公用程式。
使用 commadmin user|resource|group modify -A 選項。
例如:commadmin group modify -A +mail:jdoe@sesta.com
對 Schema 1 環境使用 Calendar ServerD.3 csattribute公用程式。
以下範例會為 sesta.com 伺服器上名為 Room100 的現有會議室增加 LDAP mail 屬性:
csattribute -a mail=Room100@sesta.com add Room100
使用 ldapmodify,直接增加屬性至任一 Schema 版本的 LDAP 項目。
本小節包含管理 LDAP 資料庫中的使用者項目的概念資訊及說明。其中不包括建立使用者項目的說明。如需有關建立使用者項目的資訊,請參閱14.1 建立行事曆使用者 LDAP 項目。
利用 Delegated Administrator 公用程式或主控台 (若為 Schema 2 LDAP 使用者項目),或利用 csuser 公用程式 (若為 Schema 1 LDAP 使用者項目) 管理使用者。
本小節涵蓋的管理工作如下:
本小節顯示兩個指令範例,它們使用 Calendar Server 公用程式指令 (csuser list),取得所有行事曆使用者的清單,或顯示特殊使用者的行事曆屬性 (來自 LDAP 使用者項目)。
本小節包含以下主題:
若要顯示所有具有行事曆功能的使用者,請發出以下指令行公用程式:
csuser list
若要顯示單一使用者的所有行事曆屬性,請發出以下指令行公用程式:
csuser -v list fully-qualified-user-name
例如,如果使用者是屬於 sesta.com 網域的 jsmith,則指令行如下:
csuser -v list jsmith@sesta.com
停用使用者的目的是防止使用者登入 Calendar Server。依據您用於建立使用者的使用者管理工具,會進行不同的處理。在 Delegated Administrator 主控台中建立的使用者也應使用它進行管理。同樣,如果您使用 Delegated Administrator 公用程式將行事曆服務指定給使用者,則使用它移除服務。各自對情況的處理稍有不同。
本小節包含以下主題:
在 Delegated Administrator 主控台中,僅暫時停用使用者是不可能的。您必須從使用者中移除行事曆服務。若要這樣做,請從 [使用者清單] 頁面中選取使用者。在此使用者的 [特性] 中,刪除包含行事曆服務的服務套裝軟體。這會停用行事曆的使用者,包括將使用者的 icsStatus 設定為 inactive。
如果套裝軟體還包含其他服務,您必須使用不包含行事曆的其他套裝軟體重新指定那些服務。
若要防止使用者存取行事曆服務,請將該服務從使用者的 LDAP 項目中移除,如以下範例所示:
commadmin user delete jsmith -S cal
這會從使用者中移除行事曆服務,但不會完整地移除 LDAP 項目。此外,此指令會將使用者的 icsStatus 變更為 inactive。
disable 指令可防止使用者存取行事曆資料,但不會從使用者的 LDAP 項目或 Calendar Server 資料庫中移除行事曆服務。這個公用程式會增加 icsAllowedServiceAccess="http" 至使用者 LDAP 項目,以此標示使用者為已停用。
例如,防止 jsmith 存取 Calendar Server:
csuser disable jsmith
如果 jsmith 目前已登入 Calendar Server,則 jsmith 仍可存取行事曆資料,直至其登出。
若要從使用者中移除行事曆服務,使用 csuser 公用程式 reset 指令。
例如,若要從 jsmith 中移除行事曆服務:
csuser reset jsmith
這樣做會從使用者的 LDAP 項目中移除所有行事曆屬性,包括 icsCalendarUser (類別名稱)、icsSubscribed、icsCalendarOwned、icsCalendar 及 icsDWPHost (如果使用 LDAP CLD 的話)。Calendar Server 管理員將無法代表使用者建立行事曆。
當發生以下一種情況時,行事曆服務會復原至使用者:
使用者再次登入 Calendar Server (已開啟自動佈建)。
Calendar Server 管理員發出 csuser enable 指令。在此情況下,icsDWPHost 屬性不會隨著指令復原。您必須個別地進行增加。
Calendar Server 管理員特別將物件類別及屬性增加至使用者 LDAP 項目。
您最近已遷移至 Schema 2,並使用 Delegated Administrator 增加行事曆服務。
本小節包含有關如何為使用者啟用行事曆服務的資訊。
當建立使用者時,通常會為行事曆服務啟用他們。不過,可以停用使用者。若要為行事曆服務重新啟用使用者,您必須使用本小節的其中一種方法。
Delegated Administrator 主控台與公用程式啟用使用者的實作方式略有不同。因此,您應該使用相同工具來啟用及停用使用者。不要使用某個工具來停用,而使用另一個工具來重新啟用。
本小節涵蓋以下啟用使用者的方法:
您無法從主控台停用使用者。您可以移除行事曆服務,然後重新進行增加。若要重增加加服務,請從 [使用者清單] 頁面中選取使用者,然後使用 [指定服務套裝軟體] 精靈,將行事曆服務套裝軟體增加至使用者的 LDAP 項目。使用者會自動啟用。
這是用來增加行事曆服務 (14.5.4 將行事曆服務增加至使用者) 的相同程序。
Delegated Administrator 公用程式可以利用以下選擇之一來啟用使用者:
將 icsStatus 變更為 active 來啟用使用者。
透過 commadmin user modify -A icsStatus:active 來啟用使用者。
將行事曆服務增加至使用者 LDAP 項目。
commadmin user modify -S cal
請確定使用相同方法來啟用和停用使用者。如果您在利用 Delegated Administrator 公用程式 (僅變更icsStatus) 停用了使用者之後,嘗試過利用 Delegated Administrator 主控台來啟用使用者,則系統因為使用者已有服務而不能夠增加服務,而且使用者仍是已停用狀態。
若要為行事曆服務重新啟用使用者,請使用 csuser enable 從使用者的 LDAP 記錄中移除 icsAllowedServiceAccess="http"。
不需要將行事曆服務增加至利用舊的 (Schema 1) Calendar Server 公用程式建立的使用者。不過,利用 (Schema 2) Delegated Administrator,可以從使用者的 LDAP 項目中增加和移除行事曆服務。
若要將行事曆服務增加至現有的使用者,請使用以下工具之一:
14.5.4.1 利用 Delegated Administrator 主控台將行事曆服務增加至使用者(用於 Schema 2)
14.5.4.2 利用 Delegated Administrator (commadmin user create) 將行事曆服務增加至使用者(用於 Schema 2)
14.5.4.3 利用 Calendar Server 公用程式增加行事曆服務(用於 Schema 1)
您可以將行事曆服務增加至新的使用者及現有的使用者:
使用 [新建使用者] 精靈建立新使用者時,它會為使用者指定一個包含行事曆服務的服務套裝軟體。使用者會自動啟用。
若為現有的使用者,請從 [使用者清單] 頁面中選取使用者,並使用 [指定服務套裝軟體] 精靈選取包含行事曆服務的服務套裝軟體。使用者會自動啟用。
建立新使用者時,請按以下範例中的說明來增加行事曆服務:
commadmin user create jsmith -S cal
如果建立使用者時您未啟用行事曆服務,則稍後您可以使用 modify 指令將行事曆服務增加至該使用者,如以下範例所示:
commadmin user modify jsmith -S cal
當建立使用者項目時,如果已使用 csuser create,則公用程式會將行事曆服務給與使用者,方法是增加 icsCalendarUser 及其屬性至使用者 LDAP 項目。
拒絕為使用者提供行事曆服務的一個方法是從使用者項目中移除服務。另一個方法是暫時停用使用者。 這些內容在先前標題為14.5.2 停用行事曆使用者的小節中有說明。
如果您需要為行事曆使用者設定電子郵件別名,請增加 mailalternateaddress 屬性至使用者的 LDAP 項目。mail 屬性提供主要郵件位址,而 mailalternateaddress 屬性用於電子郵件別名。這兩個屬性均將郵件位址對映至使用者的行事曆 ID (calid)。
您可以利用以下三種方法來增加屬性:
,使用 commadmin user modify -A 或以 ldapmodify 直接更新 LDAP。
若要啟用這些變更,可能還需要重建別名表或配置。請參閱 Messaging Server (或您的電子郵件產品) 的文件,以及網站自身的文件和有關郵件服務變更的程序。在以下網站可獲得 Messaging Server 文件:http://docs.sun.com/coll/1312.2。
Delegated Administrator 線上說明。
可以為行事曆使用者設定電子郵件別名,正如同傳訊使用者一般,方法是增加 mailalternateaddress 至使用者的 LDAP 項目。若要使用 Delegated Administrator 公用程式增加屬性,請使用 commadmin user modify -A mailalternateaddress:value。
若要增加電子郵件別名至使用者,請使用 csattribute add -a 指令來增加 mailalternateaddress 屬性至使用者項目。
例如,若要採用這些值為名為 John Smith 的使用者增加兩個別名:
mail 屬性:johnsmith@sesta.com
電子郵件別名﹕johns@sesta.com 和 jsmith@sesta.com
這些指令看起來類似以下範例:
csattribute -a mailalternateaddress=johns@sesta.com add johnsmith@sesta.com
csattribute -a mailalternateaddress=jsmith@sesta.com add johnsmith@sesta.com
本小節提供驗證行事曆服務的說明。
請使用以下工具來驗證使用者是否具有行事曆服務。
如果有 [行事曆服務詳細資訊] 頁面,則它們具有行事曆服務。或者,看一下服務套裝軟體詳細資訊,以查看列出什麼種類的服務。
請使用以下指令,列示與使用者關聯的所有目錄特性:
commadmin user search
請使用以下指令,檢查是否已對行事曆服務啟用使用者:
csuser check
請使用 Delegated Administrator 或 Calendar Server 公用程式,從 LDAP 中刪除使用者。
請使用以下兩種方法之一,從 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 公用程式將其移除,如15.6 管理使用者行事曆中所述。
使用 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 項目和使用者的預設行事曆,請搭配 delete 指令使用 Calendar Server 公用程式 csuser。
例如,若要刪除使用者 jsmith 的 LDAP 項目和預設行事曆,請使用以下指令:
csuser delete jsmith
如果您要移除屬於此使用者的其他行事曆,您必須使用 cscal,如15.6 管理使用者行事曆中所述。
如果一個或多個使用者 ID 需要變更,請執行 csrename 公用程式。
此公用程式會執行以下步驟:
轉換 Calendar Server LDAP 屬性 (帶有 ics 前綴的屬性) 中的使用者 ID。LDAP 目錄會適當更新。
重新命名 Calendar Server 資料庫檔案的事件和工作中的使用者。將新資料庫寫入目標目錄,而不會修改現有資料庫檔案。
請注意,即使變更一個使用者 ID,也會導致整個資料庫被重寫。因此,執行此公用程式「代價昂貴」。
如需有關 csrename 公用程式的進一步資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
可公開寫入的行事曆是一種 Calendar Server 功能。您可以開啟或關閉這個功能。它依預設為啟用。以下工作顯示如何編輯配置檔案以變更設定。
當啟用這個功能時,便可在產生邀請時排定 (寫入) 行事曆。事件將自動增加至與會者的行事曆。
當停用這個功能時,只在產生邀請時,行事曆所有者才會得到電子郵件通知。事件將不會自動增加至與會者的行事曆。只允許所有者增加事件及工作至行事曆。
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar 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
本小節包含管理行事曆資源的概念資訊及說明。
在增加資源之後,您可以使用 Delegated Administrator 或 csresource 管理它們。
本小節包含以下主題:
本小節包含擷取資源 LDAP 資訊的說明。
您可以利用三個工具之一,從 LDAP 資源項目擷取資源特性:
在 Delegated Administrator 主控台中,按一下 [行事曆資源] 標籤。
使用 [搜尋結果] 下拉式方塊,選取以下選項之一:
[依資源 ID 搜尋行事曆資源]
[依行事曆資源名稱搜尋行事曆資源]
鍵入您要搜尋的值。
按一下 [搜尋]。
使用 commadmin resource search 指令,擷取資源的 LDAP 資訊。
例如,若要搜尋 sesta.com 網域中的資源 CF101,請使用以下指令:
commadmin resource search -D serviceadmin -w serviceadmin -n sesta.com \s -d sesta.com -u CF101
您可以使用 csresource 公用程式,擷取一個資源或所有資訊的 LDAP 項目資訊。
移至 sbin 目錄。
使用 csresource list 指令,列出一個或所有資源。
例如,列出有關所有資源的全部資訊:
./csresource -v list
或者,列出所有有關特定資源 (CF101) 的資訊:
./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
利用D.3 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 不會導致行事曆移至新的後端主機。如需有關如何將行事曆從一個後端主機移至另一個後端主機的說明,請參閱15.6 管理使用者行事曆。
本章包含一些主題,說明如何使用 Calendar Server 指令行公用程式來建立和管理行事曆。
本章包含以下主題:
Delegated Administrator 不會建立或管理行事曆。您必須使用附錄 DCalendar Server 指令行公用程式參照中所述的 Calendar Server 公用程式。
建立行事曆之前,您必須瞭解以下資訊:
行事曆有三種類型:使用者行事曆、資源行事曆和群組行事曆。
使用者行事曆用於排程人的活動。資源行事曆用於排程無生命物件 (例如會議室或影像設備) 的使用。群組行事曆用於排程一群使用者的活動。
所有類型的行事曆均由唯一行事曆識別碼 (calid) 來識別。
使用 cscal 建立使用者行事曆。(或者,您可以允許登入時自動佈建。請參閱15.3 自動建立行事曆)。
使用 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 中指定的值指定網域。如果使用者不在預設網域中,則必須指定網域部分。
如需多個網域環境的更多資訊,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境和第 13 章, 管理 Calendar Server 網域。
特定使用者的唯一的可選擇行事曆名稱。雖然所有者僅有一個預設行事曆,但是可能有用於不同用途的其他行事曆。每個非預設行事曆均由其名稱識別。例如,如果使用者 John Doe 具有 uid jdoe,則他的預設行事曆可能為 jdoe@sesta.com。他用於追蹤自己所訓練 Little League 隊的棒球比賽的輔助行事曆可能由以下 calid 識別:jdoe@sesta.com:baseball。
本小節說明建立行事曆 ID (calid) 的規則。
建立 calid 時,請記住以下規則:
行事曆 ID 需要大小寫相符。例如,JSMITH 與 jsmith 不同。(這點與電子郵件位址不同,電子郵件位址不區分大小寫。例如,jsmith@sesta.com 相當於 JSMITH@SESTA.COM。)
行事曆 ID 不能包含空格,並限於以下字元:
如果您在擁有網域之前已建立 calid,而您現在想要將它們轉換成特定於網域的 calid,則可使用公用程式 csvdmig,將網域部分加入您現有的 calid。請參閱3.6 csvdmig,以獲得有關如何使用此公用程式的說明。
若未將網域名稱加入現有的 calid,系統會假設它們屬於預設網域。
本小節包含一些概念資訊和指示,說明當使用者第一次登入時,如何使用 Calendar Server 功能來自動建立行事曆。
預設會啟用自動建立行事曆。啟用後,系統會在兩種情況下自動建立行事曆:
當使用者第一次登入時,會更新使用者的 LDAP 項目來增加行事曆服務,並會建立預設的行事曆。該使用者項目必須已存在於 LDAP 目錄中。若不存在,則會傳回錯誤。
適當設定後,如果是首次邀請使用者、群組或資源加入事件,但不存在現有的預設行事曆,則會建立預設行事曆。
如需在這種情況下實作自動建立行事曆的必要配置資訊,請參閱配置群組的 Calendar Server。
本小節包含以下主題:
Calendar Server 會從使用者 ID 和網域名稱中,為新的預設行事曆建立行事曆 ID (calid)。
例如,John Smith 的使用者 ID 是 jsmith,其 LDAP 項目位於 sesta.com 網域。當他首次登入 Calendar Server 時,系統會自動建立預設行事曆並以 jsmith@sesta.com 做為 calid 。John Smith 建立的每個後續行事曆所具有的 calid 皆是在行事曆名稱之前包含 jsmith@sesta.com:。例如,如果 John Smith 稍後建立名為 meetings 的新行事曆,則新行事曆的 calid 為 jsmith@sesta.com:meetings。
如果事件與會者清單中列出了不含預設行事曆的使用者、群組或資源,則系統會在事件所有者網域之 LDAP 中查詢 uid 並做為事件所有者。若未將任何網域指定給所有者,則會為其指定預設網域。系統會將網域附加到 uid 以建構 calid。
若系統在事件所有者的網域中找不到 uid,它會搜尋允許事件所有者進行搜尋的其他任何網域。如需更多資訊,請參閱11.2 Calendar Server 6.3 系統中的交叉網域搜尋。
預設會啟用行事曆自動建立。但是,如果您在停用該功能後需要再次啟用它,請執行以下步驟:
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 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
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 /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 使用存取控制清單 (Access Control List, ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 (工作)) 的存取控制。
本小節包含以下主題:
下表說明 ics.conf 檔案中供 Calendar Server 用於存取控制的配置參數。
表 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 會將私人事件和工作以及只有時間與日期的事件和工作視為公開事件和工作。
下表說明 Calendar Server 指令行公用程式,這些公用程式可讓您設定或修改用於存取控制的 ACL。
表 15–2 存取控制的指令行公用程式
公用程式 |
說明 |
---|---|
使用 create 和 modify 指令與 -a 選項來設定特定使用者或資源行事曆的 ACL。 |
|
使用 csresource 公用程式與 -a 選項來設定資源行事曆的 ACL。 |
|
csuser |
對於 Schema 2,請使用 Delegated Administrator 主控台或 Delegated Administrator 公用程式 commadmin 來變更建立使用者行事曆時所使用的預設 ACL。 對於 Schema 1,請使用 csuser 公用程式與 -a 選項來變更使用者建立行事曆時所使用的預設 ACL。 |
若要在 Delegated Administrator 主控台中設定存取權限,請從 [組織特性] 頁面中 (也可從 [建立新組織] 精靈中) 按一下 [進階權限] 按鈕,以查看可從主控台管理的存取權限清單。
本小節包含如何建立行事曆的概念資訊和指示。
本小節包含以下主題:
本小節包含下列主題和範例:
以下範例會建立一個與上述範例類似的行事曆,但還會為群組排程設定特定的存取控制設定:
cscal -n Hobbies -o jsmith -a "@@o^a^sfr^g" create Personal
字串 -a "@@o^a^sfr^g" 授予其他所有者對該行事曆之元件和行事曆特性的排程、空閒/忙碌以及讀取等存取權限,以進行群組排程。
若要建立新行事曆,請使用 cscal 公用程式及 create 指令。使用者或資源項目必須已存在於 LDAP 目錄中。請參閱第 14 章, 管理使用者、群組和資源,以取得有關將使用者和資源加入 LDAP 目錄的資訊。
如果您的網站使用的是 LDAP 行事曆查找資料庫 (Calendar Lookup Database, CLD) 外掛程式,您必須在同一後端伺服器上為特定使用者或資源建立所有的行事曆,如使用者或資源項目中的 icsDWPHost LDAP 屬性所指示。如果您嘗試在其他後端伺服器上建立行事曆,cscal 公用程式將傳回錯誤。如需有關 LDAP CLD 外掛程式的資訊,請參閱第 5 章, 在 Calendar Server 版本 6.3 中,將行事曆資料庫配置為分布在多台機器上。
若要建立新行事曆,至少必須執行以下指令:
cscal -o uid create calid
例如,若使用者 John Smith 具有唯一 ID 和行事曆 ID jsmith,則指令類似:
cscal -o jsmith create jsmith
該指令具有下列部分:
公用程式的名稱。
此行事曆的主要所有者的唯一 ID (uid)。
用於建立新行事曆的指令。
要指定給此行事曆的行事曆 ID。
如需 cscal 公用程式的更多資訊,另請參閱本手冊D.5 cscal。
預設的存取控制設定由 ics.conf 檔案中的 calstore.calendar.default.acl 定義。
您可以為任何使用者建立多個行事曆。不過,它們一律被識別為預設行事曆的子行事曆。新行事曆完全合格的名稱在冒號分隔符的左側有預設行事曆的名稱,在右邊則有新行事曆的名稱。
以下範例示範如何為使用者 John Smith 建立另一個 (非預設) 行事曆,並使新行事曆名稱為 Personal:
cscal -o jsmith@sesta.com create Personal
指令部分如下所示:
公用程式的名稱。
此行事曆的主要所有者的唯一 ID (uid)。
用於建立新行事曆的指令。
要指定給此行事曆的行事曆 ID (calid) 的第二部分。
合格的行事曆 ID 為 jsmith@sesta.com:Personal。
這個範例顯示如何將個別的可檢視名稱 "Hobbies" 指定給上一個範例所建立的 Personal 非預設行事曆。
cscal -o jsmith@sesta.com -n Hobbies create Personal
jsmith@sesta.com 指定主要所有者的使用者 ID。
Hobbies 指定行事曆的可檢視名稱。
John Smith 的新附加行事曆的名稱。
整個 calid 成為:jsmith@sesta.com: Personal。
以下範例會建立一個與上述範例類似的新行事曆 Personal,但該行事曆還會與名為 sports 的種類相關聯,該範例還啟用雙預定,並且指定 Ron Jones 為另一位所有者:
cscal -n Hobbies -o jsmith - g sports -k yes -y rjones create Personal
該指令具有下列部分:
公用程式的名稱。
此行事曆的主要所有者的唯一 ID (uid)。
這個選項會將行事曆 Personal 與名為 sports 的類別相關聯。
值 rjones@sestas.com 指定行事曆的另一個所有者。
這個選項會啟用或停用一個時槽中事件的雙預定。
值 yes 啟用雙預定。值 no 停用雙預定。
用於建立新行事曆的指令。
要指定給此行事曆的行事曆 ID。
資源行事曆與可排程的事項相關聯例如會議室、筆記型電腦、高射投影機和其他設備。資源行事曆需要存取控制清單。
如表 15–3 所示,ics.conf 檔案中有兩個配置參數適用於資源行事曆:
預設存取控制清單。
允許或不允許雙預定的參數。
若要變更這些參數 (如表表 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 選項。 |
resource.invite.autoprovision |
預設為 "yes"。 |
resource.invite.autoaccept |
預設為 "yes"。 |
如果 ics.conf 參數 resource.invite.autoprovision 的值為 "yes",則會在第一次邀請時建立資源行事曆。換言之,如果此資源還沒有預設行事曆,則第一次在邀請中排程它時,將建立資源行事曆。
若要建立資源,請使用下列方法之一:
使用 csresource create
此公用程式可同時建立資源的 LDAP 項目和預設行事曆。
如果該資源的 LDAP 項目已存在,則 csresource 僅建立行事曆。它不會建立重複的 LDAP 項目。
例如,若要建立資源 LDAP 項目,並建立行事曆 ID 為 aud100、可檢視名稱為 Auditorium 且具有預設設定的行事曆,請使用以下指令:
csresource -m aud100@siroe.com -c aud100 create Auditorium
使用兩個指令的組合:
使用 Delegated Administrator 公用程式指令 commadmin resource create 建立 LDAP 項目。
使用 Calendar Server 公用程式指令 csresource create 建立預設行事曆。
若要使用主控台建立 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@sesta.com 選項指定為另一位所有者:
csresource -m aud100@siroe.com -c aud100 -k yes -o bkamdar -y jsmith@sesta.com create Auditorium
若要控制誰可以排程特定資源,請考量對該資源行事曆擁有寫入權的使用者加以限制。例如,您可能只想允許特定的使用者排程會議室或預訂設備。
如果未指定資源行事曆的所有者,將使用 ics.conf 檔案中 service.siteadmin.userid 參數的值。
本小節說明如何使用 Calendar Server 公用程式 D.5 cscal 管理使用者行事曆。
本小節包含以下管理工作:
若要顯示所有行事曆、某位使用者擁有的所有行事曆,或特定行事曆的特性,請使用 cscal 公用程式的 list 指令。
以下範例示範使用 cscal 執行的三個不同工作。
列出行事曆資料庫的所有行事曆:
cscal list
列出 jsmith 擁有的所有行事曆:
cscal - o jsmith list
列出行事曆 ID 為 jsmith:meetings 的行事曆的所有特性:
cscal -v list jsmith:meetings
若要從 Calendar Server 中刪除一個或多個行事曆,請使用 cscal 公用程式的 delete 指令。此公用程式會刪除行事曆,但不會從目錄伺服器中刪除使用者。
以下兩個範例示範使用 cscal delete 可完成的不同工作:
刪除行事曆 ID 為 jsmith@sesta.com:meetings 的特定行事曆:
cscal delete jsmith@sesta.com:meetings
刪除其主要所有者為 smith@sesta.com 的所有行事曆:
cscal -o jsmith@sesta.com delete
delete 指令會從行事曆資料庫中移除所有行事曆資訊,並且無法還原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料。
使用 Calendar Server 公用程式指令 csuser delete 或 Delegated Administrator 主控台或公用程式刪除一個或多個使用者後,該使用者所擁有的行事曆可能仍在資料庫中。
有兩種方法可移除使用者的行事曆。使用何種方法取決於刪除使用者時所使用的工具︰
csuser 公用程式可移除 LDAP 目錄中的使用者及其預設行事曆,但不移除該使用者可能擁有的其他任何行事曆。如需如何使用 cscal 來移除這些行事曆的說明,請參閱在 Calendar Server 版本 6.3 中移除以 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。
若要允許使用者存取其行事曆,必須先使用 cscal enable 指令啟用行事曆。
下列範例示範如何啟用行事曆:
使用預設的配置設定來啟用行事曆 jsmith@sesta.com:meetings:
cscal enable jsmith@sesta.com:meetings
啟用行事曆 jsmith@sesta.com:meetings 但不允許雙預定:
cscal -k no enable jsmith@sesta.com:meetings
若要防止使用者存取行事曆,請使用 cscal 公用程式的 disable 指令。disable 指令可防止使用者存取行事曆,但不會從行事曆資料庫中移除資訊。
例如,若要防止使用者存取 jsmith@sesta.com:meetings,請使用下列指令:
cscal disable jsmith@sesta.com:meetings
若要修改行事曆的特性,請使用 cscal 公用程式的 modify 指令。
例如,變更 AllAdmins 的群組排程存取控制設定,並將 RJones@sesta.com 指定為另一位所有者:
cscal -a "@@o^c^wd^g" -y RJones@sesta.com modify AllAdmins
以下說明上一個範例所使用的兩個指令變數:
-a "@@o^c^wd^g" 授予所有者對 AllAdmins 的元件 (事件和工作) 的寫入和刪除存取權限。
-y RJones@sesta.com 指定另一位所有者的使用者 ID。
若要從行事曆移除特性值,請使用 cscal modify 指令,並使用兩個雙引號 ("") 指定選項值。
以下三個範例顯示如何移除不同的特性:
從 jsmith@sesta.com:meetings 移除說明:
cscal -d "" modify jsmith@sesta.com:meetings
從 jsmith@sesta.com:meetings 行事曆移除所有種類:
cscal -g "" modify jsmith@sesta.com:meetings
從 jsmith@sesta.com:meetings 移除「其他所有者」:
cscal -y "" modify jsmith@sesta.com:meetings
若在 Communications Express 使用者介面用戶端看不到使用者的預設行事曆,但該行事曆仍存在於資料庫中,則您可以復原行事曆,並更新使用者的 LDAP 項目的兩個屬性以使行事曆再次可見。
若要回復行事曆,請確定使用者的 LDAP 項目中的下列屬性值為使用者的完全合格 calid:
icsCalendar
icsSubscribed
對於 Schema 2,請使用以下方法之一更新屬性:
使用 Directory Server 公用程式 ldapmodify。
使用 Calendar Server 公用程式指令 csuser reset。
使用 Delegated Administrator 公用程式指令 commadmin user modify。
使用 Delegated Administrator 主控台,透過編輯 [使用者特性] 頁面增加預設行事曆名稱。
對於 Schema 1,請使用 csattribute add 指令更新屬性。
若要將使用者行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:
在原始伺服器上,使用D.19 csuser公用程式停用行事曆使用者。例如,停用使用者 ID 和 calid 為 bkamdar 的使用者:
csuser disable bkamdar
在原始伺服器上,使用D.10 csexport公用程式將使用者的每個行事曆從行事曆資料庫匯出至檔案。例如:
csexport -c bkamdar calendar bkamdar.ics
將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。
在新伺服器上,使用D.11 csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:
csimport -c bkamdar calendar bkamdar.ics
在 LDAP 目錄伺服器上,使用D.3 csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com:
csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar |
在新伺服器上,使用使用者行事曆的D.19 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
本小節說明如何修改資源行事曆。您必須使用D.5 cscal公用程式指令,因為 csresource 公用程式沒有 modify 指令。
例如,下列指令可同時執行兩個工作:
將所有者 uid 設定為 tchang。
指定 uid 為 mwong 的另一個所有者。
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 會刪除行事曆並顯示訊息指明行事曆已被刪除。
若要將使用者行事曆或資源行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:
在原始伺服器上,使用D.15 csresource公用程式停用行事曆資源。例如,停用使用一般名稱 Auditorium 的資源:
csresource disable Auditorium
在原始伺服器上,使用D.10 csexport公用程式將每個資源行事曆從行事曆資料庫匯出至檔案。例如:
csexport -c aud100 calendar aud100.ics
將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。
在新伺服器上,使用D.11 csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:
csimport -c bkamdar calendar bkamdar.ics
在 LDAP 目錄伺服器上,使用D.3 csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com:
csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar
在新伺服器上,使用D.15 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/uwc/?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@sesta.com 的行事曆:
csimport -c jsmithcal@sesta.com calendar jsmith.ics
從以 XML (text/xml MIME) 格式儲存的名為 jsmith.xml 的檔案將資料匯入行事曆 jsmithcal@sesta.com:
csimport -c jsmithcal@sesta.com calendar jsmith.xml
若要將行事曆資料匯出至檔案,請使用 csexport。您為輸出檔案指定的檔案副檔名 (.ics 或 .xml) 可決定使用何種格式。
下列範例顯示如何使用匯出公用程式:
以 iCalendar (text/calendar MIME) 格式將行事曆 ID (calid) 為 jsmithcal@sesta.com 的行事曆匯出至名為 jsmith.ics 的檔案:
csexport - c jsmithcal@sesta.com calendar jsmith.ics
以 XML (text/xml MIME) 格式將行事曆 jsmithcal@sesta.com 匯出至名為 jsmith.xml 的檔案:
csexport -c jsmithcal@sesta.com calendar jsmith.xml
Calendar Server 將許多資料庫檔案保存在多個目錄中。必須透過實作第 9 章, 配置自動備份中所述的自動備份程序,或透過實作您自己的備份系統來保護資料庫檔案。您可以使用 csdb 公用程式管理資料庫檔案。
本章說明如何使用 csdb 公程式管理 Calendar Server 資料庫,其中包括以下小節:
若要管理資料庫檔案,請使用 Calendar Server 公用程式 csdb。本小節包含以下主題:
行事曆資料庫公用程式 csdb 將資料庫檔案視為三種邏輯資料庫 (群組):
caldb 資料庫由資料庫目錄中的所有 .db 檔案和 _db.* 檔案組成。以下是行事曆資料庫檔案 (以及 cld_cache 與 ldap_cache 子目錄) 的預設位置:
/var/opt/SUNWics5/csdb
如果願意,您可以在執行 Calendar Server 配置程式 (csconfigurator.sh) 時指定其他目錄。如需有關配置程式的資訊,請參閱第 2 章, Calendar Server 6.3 軟體的初始執行階段配置程式 (csconfigurator.sh)
下表說明各種行事曆資料庫 (caldb) 檔案:
表 16–1 Calendar Server 資料庫檔案
檔案 |
說明 |
---|---|
ics50calprops.db |
所有行事曆的行事曆特性。包含行事曆 ID (calid)、行事曆名稱、存取控制清單 (Access Control List, 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/ 與 /opt/SUNWics5/cal/lib/http/session/
統計資料庫由 counter 目錄中的所有檔案組成:
/opt/SUNWics5/cal/lib/counter/
行事曆資料庫群組。
階段作業資料庫群組。
統計資料庫群組。
如果未包含 -t 選項,csdb 將對所有三個資料庫進行操作。check 與 rebuild 兩個指令只會對行事曆資料庫 caldb 進行操作。
本小節說明如何使用D.8 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 指令不檢查警示或群組排程引擎 (Group Scheduling Engine, 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) 資料庫。
若要重建行事曆資料庫而不重建 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。
如果您已在所在站點實作群組排程,則重建應該包括 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 之後,請將重建的資料庫 (.db) 檔案從 rebuild_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.3 之後無法正常工作。在舊版 Calendar Server 軟體中,這些工具使用靜態程式庫進行編譯。現在則是使用動態程式庫進行編譯。
若要適應此變更,請修改自訂程序檔以使用動態連結程式庫,方法如下:將全域變數 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 格式 (text/calendar MIME) 將行事曆 jsmithcal@sesta.com 備份至 backupdir 目錄中的 jsmith.ics 檔案:
csbackup -c jsmithcal@sesta.com calendar backupdir/jsmith.ics
例如,以 XML 格式 (text/XML) 將行事曆 jsmithcal@sesta.com 備份至 backupdir 目錄中的 jsmith.xml 檔案:
csbackup -c jsmithcal@sesta.com calendar backupdir/jsmith.xml
以資料庫所有者 (icsuser) 的身份登入。
若要以 iCalendar 或 XML 格式將使用者的預設行事曆備份至文字檔,請使用 csbackup 公用程式的 defcal 指令。您為輸出檔案指定的檔案副檔名 (.ics 或 .xml) 可決定使用何種格式。
例如,以 iCalendar (text/calendar MIME) 格式將使用者 jsmith@sesta.com 的預設行事曆備份至備份目錄中的 jsmith.ics 檔案:
csbackup -a jsmith@sesta.com defcal backupdir/jsmith.ics
或者,以 XML (text/xml MIME) 格式將使用者 jsmith@sesta.com 的預設行事曆備份至備份目錄中的 jsmith.xml 檔案:
csbackup -a jsmith@sesta.com 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@sesta.com:
csrestore -c jsmithcal@sesta.com calendar backupdir
以資料庫所有者 (icsuser) 的身份登入。
若要復原使用 csbackup 公用程式儲存至備份檔案的特定行事曆,請使用 csrestore 公用程式的 calendar 指令與 -c 選項。
備份檔案的檔案副檔名 (.ics 或 .xml) 指示儲存行事曆時使用的格式。
例如,復原使用 iCalendar (text/calendar MIME) 格式儲存至 backupdir 目錄的 jsmith.ics 檔案中的行事曆 jsmithcal@sesta.com:
csrestore -c jsmithcal@sesta.com calendar backupdir/jsmith.ics
或者,復原使用 XML (text/calendar MIME) 格式儲存至 bcakupdir 目錄的 jsmith.xml 檔案中的行事曆 jsmithcal@sesta.com:
csrestore -c jsmithcal@sesta.com calendar backupdir/jsmith.xml
以資料庫所有者 (icsuser) 的身份登入。
若要復原使用 csbackup 公用程式儲存至備份檔案的預設行事曆,請使用 csrestore 公用程式的 defcal 指令。
備份檔案的檔案副檔名 (.ics 或 .xml) 指示儲存行事曆時使用的格式。
例如,復原使用 iCalendar (text/calendar MIME) 格式儲存至 jsmith.ics 檔案 (位於備份目錄 backupdir ) 中的使用者 jsmith@sesta.com 之預設行事曆:
csrestore -a jsmith@sesta.com defcal backupdir/jsmith.ics
復原使用 XML (text/xml MIME) 格式儲存至 jsmith.xml 檔案 (位於備份目錄 backupdir) 中的 jsmith 預設行事曆之預設行事曆
csrestore -a jsmith@sesta.com 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) 與資料的 Calendar Server 副本做比較,以判斷刪除了哪些元件。這一限制直接影響到使用 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_lastmod WCAP 指令。fetch_deletedcomponents 指令應與 fetchcomponents_by_lastmod 指令配合使用。
如需有關 WCAP 指令的更多資訊,請參閱 「Sun Java System Calendar Server 6.3 WCAP Developer’s Guide」。
本小節描述如何清除刪除記錄資料庫。Calendar Server 提供兩種清除刪除記錄資料庫的類型:自動及手動。
本小節包含以下主題:
清除刪除記錄資料庫之前,您需要深知您正在服務的一般使用者。如果您的一般使用者正在使用 Communications Express,則預設參數設定應該足夠了。不過,如果他們正在使用儲存事件及工作本機副本的用戶端使用者介面,例如 Connector for Microsoft Outlook 或 Sync Tool,則您必須調整自動清除配置參數的設定,以符合他們的需求。通常,他們需要刪除記錄包含長達 30 天或更長日期的項目。這將導致刪除記錄的大小顯著增長。如果未能做出這種調整,會導致資料庫發生問題。清除間隔也應該進行調整,以符合使用者的需求。例如,在您的刪除記錄資料庫將資料保留 30 天才允許清除的情況下,每分鐘執行清除可能沒有意義。由於事情每天都會變舊,所以每天清除是合理的。
手動執行 cspurge 時,也會發生類似的問題。如果從刪除記錄移除了太多,則它會導致 Connector for Microsoft Outlook 及 Sync Tool 的使用者與伺服器資料庫失去同步。
若等待很久才清除刪除記錄資料庫,會導致檔案變得非常的大。然後,當發生大量清除時,日常作業事件記錄會大量增加,以反映這樣的事實:每一個清除的項目都是記錄在那些記錄中並歸檔到歸檔備份及緊急備份的作業事件。作業事件記錄中的這些大量異常會讓系統看起來像有問題,並因為不瞭解發生什麼情況而浪費時間。
如果願意,您可以讓 Calendar Server 以指定的間隔自動清除刪除記錄資料庫中的項目。自動清除依預設為停用。
以下 ics.conf 參數控制自動清除功能。
表 18–1 用於自動清除刪除記錄資料庫的配置參數
參數 |
說明 |
---|---|
啟用 ("yes") 或停用 ("no") 自動清除刪除記錄資料庫 (ics50deletelog.db) 項目。 預設為 "no"。 |
|
指定自動清除刪除記錄資料庫 (ics50deletelog.db) 中項目的間隔時間 (以秒為單位)。 預設為 60 秒。 |
|
指定一個時間 (以秒為單位),清除刪除記錄資料庫 (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 以使新值生效。
您可以使用 cspurge 公用程式,選擇手動清除刪除記錄資料庫 (ics50deletelog.db) 中的項目。
這個公用程式的用法如下:
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
如需更多資訊,請參閱D.13 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
本小節包含 Calendar Server 軟體所實作的時區的簡介。
timezones.ics 檔案包含 Calendar Server 支援的時區表示法。此檔案位於以下目錄中:
/etc/opt/SUNWics5/config/
啟動時,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.3 WCAP Developer’s Guide」。
以下範例顯示 America/Los_Angeles 時區在 timezones.ics 檔案中的表示法。
本小節包含如何管理時區的概念資訊及說明。
本小節包含以下主題:
本小節說明如何向 Calendar Server 增加新的時區,以便其在 Communications Express 使用者介面中可用。例如,您可能要為 America/Miami 增加新時區。
增加新時區最簡單的方法是複製並編輯以下步驟所說明的每個檔案中與要增加的時區類似的時區項目。例如,如果要為 America/Miami 增加時區,可複製並編輯每個檔案中用於 America/New_York 的時區項目。如果您的新時區包含日光節約時間 (DST),請嘗試尋找一個類似區塊來複製。
本小節說明如何修改現有時區。例如,您可能要變更時區名稱,如將「America/Phoenix」變更為「US/Arizona」。
修改以下檔案中您要變更之時區的時區區段:
/etc/optSUNWics5/config/timezones.ics
如果變更時區名稱,請將 TZID 項目變更為新名稱。
修改以下檔案中的 getDisplayNameofTZID 範本:
cal-svr-base/SUNWics5/cal/html/ language/i18n.xsl
其中: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
如需有關這些檔案中項目的資訊,請參閱19.2.1 增加新時區。
如果變更影響到供使用者優先使用的預設時區,請修改以下檔案中的「icsTimeZone」項目:
cal-svr-base/SUNWics5/cal/html/default_user_prefs.xml
只在使用 Calendar Express 使用者介面時,才需要步驟 2、3 及 4。
先停止 (如有必要) 再重新啟動 Calendar Server,以使時區變更生效。
Calendar Server 已與 Sun Java System Instant Messaging 6.0 (或更高版本) 整合,可為行事曆事件與工作提供自動快顯提醒通知。
本章包含如何配置快顯提醒通知的概念資訊及說明。
本章包含以下小節:
本小節包含瞭解快顯提醒通知如何在 Calendar Server 軟體運作所需的概念資訊。
本小節包含以下主題:
本小節說明必須配置什麼,才能使快顯提醒通知運作。
使用者可以接收行事曆上即將發生的事件和即將執行的工作的 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 快顯提醒通知。
本小節包含為 Calendar Server 軟體配置快顯提醒通知的說明。
本小節包含以下配置說明:
以下配置 Instant Messaging 以進行快顯所必需的高階工作清單可為您提供方便。若要配置 Instant Messaging,請參閱 Instant Messaging 文件,位於:
http://docs.sun.com/coll/1309.2
安裝新的套裝軟體 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 參數具有所示的值。如果不具有所示值,或您希望自訂值,請執行以下步驟:
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 /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:
本章包含調校 Calendar Server 效能的概念資訊及說明。
若要提昇 Calendar Server 的效能,請考量以下選項:
若要提昇 Calendar Server 存取 LDAP 目錄伺服器時的效能,請為以下屬性增加索引至 LDAP 配置檔案。
此屬性用於為行事曆使用者或資源搜尋預設行事曆。請指定存在 (pres)、平等 (eq) 及子字串 (sub) 索引類型。
此屬性用於搜尋由使用者所有的其他行事曆。請指定存在 (pres)、平等 (eq) 及子字串 (sub) 索引類型。另請參閱21.2 提昇 DWP 環境中的行事曆搜尋效能。
這些屬性指定使用者的主要和替代電子郵件位址。另請參閱14.1 建立行事曆使用者 LDAP 項目及14.5.4.3 利用 Calendar Server 公用程式增加行事曆服務。
如需有關增加目錄伺服器索引的資訊,請參閱 Directory Server 文件,位於:
http://docs.sun.com/coll/1316.1 及 http://docs.sun.com/coll/1419.1
當您處於 DWP 環境 (即行事曆資料庫分佈在多個後端伺服器上) 中時,搜尋行事曆資料庫中的行事曆可能會比較費時。先在 LDAP 項目中查找並直接找出行事曆常駐的 DWP 主機會較快。
本小節包含以下主題:
若要啟用行事曆搜尋以首先查看 LDAP 目錄,然後再查看行事曆資料庫,請執行以下步驟:
以具有配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至配置目錄 /etc/opt/SUNWics5/cal/config。
將 ics.conf 檔案中的 service.calendarsearch.ldap 參數設定為 "yes" (預設值),如下所示:
service.calendarsearch.ldap="yes"
重新啟動行事曆服務,如下所示﹕
start-cal
如果您要允許匿名存取公開行事曆,建議您停用行事曆搜尋查看 LDAP。實際上,Communications Express 要求參數值為 “no”。
若要確定是否可以透過建立索引提昇行事曆搜尋效能,請嘗試以下 LDAP 指令:
ldapsearch -b "base" "(&(icscalendarowned=*user*) (objectclass=icsCalendarUser))" |
其中 base 為 Calendar Server 的使用者和資源資料所在的目錄伺服器的 LDAP 基底 DN,user 為一般使用者可在搜尋對話方塊中輸入的值。
測試表明,如果包含 60,000 個項目,在沒有為 icsCalendarOwned 建立索引的情況下,上述搜尋大約需要 50 到 55 秒鐘。而建立索引後,上述搜尋僅需大約 1 到 2 秒鐘。
透過執行 comm_dssetup.pl 為適當的 LDAP 屬性建立索引,或至少為 icsCalendarOwned 建立索引。
comm_dssetup.pl 為此屬性和很多其他屬性建立索引,以用多種方法提昇效能。如果您尚未執行 comm_dssetup.pl 或執行了卻未執行建立索引,則可以再次執行該公用程式或使用 Directory Server 工具建立索引。
如需有關 comm_dssetup.pl 如何建立索引,請參閱「Sun Java System Communications Suite 5 Installation and Configuration Guide」中的「Attribute Indexes」。
如需有關增加目錄伺服器索引的資訊,請參閱 Directory Server 文件,位於:
http://docs.sun.com/coll/1316.1 及 http://docs.sun.com/coll/1419.1
依預設,Calendar Server 中停用萬用字元搜尋。也就是說,當您使用圖形化使用者介面搜尋行事曆時,或者當您在自訂介面發出 search_calprops.wcap 時,它將搜尋與使用 WCAP 指令傳送的搜尋字串精確相符的內容。
如果您已透過對 ics.conf 檔案中的以下行取消註釋 (透過移除開頭的驚嘆號「!」) 啟用萬用字元搜尋,則可能會對效能起負面影響。
!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"
若要測試萬用字元搜尋對效能的影響,請在行首插入驚嘆號 (「!」) 以再次為其做註釋。
系統必須先確定用於儲存使用者行事曆的後端機器,然後才能從行事曆資料庫中存取行事曆。為找到適當的後端機器,系統將搜尋使用者項目的 LDAP 目錄並挑選出 icsDWPHost 屬性。此搜尋很費時,並且每次存取行事曆資料時均必須執行此搜尋。每個使用者階段作業均會多次存取資料庫,因此要多次搜尋 LDAP。若要節省時間並增強效能,請透過編輯 ics.conf 檔案來啟用 CLD 快取記憶體,如下所示:
caldb.cld.cache.enable="yes"
LDAP 資料快取記憶體儲存使用者 ID 及其相關的 icsDWPHost 屬性。在搜尋使用者項目的 LDAP 之前,系統會檢查快取記憶體上是否有該使用者 ID。如果快取記憶體上有該使用者 ID,系統將從儲存的 icsDWPHost 屬性中挑選出後端主機名稱。如果快取記憶體中沒有該使用者 ID,系統將執行 LDAP 搜尋並將使用者 ID 與屬性複製到 CLD 快取記憶體中。以後,存取該使用者行事曆資料的速度將加快,因為系統現在可以在快取記憶體中找到該使用者 ID。
啟用 LDAP 資料快取記憶體後,您可以使用 ics.conf 參數對其進行調校。請調整下表中的一個或多個參數:
依預設,已啟用 LDAP 資料快取記憶體。您可以透過設定以下參數將其停用: local.ldap.cache.enable="no"
參數 |
說明/值 |
---|---|
local.ldap.cache .checkpointinterval |
檢查點執行緒在檢查點之間靜止的秒數。預設為 “60”。 在高活動 LDAP 時,您可能要縮短間隔以儘可能保持快取記憶體現狀。同時,請記住,越是經常更新快取記憶體,系統讀取您的輸入越頻繁。 |
local.ldap.cache. circularlogging |
指定處理完 LDAP 資料快取記憶體資料庫記錄檔後是否要將其移除。預設為 “yes”。 請勿變更此參數,除非您有自訂的清除常式可以移除舊的記錄檔。 |
local.ldap.cache. logfilesizemb |
指定檢查點檔案的最大大小 (百萬位元組)。預設為 "10" 百萬位元組。 如果您使用高活動 LDAP,此檔案可以在檢查點間隔結束之前填滿。根據實際情況,嘗試將值設定為一個與記錄實際大小接近的數字 |
local.ldap.cache. maxthreads |
指定 LDAP 資料快取記憶體資料庫執行緒的最大數目。預設為 “1000”。 在高活動 LDAP 時,您可能要增加執行緒的數目。這可能會增加 CPU 的利用率。僅當您的 LDAP 活動最少時降低檢查點數目。 |
local.ldap.cache. mempoolsizemb |
指定共用記憶體的百萬位元組數目。預設為 “4” 百萬位元組。 |
local.ldap.cache. entryttl |
指定 LDAP 資料快取記憶體項目的「有效時間」(TTL) (以秒為單位)。預設為 “3600” 秒 (1 小時)。 如果您的快取記憶體填滿的太快 (高活動),則可以縮短 TTL 時間。但是,這可能會增加 LDAP 資料庫存取的整體數目,並因此整體減緩系統。 |
local.ldap.cache. cleanup.interval |
指定各快取記憶體資料庫清除作業之間的間隔時間 (以秒為單位)。預設為 “1800” 秒 (30 分鐘)。 系統移除過期的項目。時間間隔不必與項目 TTL 時間相同。但是使之同步化將會更加有效。 |
local.ldap.cache. stat.enable |
指定是否在記錄檔中記錄對 LDAP 資料快取記憶體的存取情況並列印統計資料。預設為 “no”。 若要增強效能,請僅在除錯模式中使用此設定。 |
local.ldap.cache. stat.interval |
指定各統計資料報告寫入記錄檔的間隔時間 (以秒為單位)。預設為 “1800” 秒 (30 分鐘)。 僅當 local.ldap.cache.stat.enable 啟用時才處於作用中。縮短間隔可以協助您準確地確定問題所在。增加間隔將會減緩系統載入。 |
Communications Express 預期停用資料快取記憶體。
有一對控制項目在快取記憶體中的停留時間以及快取記憶體的大小的參數。
若要調校快取記憶體,請如下表所示編輯一個或多個參數。
表 21–2 用於配置 LDAP SDK 快取記憶體的 ics.conf 參數
參數 |
說明和預設值 |
---|---|
目前未實作。您必須手動移除 ldap_cache 目錄的內容,然後重新啟動 Calendar Server。 如果 service.ldapmemcache 為 "yes",則此參數用於設定快取項目的最大秒數。如果為 “0”,則對快取項目的時間沒有限制。預設為 "30"。 |
|
如果 service.ldapmemcache 為 "yes",則此參數用於設定快取記憶體將佔用的記憶體空間的最大數目 (以位元組為單位)。如果為 “0”,則快取記憶體無大小限制。預設為 “131072”。 |
您必須保持磁碟上備份的大小與所需之間的平衡以免超過可用磁碟空間。若要協助管理歸檔檔案備份與緊急備份佔用的磁碟空間,可以變更各種 ics.conf 參數的設定,這些參數決定您一次可保留的備份副本數量及觸發清除舊的副本的磁碟空間臨界值的位置。
有三種可以針對每個備份類型、歸檔檔案和緊急備份調整的參數類型
mindays – 備份可以保持在磁碟上的最少天數。
maxdays – 備份可以保持在磁碟上的最多天數。
threshold – 使用的磁碟空間百分比。它被作為觸發點使用。
Calendar Server 在不超過磁碟臨界值的條件下在最多的可能天數內保持備份。因此,如果目前的備份使磁碟的使用率超過臨界值,系統將清除最舊的備份副本,並查看磁碟的使用率是否低於臨界值。系統會繼續清除舊的備份副本,直到符合以下任一情況:移除其他備份副本將導致磁碟上的備份數目小於最小備份副本數目,或磁碟空間的使用率低於臨界值。
因此,您可以使用臨界值參數管理備份使用的磁碟空間。相反,您也可以透過調整允許的磁碟空間和副本的大小來管理保持在磁碟上的備份數目。
下表列出了控制磁碟空間和保留在磁碟上的備份數目的 ics.conf 參數。
表 21–3 用於設定保持在磁碟上的備份的數目的 ics.conf 參數
ics.conf 參數 |
預設設定 |
說明 |
---|---|---|
caldb.berkeleydb.hotbackup.mindays |
3 |
緊急備份可保持在磁碟上的最少天數。 |
caldb.berkeleydb.hotbackup.maxdays |
6 |
緊急備份可保持在磁碟上的最多天數。 |
caldb.berkeleydb.hotbackup.threshold |
70 |
用於緊急備份的磁碟空間百分比。當超過臨界值時,觸發清除舊的副本。 |
caldb.berkeleydb.archive.mindays |
3 |
歸檔備份可保持在磁碟上的最少天數。 |
caldb.berkeleydb.archive.maxdays |
6 |
歸檔備份可保持在磁碟上的最多天數。 |
caldb.berkeleydb.archive.threshold |
70 |
用於歸檔檔案備份的磁碟空間百分比。當超過臨界值時,觸發清除舊的副本。 |
依預設,Calendar Server 中會啟用負載平衡功能。Calendar Server 會使用以下演算法來完成負載平衡功能:程序會每 n 個連線接受一個連線,其中 n 是程序數目。
若要停用負載平衡功能,請將 service.http.loadbalancing 參數增加至 ics.conf 檔案,並將其設定為 "no"。然後重新啟動 Calendar Server,使變更生效。
如果某台伺服器有多個 CPU,依預設 Calendar Server 會在這些 CPU 上分布 HTTP 服務 (cshttpd 程序) 和分散式資料庫服務 (csdwpd 程序)。
如果您想要控制為每個服務執行的程序數目,您可以編輯 service.http.numprocesses 和 service.dwp.numprocesses 參數。依預設,在安裝期間,這些參數設定為伺服器 CPU 的數目,但您可以重設這些值。例如,如果伺服器具有 8 個 CPU,但您希望 cshttpd 和 csdwpd 程序僅在 4 個 CPU 上執行,則將參數設定為:
service.http.numprocesses="4" service.dwp.numprocesses="4"
本小節包含使用各種 ics.conf 參數的逾時值來調校 Calendar Server 效能的概念資訊及說明。
存在以下類型的逾時值﹕
csadmind 的逾時值
如需有關編輯 ics.conf 參數的資訊,請參閱E.1 編輯 ics.conf 配置檔案。
下表說明 ics.conf 檔案中由管理 (csadmin) 服務使用的 Calendar Server 逾時參數。
表 21–4 管理服務 (csadmin) 的 HTTP 逾時值
參數 |
說明 |
---|---|
service.admin.idletimeout |
指定 csadmind 服務在使閒置的 HTTP 連線逾時之前等待的秒數。 預設為 120 秒 (2 分鐘)。 |
service.admin.resourcetimeout |
指定 csadmind 服務在使資源行事曆的 HTTP 階段作業逾時之前等待的秒數。 預設為 900 秒 (15 分鐘)。 |
service.admin.sessiontimeout |
指定 csadmind 服務在使 HTTP 階段作業逾時之前等待的秒數。 預設為 1800 秒 (30 分鐘)。 |
下表說明 ics.conf 檔案中套用於一般使用者的 Calendar Server HTTP 逾時參數。
表 21–5 ics.conf 中用於一般使用者的 HTTP 逾時值 (cshttpd 服務)
參數 |
說明 |
---|---|
service.http.idletimeout |
指定 cshttpd 服務在使閒置的 HTTP 連線逾時之前等待的秒數。 預設為 "120" 秒 (2 分鐘)。 |
service.http.resourcetimeout |
指定 cshttpd 服務在使資源行事曆的 HTTP 階段作業逾時之前等待的秒數。 預設為 "900" 秒 (15 分鐘)。 |
service.http.sessiontimeout |
指定 cshttpd 服務在使 HTTP 階段作業逾時之前等待的秒數。 預設為 "1800" 秒 (30 分鐘)。 |
以下 ics.conf 檔案參數指定在 Calendar Server 為內送工作掃描群組排程引擎 (Group Scheduling Engine, GSE) 佇列之前需要等待的時間 (以秒為單位):
gse.belowthresholdtimeout="3"
如果佇列中的工作多於所配置執行緒的最大數目,則最後一個執行緒將始終重新掃描工作佇列。因此,僅當工作數目小於所配置執行緒的最大數目時,此設定才能生效。
預設為 "3"。增大此數目會減少伺服器掃描佇列的頻率並提昇整體效能。但是,如果由於事件量的增加而使佇列變得過大,可以減少時間,以允許更快處理佇列。這可能會導致降低整體效能,但事件將會更快更新。
本章涵蓋如何設定記錄以及一些常見問題的解決方法。
本章包含以下主題:
本小節包含使用記錄及除錯對 Calendar Server 部署問題進行疑難排解的概念資訊及說明。
由於沒有一個可以將整個系統置於「除錯模式」的 ics.conf 參數,所以本小節說明一些獲得有用除錯資訊的方法:
確定關閉不需要的多餘記錄和監視,否則將對效能起負面影響。
使用下表中顯示的參數提昇記錄詳細度:
參數 |
說明和預設值 |
---|---|
logfile.loglevel |
設定為 DEBUG 以記錄所有層級,包括 CRITICAL、ALERT、ERROR、WARNING、NOTICE 和 INFORMATION。此設定可套用於所有記錄。 |
若要記錄對 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。
兩個讓除錯更容易的配置參數可以啟用對內送指令及 HTTP 存取的記錄。將其中一個參數或全部增加至 ics.conf 檔案,以啟動記錄:
service.http.commandlog = "yes" — cshttpd 程序會在記錄檔目錄中建立一個檔案 (http.commands)。此記錄包含伺服器收到的每一個 .shtml 或 .wcap 指令,包括每一個指令的所有參數。
service.http.commandlog.all = "yes" — cshttpd 程序會在記錄檔目錄中建立一個檔案 (http.access)。此記錄包含系統收到的每一個 HTTP 請求。
記錄檔可以非常快速地增大,並填滿可用的磁碟空間。小心監視它們以避免發生問題。選擇在系統的低活動期間啟用這些指令來執行。如果在尖峰時刻執行,效能將大幅度下降。當完成疑難排解時,務必停用這兩個指令。
使用 csstats list 指令顯示在 counter.conf 檔案中定義的計數器物件的統計資訊。
如需有關 csstats 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照。
本小節包含 LDAP 問題的疑難排解的概念資訊。
如果您是首次建立多個網域環境,則必須透過增加適當的網域、容器、使用者、群組和資源項目在 LDAP 中建立 DC 樹狀結構。如果使用 Calendar Server 公用程式 (例如 cscal) 時 DC 樹狀結構尚不存在,您可能會看到以下錯誤訊息:「Initialization failed .... exiting」。
確定您的 DC 樹狀結構在 DC 樹狀結構根目錄下至少包含一個 (預設) 網域。使用13.2 建立新的 Calendar Server 網域中的說明建立 DC 樹狀結構。
Calendar Server 提供了數個用於遷移行事曆資料庫和 LDAP 目錄的公用程式。
本小節包含以下主題:
通常,如果在使用遷移公用程式時遇到麻煩,您應該連絡技術支援。
在致電之前,請收集以下資訊:
有問題的資料庫的備份副本。
所有相關記錄的副本。
所有錯誤輸出訊息,包括記憶體。
各遷移公用程式及其文件位於以下清單中所指定的位置:
此公用程式隨附於 Delegated Administrator,是一個可獨立安裝元件。它可將您的 LDAP 目錄從 Schema 1 遷移至 Schema 2。如需有關此公用程式的資訊,請參閱「Sun Java Communications Suite 5 Schema Migration Guide」。
在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。
在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。
在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。
這個公用程式的文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式,其中包括疑難排解小節。
在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。
這個公用程式的文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式。使用這個公用程式為多個網域準備行事曆資料庫和 LDAP 目錄項目。
務必先執行 csmig,再執行 csvdmig。
此公用程式與 Calendar Server 一同安裝。文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式。使用此公用程式遷移 Calendar Server 2 資料庫,以與 Calendar Server 5 相容。
此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意,因為來源資料庫中缺乏一致性。與許多手冊相同,此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意。通常需要對原始碼檔案執行許多工作,此公用程式才可以執行。可以考量使用專業服務協助您規劃遷移。
本小節包括多種用於非資料庫問題的疑難排解方法。
本小節包括以下主題:
此外,在 SSL 章節中還包含 SSL 疑難排解小節:
7.2 Calendar Server 6.3 軟體 SSL 疑難排解
如果某個 cshttpd 接受太多的連線並佔用 100% 的 CPU 時間,您可能已停用負載平衡。若要重新啟用它,請將 ics.conf 參數 service.http.loadbalancing 的值變更為 "yes"。
如果發出 start-cal 時未能啟動所有的行事曆服務,則必須先停止啟動的服務,然後再重新啟動。例如,如果已啟動 enpd、csnotifyd 及 csadmind,但未啟動 cshttpd,則必須停止 enpd、csnotifyd 及 csadmind。
若要啟動行事曆服務,請:
以具有配置權限的管理員身份登入。
發出 stop-cal 指令。
如果 stop-cal 指令無法停止所有 Calendar Server 服務,則可能有一些子程序仍在執行。若要處理此情況,請參閱22.4.2 修正 stop-cal 問題。
一旦確定已停止所有 Calendar Server 程序,請使用 start-cal 指令啟動所有服務。例如:
cal-svr-base/SUNWics5/cal/sbin/start-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 未正確關閉,請執行以下步驟:
執行先前程序22.4.2 修正 stop-cal 問題中的步驟。
手動刪除 LDAP 資料快取記憶體資料庫目錄中的所有檔案。
這些剩餘檔案可能會毀壞資料庫。若要刪除這些檔案,請:
重新啟動 Calendar Server。
cal-svr-base/SUNWics5/cal/sbin/start-cal
如需有關如何配置 LDAP 資料快取的說明,請參閱4.8 配置 Calendar Server 版本 6.3 的 LDAP。如需有關 LDAP 資料快取記憶體的更多資訊,請參閱「Sun Java Communications Suite 5 Deployment Planning Guide」。
對後端伺服器執行 ping 作業以檢查它是否有回應。
如果沒有回應,請判斷失敗的原因。當再次正常運作時,請繼續進行本作業中的下一個步驟。
清除 CLD 快取記憶體。請參閱12.5 清除 Calendar Server 版本 6.3 中的 CLD 快取記憶體。
如果您在使用 CLD 快取記憶體選項並且已更新 ics.conf 參數的伺服器名稱,則應清除 CLD 快取記憶體以移除伺服器名稱。CLD 快取記憶體中的過期項目會妨礙前端伺服器建立與正確後端伺服器之間的連線,或會導致某個行事曆在被移動後,Calendar Server 無法找到該行事曆。
使用 stop-cal 指令停止伺服器。
使用 start-cal 重新啟動 Calendar Server。
如果您在使用 CLD 快取記憶體選項並且已將一個或多個行事曆移至其他後端伺服器上 (或者變更了後端伺服器的名稱),可能在新的伺服器上看不到行事曆。
如果發生這種情況,請執行以下步驟:
清除 CLD 快取記憶體。請參閱12.5 清除 Calendar Server 版本 6.3 中的 CLD 快取記憶體。
如果您將一個或多個行事曆移動至其他後端伺服器上,則 CLD 快取記憶體將會過期。若要更新快取記憶體,您需要將其清除以便重建。
如果失敗,請確認您已遵循正確程序來移動行事曆。這個資訊位於:
然後清除快取記憶體。
若嘗試在指定的後端機器上建立行事曆,並收到以下錯誤訊息:[無效的 DWP 主機伺服器],它表示以下兩件事之一。可能是您的伺服器配置錯誤,或已將行事曆所有者指定給其他後端伺服器。
本小節包含有關如何修正這兩個問題的資訊:
在 ics.conf 檔案中查看有問題的後端伺服器。
確認存在下列設定:
service.dwp.enable = "yes" caldb.cld.type = "directory" local.hostname = "back-end hostname"
查看使用者的 LDAP 項目並檢查是否存在 icsDWPHost 屬性。icsDWPHost 的值必須符合您正在其中嘗試建立行事曆的後端伺服器名稱。您無法在其他後端伺服器上建立這個使用者的行事曆。
本小節包含失敗的可能原因的建議。遵循建議的步驟並重試登入。
執行以下一或多個步驟,以修正這個錯誤:
驗證 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 檔案。
重新啟動 Directory Server。
如需有關如何使用 ldapmodify 和編輯 dse.ldif 檔案的資訊,請參閱 Directory Server 文件,位於:
http://docs.sun.com/coll/1316.1 及 http://docs.sun.com/coll/1419.1
本小節涵蓋各種包括 Calendar Server (Berkeley 資料庫) 資料庫的問題:
本小節包含以下主題:
您將要執行的許多疑難排解步驟要求已存取 Berkeley 資料庫公用程式。儘管 Calendar Server 隨附有這些公用程式的某個版本,但其不受支援。您可能希望直接從 Sleepycat Software (http://www.oracle.com/database/berkeley-db/index.html) 獲得更多資訊。
本小節包含以下主題:
設定並匯出 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 資料庫處於死結狀態,則必須重設資料庫。儘早偵測此情況是很重要的。
若要使系統能定期檢查資料庫以偵測死結狀態並通知管理員,請:
以擁有變更配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
移至 /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 記錄檔 (包括警示記錄),以發現任何可能指出資料庫損毀的錯誤訊息。
您應定期檢查記錄檔,瞭解是否存在 ALERT、CRITICAL、ERROR 以及 WARNING 層級的錯誤,一旦發現錯誤,應執行 Calendar Server 來檢查事件,以找出可能的問題。Calendar Server 正常作業期間會產生 NOTICE 和 INFORMATION 層級的記錄事件,這些事件可協助您監視伺服器狀態。
切勿移除資料庫目錄中的任何作業事件記錄檔。業事件記錄檔包含作業事件更新 (增加、修改或刪除),移除它們可能會損毀行事曆資料庫並且無法回復。
當您請求 Calendar Server 技術支援時,可能需要提供記錄檔,以協助解決問題。
使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprops]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。
check 指令不檢查警示或群組排程引擎 (Group Scheduling Engine, 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 指令。
(請參閱22.5.6 重建已損毀的行事曆資料庫。)
您的自動清除配置設定有可能未適當地說明一般使用者偏好的用戶端使用者介面。突然出現大量的大型作業事件記錄檔可能只是長時間延遲清除刪除記錄所導致。如果是有目的地進行這個延遲,以容納 Connector for Microsoft Outlook 或 Sync Tool 的使用者,則出現大型及大量的作業事件記錄檔是預期中的事。不需要採取進一步的動作。最終系統將恢復正常。不過,如果您的一般使用者是使用 Communications Express 用戶端,則將自動清除設定還原為它們的預設值應該可以修正問題。
本小節包括如何在回復模式中保持已損毀的資料庫可存取,並包含以下主題:
遇到資料庫損毀時,防止服務中斷的一個方法是將資料庫置於唯讀模式。此模式允許一般使用者讀取資料庫項目,但不允許對其進行增加、修改或刪除。如果一般使用者嘗試增加、修改或刪除任何行事曆資料,系統將提示錯誤訊息。此外,當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。
如果資料庫已毀壞到不可被讀取的程度,則必須將服務中斷足夠長的時間以復原備份。復原備份的最快方法是具有完好的緊急備份。請參閱22.5.8.1 復原之前。
以擁有變更配置權限的管理員身份登入。
透過發出 stop-cal 指令來停止 Calendar Server 服務。
在指令行移至 ics.conf 所在的目錄︰
cd /etc/opt/SUNWics5/config
指定行事曆的唯讀模式,方法是設定如下的參數:
caldb.berkeleydb.readonly=”yes”
發出 start-cal 指令重新啟動 Calendar Server。
cal-svr-base/SUNWics5/cal/sbin/start-cal
您必須重新啟動服務,以使 ics.conf 變更生效。
本小節包括一些常見資料庫故障以及一些建議的補救方法。本小節包含以下主題:
由於 csadmind 是同時處理群組排程引擎 (GSE) 和警示派送引擎的服務,因此這種情況可能是由 GSE 佇列或警示佇列的違例項目導致的。
補救方法:
如果 csadmind 未執行,請立即發出 stop-cal 指令。
將行事曆伺服器置於執行狀態可能會導致作業事件記錄累積,從而進一步損毀資料庫,並且可能要花更長的時間使作業事件記錄檔符合資料庫。
驗證是否已停止所有 Calendar Server 程序。
如需有關如何驗證是否已停止所有程序的說明,請參閱停止子程序。
再次嘗試重新啟動 csadmind,方法是發出 start-cal -csadmind 指令。
如果順利啟動,執行以下步驟確定兩個佇列正在運作:
使用 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”
使用22.5.8 復原自動備份副本中的說明復原至緊急備份副本。
配置並啟用 csstored 後,在幾分鐘內即成為最新的緊急備份變為可用。您應經常驗證緊急備份副本以確定其也未被毀壞。(執行 db_verify。)
如果其他所有方法均失敗,請執行傾印和重新載入程序以查看其是否能挽救資料庫。
22.5.7 使用傾印和載入程序來回復行事曆資料庫中說明了這個程序。
這種情況可能是由控制執行緒導致的,該執行緒鎖定了 Berkeley DB 資料庫頁面,並在退出時未釋放鎖定。若要確認問題,請在 cshttpd 程序上執行 pstack,並執行 csadmind。(pstack 是標準的 UNIX 公用程式,位於:/usr/bin/pstack)。該公用程式將顯示等待以獲得鎖定的執行緒。
若要修正此問題,請重新啟動 Calendar Server,如下所示:
資料庫迴圈通常是由資料庫檔案中的損毀導致的。由於是資料庫損毀,故無法復原。有數個選項:
復原至緊急備份。
如果損毀是最近發生的,則可使用一個緊急備份。
使用突變歸檔回復程序。
如需建議使用的程序,請參閱22.5.8 復原自動備份副本。
使用傾印和重新載入程序,22.5.7 使用傾印和載入程序來回復行事曆資料庫。
本小節說明如何使用 csdb rebuild 指令,包含以下主題:
rebuild 指令掃描行事曆資料庫,並檢查行事曆特性 (calprops) 事件和待辦事項 (工作) 是否損毀。如果 rebuild 指令找到不一致性,其會在 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建行事曆資料庫 (.db 檔案)。
不帶有 -g 選項的 rebuild 指令重建除群組排程引擎 (Group Scheduling Engine, 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 選項多,包括部分已刪除的記錄。
例如,若要以 -r 選項執行 db_dump:
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 指令重建回復的資料庫檔案,如22.5.6 重建已損毀的行事曆資料庫中所述。
rebuild 完成後,請複查輸出檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:
Calendar database has been rebuilt |
如果 csdb rebuild 指令未成功,請使用下一個 db_dump 選項 (-r 或 -R) 傾印資料庫。
如果 db_dump -R 選項無法回復已毀壞的資料庫,請連絡 Sun Microsystems 技術支援或銷售客戶代表,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。
如果您已使用第 9 章, 配置自動備份中所述的自動備份功能,則可以在即時資料庫毀壞時使用緊急備份副本。
本小節包括如何復原兩種不同的自動備份:
復原備份之前,請確定您已經完成以下作業:
嘗試診斷是哪個作業事件導致即時資料庫損毀。
移除或校正損毀作業事件以便新的歸檔檔案不會被損毀。
透過將已損毀的資料庫複製到其他目錄或可移動媒體來保留該資料庫。如果您需要連絡技術支援,此作業是必須的。
即時資料庫被毀壞時,應首先選擇緊急備份。若要復原緊急備份,請執行以下步驟:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將目前的緊急備份副本複製到新的回復資料庫目錄中。
將已毀壞的即時資料庫目錄中的 log.* 檔案複製到新的回復資料庫目錄中。
如果您保留了資料庫的歸檔檔案副本,請將尚未套用於即時資料庫的記錄複製到歸檔目錄,這樣您的歸檔備份副本就完整了。
以針對新的回復資料庫指定的 -c -h 選項執行 db_recover。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求保留這些記錄檔。
對新的回復目錄中的資料庫檔案執行 db_verify。若要執行 db_verify:
使用以下指令停止 Calendar Server。
cd /opt/SUNWics5/cal/sbin
./stop-cal
使用以下指令建立 Calendar Server 資料庫 (csdb) 的另一個副本。
cp -Rp /var/opt/SUNWics5/csdb /var/opt/SUNWics5/csdb.db_verify
在 csdb 的副本上執行 db_verify。
不要在原始 csdb 上執行 db_verify。
LD_LIBRARY_PATH=/opt/SUNWics5/cal/lib export LD_LIBRARY_PATH cd /opt/SUNWics5/cal/tools/unsupported/bin ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50alarms.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50calprops.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50events.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50gse.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50journals.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50recurring.db ./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50todos.db ./db_verify -o -h /var/opt/SUNWics5/csdb.db_verify ics50deletelog.db
對 ics50deletelog.db 以 -o 選項執行 db_verify。
如果 db_verify 順利完成執行,您將不會得到任何錯誤訊息。如果資料庫檔案毀壞,它會丟出錯誤訊息。例如:
./db_verify -h /var/opt/SUNWics5/csdb.db_verify ics50todos.db db_verify:Page 612: last item on page sorted greater than parent entry db_verify: Page 612: incorrect next_pgno 885 found in leaf chain (should be 501) db_verify: Page 0: page 501 encountered a second time on free list db_verify: DB->verify: ics50todos.db: DB_VERIFY_BAD: Database verification failed |
對新的回復目錄執行 csdb -v list。
如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。
將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。
在拍攝下個常規快照之前,所有新記錄將被套用於此副本。
啟動 CalendarServer。
如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未毀壞的更舊的緊急備份:
向後查找您的緊急備份,依次在每個緊急備份上執行 db_verify 和 csdb -v list 來尋找未毀壞的最新副本。
通過的第一個緊急備份可以被復原至即時資料庫目錄。
使用未使用的緊急備份替代已毀壞的即時資料庫,如復原緊急備份中所述。(請務必首先閱讀22.5.8.1 復原之前。)
如果無緊急備份可用且您沒有可嘗試的歸檔備份,請致電技術支援。如果您有歸檔備份,請遵照復原歸檔備份之後的程序。(另請參閱22.5.8.1 復原之前。)
如果您沒有未損毀的緊急備份,但有歸檔備份及其作業事件記錄,則可以透過執行以下步驟復原已歸檔資料庫的最新未損毀版本:
識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。
關閉開啟以備寫入的記錄。它包含最新作業事件。
建立新的 (回復) 目錄。
將最新的歸檔檔案副本及其記錄檔複製到新的回復資料庫目錄。
將已毀壞的即時資料庫目錄中的任何未套用的 log.* 檔案複製到新的回復資料庫目錄中。
以針對新的回復資料庫指定的 -c-h 選項執行 db_recover。
例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:
db_recover -c -h recoverydb
將 log.* 檔案保留在新的回復目錄中。
db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求仍舊將這些記錄檔保留在此處。
對新的回復目錄中的資料庫檔案執行 db_verify。
復原緊急備份程序中的步驟說明如何執行 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