Sun Java System Calendar Server 6.3 管理指南

第 4 部分 Calendar Server 6.3 管理

本小節包含如何處理 Calendar Server 部署管理的章節。

這個部分包含以下章節:

第 12 章 Calendar Server 6.3 部署的伺服器管理

本章說明 Calendar Server 部署的伺服器管理。

本章包含以下小節:

您可以透過執行 Delegated Administrator 公用程式 (以前稱為 User Management Utility) 或 Calendar Server 指令行公用程式以及透過編輯 ics.conf 配置檔案來管理 Calendar Server。

若要執行指令行公用程式,您必須以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照


備註 –

其他管理主題包含在各獨立章節中。

這些章節包括:


12.1 啟動與停止 Calendar Server 6.3 程序

本小節包含如何使用 start-calstop-cal 指令的概念資訊及說明。

本小節包含以下主題:

12.1.1 關於 Calendar Server 6.3 指令:start-cal 和 stop-cal

您可以使用 start-calstop-cal 指令啟動和停止 Calendar Server。start-calstop-cal 公用程式位於 cal-svr-base/SUNWics5/cal/sbin 目錄中。您必須在安裝 Calendar Server 的本機上執行這些公用程式。


備註 –

檢查您的程序檔,確定未使用舊的 csstartcsstop 公用程式。請使用 start-calstop-cal 公用程式啟動和停止 Calendar Server。


start-cal 公用程式會以如下順序啟動 Calendar Server 服務:

  1. watcher — 監視程式,監視系統的程序

  2. enpd — 事件通知服務 (Event Notification Service, ENS)

  3. csstored — 自動備份服務

  4. csnotifyd — 通知服務

  5. csadmind — 管理服務

  6. csdwpd — 資料庫連線協定 (Database Wire Protocol, DWP) 服務,此分散式資料庫服務僅當您具有遠端 Calendar Server 資料庫配置時才啟動

  7. cshttpd — HTTP 服務

如需這些服務的說明,請參閱1.10 在 Calendar Server 版本 6.3 中作為常駐程式執行的服務

Procedure使用 start-cal 啟動 Calendar Server 6.3 服務

  1. 以對系統具有管理權限的使用者身份登入。

  2. 發出 stop-cal 指令,確定已停止所有 Calendar Server 服務。

  3. 移至目錄。

    cal-svr-base/SUNWics5/cal/sbin

  4. 啟動 CalendarServer。

    ./start-cal

Procedure使用 stop-cal 停止 Calendar Server

  1. 以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

  2. 移至目錄。

    cal-svr-base/SUNWics5/cal/sbin

  3. 停止 Calendar Server。

    ./stop-cal

12.2 在 Calendar Server 版本 6.3 中啟用或停用自動備份

自動備份由 csstored 程序進行管理,該程序在發出 start-cal 後會自動啟動。然而,您也可以隨意啟用或停用自動備份。預設為停用自動備份。即使自動備份未啟用,csstored 程序也會執行。

有兩種類型的自動備份︰緊急備份和歸檔備份。您可以分別啟用或停用它們。

如需有關自動備份的資訊和配置 csstored 的說明,請參閱第 9 章, 配置自動備份

以下是用於啟用和停止自動備份的作業清單:

Procedure在 Calendar Server 版本 6.3 中啟用緊急備份

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 ics.conf 檔案所在的目錄︰

    cd /etc/opt/SUNWics5/config

  4. 透過將以下 ics.conf 參數設定為 “yes”,啟用緊急備份︰

    caldb.berkeleydb.hotbackup.enable="yes"

  5. 指定緊急備份目錄的目錄路徑︰

    caldb.berkeleydb.hotbackup.path=
       /var/opt/SUNWics5/hotbackup_directory
    

    預設為目前目錄。

  6. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure在 Calendar Server 6.3 中啟用歸檔備份

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 ics.conf 檔案所在的目錄。

    cd /etc/opt/SUNWics5/config

  4. 透過將以下 ics.conf 參數設定為 “yes”,啟用歸檔備份︰

    caldb.berkeleydb.archive.enable=”yes”

  5. 指定歸檔目錄的目錄路徑。

    caldb.berkeleydb.archive.path=
       /var/opt/SUNWics5/hotbackup_directory
    

    預設為目前目錄。

  6. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure在 Calendar Server 版本 6.3 中停用緊急備份

依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 ics.conf 檔案所在的目錄。

    cd /etc/opt/SUNWics5/config

  4. 透過將以下 ics.conf 參數設定為 "no",停用緊急備份︰

    caldb.berkeleydb.hotbackup.enable="no"

  5. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

Procedure在 Calendar Server 版本 6.3 中停用歸檔備份

依預設,備份已停用。如果您先前已啟用備份但現在想將其停用,請執行下列步驟︰

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 ics.conf 檔案所在的目錄。

    cd /etc/opt/SUNWics5/config

  4. 透過將以下 ics.conf 參數設定為 "no",停用歸檔備份︰

    caldb.berkeleydb.archive.enable="no"

  5. 完成編輯 ics.conf 檔案之後,請重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    無需停止行事曆服務即可編輯 ics.conf 檔案,但是您必須重新啟動服務以使變更生效。

12.3 管理 Calendar Server 版本 6.3 的群組排程引擎佇列

本小節包含管理群組排程引擎 (Group Scheduling Engine, GSE) 的概念資訊和說明

GSE 會保留一個事件佇列,用來更新元件資料庫。管理員可以變更逾時值,以調整 Calendar Server 掃描佇列的時間間隔。還可以列出佇列中的事件,並在必要時刪除特定事件。

本小節包含以下主題:

12.3.1 關於 Calendar Server 版本 6.3 的 GSE

GSE 可讓 Calendar Server 使用者建立事件並邀請其他與會者。如果某位與會者位於同一 Calendar Server 上,則該事件會排程在該與會者的行事曆中。如果某位與會者不在同一 Calendar Server 上,則系統會透過電子郵件傳送邀請。然後,與會者可接受或拒絕邀請,GSE 將用回覆更新事件。

12.3.2 關於 Calendar Server 6.3 GSE 佇列

GSE 佇列實際是 csadmind 程序所管理的獨立資料庫,Calendar Server 會掃描此佇列以查找需要對元件資料庫進行的更新。

您可以透過調整此掃描的頻率來調校 Calendar Server。此操作可透過變更 ics.conf 檔案中 gse.belowthresholdtimeout 的逾時值來完成。請參閱第 21 章, 調校 Calendar Server 效能

GSE 佇列項目可使用 csschedule 來管理 (列出和刪除)。您必須在安裝 Calendar Server 的本地機器上執行 csschedule

12.3.3 列出 Calendar Server 6.3 GSE 佇列的項目

若要列出 GSE 佇列中的項目,請使用 csschedule 公用程式的 list 指令。

例如,列出 GSE 佇列中的所有項目:

csschedule list

列出儲存在 GSE 佇列中的前十個項目:

csschedule -c 10 list

若要列出 GSE 佇列中包含 calid Holiday_Schedule 的行事曆的所有項目:

csschedule -v list Holiday_Schedule

12.3.4 刪除 Calendar Server 版本 6.3 中 GSE 佇列的項目

若要刪除 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

12.4 監視 Calendar Server 6.3 程序

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 的監視程式 (程序)

12.5 清除 Calendar Server 版本 6.3 中的 CLD 快取記憶體

本小節包含如何清除 CLD 快取記憶體的概念資訊和說明。

本小節包含以下主題:

12.5.1 為什麼要清除 Calendar Server 6.3 CLD 快取記憶體?

如果已啟用 CLD 快取記憶體,則需要不時地清除記憶體。基於各種原因,CLD 快取記憶體可能無法與您的系統配置同步 (失去時效)。

以下是 CLD 快取記憶體可能失去時效的一些原因。

如果發生其中任何情況,為了更新 CLD 快取記憶體,您必須將其清除。

Procedure清除 CLD 快取記憶體

  1. 停止 Calendar Server。

  2. 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

  3. 重新啟動 Calendar Server。

12.6 變更伺服器名稱

如果在配置中增加、刪除或變更伺服器名稱,您應該執行以下數項「事務性工作」,以免出錯。

以下步驟有助於使 CLD 保持最新:

12.7 配置 Calendar Server 使用者匿名存取

本小節包含如何啟用和停用匿名存取 (登入) 的說明。

匿名存取是一種不需要認證的特殊登入。啟用匿名登入後,依預設,對公開行事曆的讀取和寫入存取已啟用。可能會拒絕對公開行事曆的寫入存取。

本小節包含以下主題:


備註 –

Communications Express 要求寫入和讀取均允許匿名登入。請參閱4.1 配置 Communications Express


Procedure啟用匿名存取

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 編輯 ics.conf 中的以下參數,以啟用匿名存取︰

    參數 

    說明和預設值 

    service.http.allowanonymouslogin

    如有必要,將此參數設定為 “yes”,以啟用匿名存取 (登入)。預設值為 “yes”

    service.calendarsearch.ldap

    透過將此參數設定為 “no” (此為預設值),您可在執行行事曆搜尋時停用首先搜尋 LDAP,以便保護啟用匿名登入後的安全性。


    備註 –

    Communications Express 要求 service.calendarsearch.ldap 參數的值為 “no”。這會與調校系統在 DWP 環境中發揮最佳效能的說明相衝突。(您的資料庫分布在多台後端伺服器上。)請參閱21.2 提昇 DWP 環境中的行事曆搜尋效能


  6. 將檔案儲存為 ics.conf

  7. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

Procedure禁止匿名使用者寫入至公開行事曆

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 編輯如下表所示的 ics.conf 參數:

    參數 

    說明和預設值 

    service.wcap.anonymous.

    allowpubliccalendarwrite

    允許或禁止匿名存取使用者寫入至公開的行事曆。將其值設定為 “yes” (此為預設值) 以啟用存取。

  6. 將檔案儲存為 ics.conf

  7. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

12.8 啟用代理管理員登入

必須為 Communications Express 啟用代理管理員登入 (代理伺服器認證)。如需有關配置 Communications Express 的代理伺服器認證的說明,請參閱4.1 配置 Communications Express

然而,即使您未使用 Communications Express,仍可以啟用代理伺服器認證。本小節包含在不使用 Communications Express 的情況下啟用代理伺服器認證的程序:

Procedure在不使用 Communications Express 的情況下啟用代理伺服器認證

  1. 以擁有變更配置權限的管理員身份登入。

  2. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  3. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  4. 編輯 ics.conf 檔案,確認將以下參數設定為:

    service.http.allowadminproxy = "yes"

    否則,請將它變為 "yes"

  5. 將檔案儲存為 ics.conf

  6. 重新啟動 Calendar Server 以使新值生效。

Procedure驗證代理伺服器認證是否正常工作

    使用以下 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-passwordadmin-user 的密碼。

    • calendar-user – Calendar Server 使用者的 calid

    如果指令成功,系統將顯示 calendar-user 的行事曆。若發生問題,系統將顯示 [未授權]。

    以下是指令可能失敗的部分原因清單:

    • admin-user 沒有 Calendar Server 管理員權限。

    • admin-password 不正確。

    • calendar-user 不是有效的 Calendar Server 使用者。

12.9 更新 Calendar Server 配置

在 Calendar Server 6.3 發行版本中,使用 stop-calstart-cal 指令來重新整理配置。如需更多資訊,請參閱12.1 啟動與停止 Calendar Server 6.3 程序

第 13 章 管理 Calendar Server 網域

本章包含如何在 Calendar Server 部署中管理網域的概念資訊與說明。

本章包含有關管理多個網域的以下小節:

13.1 選擇正確的使用者管理工具

管理 Calendar Server 網域有兩種方法。

使用下列兩組工具之一:

如需有關特定物件類別和屬性的資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」

如需多個網域及其他簡介性內容的簡介,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境


注意 – 注意 –

Calendar Server 不支援使用 Access Manager 主控台管理網域。


13.2 建立新的 Calendar Server 網域

本小節包含將網域增加至 Calendar Server 部署的概念資訊與說明。您可以使用任一模式與多個網域搭配。不過,如果您可以選擇,請使用 Schema 2,以利用更好的工具組。

本小節包含以下主題:

13.2.1 建立 Calendar Server 網域簡介

Calendar Server 軟體具有多個預設會啟用的網域。不要變更以下 ics.conf 參數的值:service.virtualdomain.support="yes"

一旦完成了第 10 章, 設定多重網域 Calendar Server 6.3 環境中描述的準備工作,您就可以增加網域。

每個網域均擁有您可設定的一組屬性和喜好設定。這些屬性是 icsCalendarDomain 物件類別的一部分。這些屬性包括喜好設定,例如存取權、存取控制清單 (ACL)、網域搜尋、網域搜尋存取權、使用者狀態以及代理登入。

13.2.2 在 Schema 2 模式增加網域

本小節包含如何在 Schema 2 模式中增加網域的說明。

您可以使用 Delegated Administrator 主控台或公用程式:

13.2.3 在 Schema 1 模式中增加網域

本小節包含使用 csdomain 公用程式的簡化範例說明。

在 Schema 1 中建立網域時,請使用 csdomain create。例如,若要建立 west.sesta.com,請使用以下指令。

csdomain create west.sesta.com

如需有關如何為多個網域進行配置的說明,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境

13.3 啟用交叉網域搜尋

本小節包含啟用交叉網域搜尋的說明。

本小節包括您必須執行的兩項工作以啟用交叉網域搜尋:

使用以下任一工具都可以完成以上工作:ldapmodify (用於任何一種 Schema 模式) 或 Delegated Administrator 主控台或公用程式 (用於 Schema 2)。

13.3.1 為允許搜尋此網域的網域增加名稱

每個網域 LDAP 項目均以 ACE 的形式指定存取權限,您可以在 icsExtendedDomainPrefs 屬性的 domainAccess 參數中定義 ACE。允許外部網域搜尋此網域的兩種不同方式:

1.8 Calendar Server 版本 6.3 的存取控制中有如何建構 ACI 的更完整的說明。

13.3.1.1 允許特定網域搜尋此網域

可透過三種方式完成:


備註 –

雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已設定允許所有使用者讀取事件詳細資訊的權限,否則使用者無法查看事件詳細資訊。


13.3.1.2 允許所有外部網域搜尋此網域

可以使用三種方式來允許所有外部網域搜尋此網域:


備註 –

雖然您可以使用剛才列出的前兩種方法指定為網域提供的精確權限,但是最後一種使用 Delegated Administrator 主控台的方法不允許管理員進行過多控制。權限清單是預設的。提供的權限為:空閒-忙碌存取和事件排程存取。除非該行事曆的所有者已設定允許所有使用者讀取事件詳細資訊的權限,否則使用者無法查看事件詳細資訊。


13.3.2 增加可由此網域搜尋的網域名稱

本小節包含增加要搜尋的網域名稱的說明。

可以使用三種方式來增加要依此網域搜尋的外部網域:

第 14 章 管理使用者、群組和資源

本章說明如何使用 Delegated Administrator 和 Calendar Server 公用程式來管理使用者、群組和資源。

本章包含以下小節:

14.1 建立行事曆使用者 LDAP 項目

本小節包含建立新使用者項目的說明。

本小節包含以下主題:

14.1.1 建立 Schema 2 模式的新行事曆使用者

本小節說明如何為 Schema 2 LDAP 項目建立新行事曆使用者。

您可以使用 Delegated Administrator 主控台或公用程式:

14.1.2 建立 Schema 1 模式的新行事曆使用者

使用 csuser 公用程式。例如,若要在 sesta.com 網域中增加使用者 jdoe

csuser -m jdoe@sesta.com -d sesta.com create jdoe

14.2 建立行事曆群組 LDAP 項目

本小節說明如何建立新群組 LDAP 項目

本小節包含以下說明:

14.2.1 建立 Schema 2 模式的新行事曆群組

群組是使用者、資源或其他群組 (巢式群組) 的已命名清單。群組可以是靜態或動態。


提示 –

群組不會同時包含靜態和動態成員。如果建立了空群組,預設為靜態群組。


您可以使用以下工具之一:

14.2.2 建立 Schema 1 模式的新行事曆群組

直接增加群組 LDAP 項目。使用「Sun ONE Directory Server Resource Kit 5.2 Tools Reference」中說明的目錄伺服器 LDAP 指令。

群組 LDAP 項目應該包括 icsCalendarGroup 物件類別,這是 GroupofUniqueNames 物件類別的延伸。以下是可以包括的屬性:

屬性 

說明 

groupid

這是群組的唯一必要屬性。它是群組的唯一識別碼,類似於使用者的 uid

icsSecondaryowners

群組的共同所有者。 

icsDefaultacl

新群組行事曆的 ACL 字串。 

icsCalendar

這個群組的預設行事曆的 calid

群組不是必須具有預設行事曆。 

icsStatus

群組行事曆的狀態。可能值為:activeinactivedeleted

icsTimezone

群組的時區。 

icsDWPHost

預設行事曆所在的後端主機的名稱。 

icsDoublebooking

預設行事曆是否允許在相同時段排定多個事件。這會置換網域層級喜好設定 (icsAllowRights 的位元 15)。請參閱配置群組的 Calendar Server,以瞭解群組的網域預設層級。

icsAutoaccept

預設行事曆是否將自動接受邀請。 

mail

這個群組的電子郵件位址。 

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」

14.3 建立行事曆資源 LDAP 項目

本小節說明如何建立新資源。

使用以下其中一種方法來建立行事曆資源項目:

14.3.1 建立 Schema 2 模式的新行事曆資源

本小節包含在 Schema 2 模式中建立新資源 LDAP 項目的說明。

您可以使用 Delegated Administrator 主控台或公用程式:

14.3.2 建立 Schema 1 的新行事曆資源

使用 csresource 公用程式建立 LDAP 項目和資源行事曆。例如,若要增加投影機 p101,請使用以下指令:

csresource -m p101@siroe.com -c p101 create Projector_101

如需有關 csresource 的更多資訊,請參閱D.15 csresource

14.4 將 mail 屬性增加至使用者、群組和資源 LDAP 項目

本小節包含為郵件服務啟用 LDAP 項目的概念資訊及說明。

本小節包含以下主題:

14.4.1 將郵件服務增加至 Calendar Server LDAP 項目的簡介

Calendar Server 需要使用者、群組及資源具有 mail 屬性,其中包含使用者、群組或資源的電子郵件位址。該 mail 屬性將使人們能夠使用電子郵件位址或 calid 搜尋行事曆。使用 Delegated Administrator 建立新的使用者時,其會自動增加 mail 屬性。即使未向該使用者指定郵件服務,仍會如此。不過,如果已在不需要 mail 屬性的 Calendar Server 版本中建立使用者和資源,則您可能必須增加 mail 屬性至現有的使用者和資源 LDAP 項目。


備註 –

增加 mail 屬性不會啟用使用者行事曆的電子郵件通知。

Calendar Server 不支援群組或資源行事曆的電子郵件通知。

若要啟用使用者行事曆的電子郵件通知,請將以下兩個屬性增加至使用者的 LDAP 項目:


14.4.2 檢查 LDAP 項目中是否存在 mail 屬性

如果不知道使用者、群組和資源是否具有 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 屬性存在,則您不必進行增加。如果屬性不存在,則如以下小節所示進行增加。

14.4.3 將 mail 屬性增加至 Calendar Server 版本 6.3 的現有使用者、群組及資源 LDAP 項目

如果您正要將現有的 LDAP 項目轉換為具有行事曆功能的項目,則您必須將 mail 屬性增加至每一個沒有包含它的使用者、群組及資源 LDAP 項目。

若要將 mail 屬性增加至現有使用者、群組和資源,請使用以下方法之一:

14.5 管理現有的使用者

本小節包含管理 LDAP 資料庫中的使用者項目的概念資訊及說明。其中不包括建立使用者項目的說明。如需有關建立使用者項目的資訊,請參閱14.1 建立行事曆使用者 LDAP 項目

利用 Delegated Administrator 公用程式或主控台 (若為 Schema 2 LDAP 使用者項目),或利用 csuser 公用程式 (若為 Schema 1 LDAP 使用者項目) 管理使用者。

本小節涵蓋的管理工作如下:

14.5.1 顯示行事曆使用者資訊

本小節顯示兩個指令範例,它們使用 Calendar Server 公用程式指令 (csuser list),取得所有行事曆使用者的清單,或顯示特殊使用者的行事曆屬性 (來自 LDAP 使用者項目)。

本小節包含以下主題:

14.5.1.1 顯示所有具有行事曆功能的使用者

若要顯示所有具有行事曆功能的使用者,請發出以下指令行公用程式:

csuser list

14.5.1.2 顯示特殊使用者的行事曆屬性

若要顯示單一使用者的所有行事曆屬性,請發出以下指令行公用程式:

csuser -v list fully-qualified-user-name

例如,如果使用者是屬於 sesta.com 網域的 jsmith,則指令行如下:

csuser -v list jsmith@sesta.com

14.5.2 停用行事曆使用者

停用使用者的目的是防止使用者登入 Calendar Server。依據您用於建立使用者的使用者管理工具,會進行不同的處理。在 Delegated Administrator 主控台中建立的使用者也應使用它進行管理。同樣,如果您使用 Delegated Administrator 公用程式將行事曆服務指定給使用者,則使用它移除服務。各自對情況的處理稍有不同。

本小節包含以下主題:

14.5.2.1 利用 Delegated Administrator 主控台停用使用者

在 Delegated Administrator 主控台中,僅暫時停用使用者是不可能的。您必須從使用者中移除行事曆服務。若要這樣做,請從 [使用者清單] 頁面中選取使用者。在此使用者的 [特性] 中,刪除包含行事曆服務的服務套裝軟體。這會停用行事曆的使用者,包括將使用者的 icsStatus 設定為 inactive


備註 –

如果套裝軟體還包含其他服務,您必須使用不包含行事曆的其他套裝軟體重新指定那些服務。


14.5.2.2 利用 Delegated Administrator 公用程式 (commadmin user delete) 停用使用者

若要防止使用者存取行事曆服務,請將該服務從使用者的 LDAP 項目中移除,如以下範例所示:

commadmin user delete jsmith -S cal

這會從使用者中移除行事曆服務,但不會完整地移除 LDAP 項目。此外,此指令會將使用者的 icsStatus 變更為 inactive

14.5.2.3 利用 Calendar Server 公用程式 (csuser disable) 停用使用者

disable 指令可防止使用者存取行事曆資料,但不會從使用者的 LDAP 項目或 Calendar Server 資料庫中移除行事曆服務。這個公用程式會增加 icsAllowedServiceAccess="http" 至使用者 LDAP 項目,以此標示使用者為已停用。

例如,防止 jsmith 存取 Calendar Server:

csuser disable jsmith

如果 jsmith 目前已登入 Calendar Server,則 jsmith 仍可存取行事曆資料,直至其登出。

14.5.2.4 利用 Calendar Server 公用程式從使用者中移除行事曆服務

若要從使用者中移除行事曆服務,使用 csuser 公用程式 reset 指令。

例如,若要從 jsmith 中移除行事曆服務:

csuser reset jsmith

這樣做會從使用者的 LDAP 項目中移除所有行事曆屬性,包括 icsCalendarUser (類別名稱)、icsSubscribedicsCalendarOwnedicsCalendaricsDWPHost (如果使用 LDAP CLD 的話)。Calendar Server 管理員將無法代表使用者建立行事曆。


備註 –

當發生以下一種情況時,行事曆服務會復原至使用者:


14.5.3 啟用行事曆使用者

本小節包含有關如何為使用者啟用行事曆服務的資訊。

當建立使用者時,通常會為行事曆服務啟用他們。不過,可以停用使用者。若要為行事曆服務重新啟用使用者,您必須使用本小節的其中一種方法。


注意 – 注意 –

Delegated Administrator 主控台與公用程式啟用使用者的實作方式略有不同。因此,您應該使用相同工具來啟用及停用使用者。不要使用某個工具來停用,而使用另一個工具來重新啟用。


本小節涵蓋以下啟用使用者的方法:

14.5.3.1 利用 Delegated Administrator 主控台啟用使用者

您無法從主控台停用使用者。您可以移除行事曆服務,然後重新進行增加。若要重增加加服務,請從 [使用者清單] 頁面中選取使用者,然後使用 [指定服務套裝軟體] 精靈,將行事曆服務套裝軟體增加至使用者的 LDAP 項目。使用者會自動啟用。


備註 –

這是用來增加行事曆服務 (14.5.4 將行事曆服務增加至使用者) 的相同程序。


14.5.3.2 利用 Delegated Administrator 公用程式啟用使用者

Delegated Administrator 公用程式可以利用以下選擇之一來啟用使用者:


注意 – 注意 –

請確定使用相同方法來啟用和停用使用者。如果您在利用 Delegated Administrator 公用程式 (僅變更icsStatus) 停用了使用者之後,嘗試過利用 Delegated Administrator 主控台來啟用使用者,則系統因為使用者已有服務而不能夠增加服務,而且使用者仍是已停用狀態。


14.5.3.3 利用 Calendar Server 公用程式重新啟用使用者

若要為行事曆服務重新啟用使用者,請使用 csuser enable 從使用者的 LDAP 記錄中移除 icsAllowedServiceAccess="http"

14.5.4 將行事曆服務增加至使用者

不需要將行事曆服務增加至利用舊的 (Schema 1) Calendar Server 公用程式建立的使用者。不過,利用 (Schema 2) Delegated Administrator,可以從使用者的 LDAP 項目中增加和移除行事曆服務。

若要將行事曆服務增加至現有的使用者,請使用以下工具之一:

14.5.4.1 利用 Delegated Administrator 主控台將行事曆服務增加至使用者

您可以將行事曆服務增加至新的使用者及現有的使用者:

14.5.4.2 利用 Delegated Administrator (commadmin user create) 將行事曆服務增加至使用者

建立新使用者時,請按以下範例中的說明來增加行事曆服務:

commadmin user create jsmith -S cal

如果建立使用者時您未啟用行事曆服務,則稍後您可以使用 modify 指令將行事曆服務增加至該使用者,如以下範例所示:

commadmin user modify jsmith -S cal

14.5.4.3 利用 Calendar Server 公用程式增加行事曆服務

當建立使用者項目時,如果已使用 csuser create,則公用程式會將行事曆服務給與使用者,方法是增加 icsCalendarUser 及其屬性至使用者 LDAP 項目。

14.5.5 從使用者 LDAP 項目中刪除行事曆服務

拒絕為使用者提供行事曆服務的一個方法是從使用者項目中移除服務。另一個方法是暫時停用使用者。 這些內容在先前標題為14.5.2 停用行事曆使用者的小節中有說明。

14.5.6 設定行事曆使用者的電子郵件別名

如果您需要為行事曆使用者設定電子郵件別名,請增加 mailalternateaddress 屬性至使用者的 LDAP 項目。mail 屬性提供主要郵件位址,而 mailalternateaddress 屬性用於電子郵件別名。這兩個屬性均將郵件位址對映至使用者的行事曆 ID (calid)。

您可以利用以下三種方法來增加屬性:

,使用 commadmin user modify -A 或以 ldapmodify 直接更新 LDAP。


備註 –

若要啟用這些變更,可能還需要重建別名表或配置。請參閱 Messaging Server (或您的電子郵件產品) 的文件,以及網站自身的文件和有關郵件服務變更的程序。在以下網站可獲得 Messaging Server 文件:http://docs.sun.com/coll/1312.2


Procedure利用 Delegated Administrator 主控台設定電子郵件別名

  1. 選擇使用者所在的組織。

  2. 搜尋使用者。

  3. 透過按一下使用者的名稱來顯示使用者的特性。

  4. 編輯 [郵件服務詳細資訊] 以增加別名。

另請參閱

Delegated Administrator 線上說明。

14.5.6.1 利用 Delegated Administrator 公用程式設定電子郵件別名

可以為行事曆使用者設定電子郵件別名,正如同傳訊使用者一般,方法是增加 mailalternateaddress 至使用者的 LDAP 項目。若要使用 Delegated Administrator 公用程式增加屬性,請使用 commadmin user modify -A mailalternateaddress:value

14.5.6.2 利用 Calendar Server 公用程式 csattribute 設定電子郵件別名

若要增加電子郵件別名至使用者,請使用 csattribute add -a 指令來增加 mailalternateaddress 屬性至使用者項目。

例如,若要採用這些值為名為 John Smith 的使用者增加兩個別名:

這些指令看起來類似以下範例:

csattribute -a mailalternateaddress=johns@sesta.com add johnsmith@sesta.com

csattribute -a mailalternateaddress=jsmith@sesta.com add johnsmith@sesta.com

14.5.7 驗證使用者是否具有行事曆服務

本小節提供驗證行事曆服務的說明。

請使用以下工具來驗證使用者是否具有行事曆服務。

14.5.7.1 利用 Delegated Administrator 主控台檢查使用者是否具有行事曆服務

如果有 [行事曆服務詳細資訊] 頁面,則它們具有行事曆服務。或者,看一下服務套裝軟體詳細資訊,以查看列出什麼種類的服務。

14.5.7.2 利用 Delegated Administrator 公用程式檢查使用者是否具有行事曆服務

請使用以下指令,列示與使用者關聯的所有目錄特性:

commadmin user search

14.5.7.3 利用 Calendar Server 公用程式 csuser 檢查使用者是否具有行事曆服務

請使用以下指令,檢查是否已對行事曆服務啟用使用者:

csuser check

14.5.8 從 LDAP 資料庫中刪除使用者

請使用 Delegated Administrator 或 Calendar Server 公用程式,從 LDAP 中刪除使用者。

請使用以下兩種方法之一,從 LDAP 資料庫中刪除使用者:


注意 – 注意 –

沒有 undelete 指令。

使用 Delegated Administrator 刪除了網域中的使用者後,必須清除這些使用者,然後重頭增加他們。直至執行清除後,使用者名稱才可以重複使用。


Procedure使用 Delegated Administrator 刪除 Schema 2 的使用者

您可以使用任一 Delegated Administrator 介面標記要刪除的使用者。不過,您無法使用 Delegated Administrator 主控台,從 LDAP 中實際移除使用者 (清除)。您必須使用 Delegated Administrator 公用程式進行清除。以下工作列出了刪除 LDAP 中使用者的步驟。直至完成最後一步,使用者才從 LDAP 中真正移除。

  1. 標記要刪除的使用者項目。

    對於 Delegated Administrator 主控台:在 [使用者清單] 頁面中選取要刪除的使用者,然後按一下 [刪除]。

    對於 Delegated Administrator 公用程式:使用 commadmin user delete 指令。例如:

    commadmin user delete -D chris -n siroe.com 
    -w bolton -l jsmith

    兩種情況中,使用者 LDAP 項目中的 icsStatus 屬性均由 active 變更為 deleted

  2. 使用 Calendar Server 公用程式 csclean 移除屬於一個或所有網域中所有已刪除使用者的所有行事曆,如以下範例所示:

    csclean clean “*”

    或移除屬於一個網域中所有已刪除使用者的行事曆,並指定實際的網域,如以下範例所示:csclean clean sesta.com


    提示 –

    如果您在刪除使用者的行事曆之前不慎從 LDAP 中清除了使用者,則可以稍後使用 cscal 公用程式將其移除,如15.6 管理使用者行事曆中所述。


  3. 使用 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」


14.5.8.1 在 Schema 1 環境中刪除使用者

若要移除指定使用者的 LDAP 項目和使用者的預設行事曆,請搭配 delete 指令使用 Calendar Server 公用程式 csuser

例如,若要刪除使用者 jsmith 的 LDAP 項目和預設行事曆,請使用以下指令:

csuser delete jsmith

如果您要移除屬於此使用者的其他行事曆,您必須使用 cscal,如15.6 管理使用者行事曆中所述。

14.5.9 重新命名行事曆使用者

如果一個或多個使用者 ID 需要變更,請執行 csrename 公用程式。

此公用程式會執行以下步驟:


備註 –

請注意,即使變更一個使用者 ID,也會導致整個資料庫被重寫。因此,執行此公用程式「代價昂貴」。

如需有關 csrename 公用程式的進一步資訊,請參閱附錄 DCalendar Server 指令行公用程式參照


14.5.10 關閉可公開寫入的行事曆功能

可公開寫入的行事曆是一種 Calendar Server 功能。您可以開啟或關閉這個功能。它依預設為啟用。以下工作顯示如何編輯配置檔案以變更設定。

當啟用這個功能時,便可在產生邀請時排定 (寫入) 行事曆。事件將自動增加至與會者的行事曆。

當停用這個功能時,只在產生邀請時,行事曆所有者才會得到電子郵件通知。事件將不會自動增加至與會者的行事曆。只允許所有者增加事件及工作至行事曆。

Procedure禁止使用者擁有公開可寫入行事曆

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 如下表所示編輯以下 ics.conf 參數:

    參數 

    說明和預設值 

    service.wcap.

    allowpublicwritablecalendars

    讓使用者擁有公開可寫入行事曆。依預設 (設定為 “yes”) 啟用。

  6. 將檔案儲存為 ics.conf

  7. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

14.6 管理 Calendar Server 資源

本小節包含管理行事曆資源的概念資訊及說明。

在增加資源之後,您可以使用 Delegated Administrator 或 csresource 管理它們。

本小節包含以下主題:

14.6.1 擷取資源的 LDAP 資訊

本小節包含擷取資源 LDAP 資訊的說明。

您可以利用三個工具之一,從 LDAP 資源項目擷取資源特性:

Procedure使用 Delegated Administrator 主控台擷取資源資訊

  1. 在 Delegated Administrator 主控台中,按一下 [行事曆資源] 標籤。

  2. 使用 [搜尋結果] 下拉式方塊,選取以下選項之一:

    • [依資源 ID 搜尋行事曆資源]

    • [依行事曆資源名稱搜尋行事曆資源]

  3. 鍵入您要搜尋的值。

  4. 按一下 [搜尋]。

14.6.1.1 使用 Delegated Administrator 公用程式擷取資源資訊

使用 commadmin resource search 指令,擷取資源的 LDAP 資訊。

例如,若要搜尋 sesta.com 網域中的資源 CF101,請使用以下指令:

commadmin resource search -D serviceadmin -w serviceadmin -n sesta.com \s
-d sesta.com -u CF101

Procedure使用 csresource 擷取資源資訊

您可以使用 csresource 公用程式,擷取一個資源或所有資訊的 LDAP 項目資訊。

  1. 移至 sbin 目錄。

  2. 使用 csresource list 指令,列出一個或所有資源。

    例如,列出有關所有資源的全部資訊:

    ./csresource -v list

    或者,列出所有有關特定資源 (CF101) 的資訊:

    ./csresource

Procedure啟用資源

  1. 移至 sbin 目錄。

  2. 使用 csresource enable 指令啟用一個或多個資源。

    例如,若要啟用 ConfRm12 資源:

    ./csresource -v enable ConfRm12

Procedure停用資源

  1. 移至 sbin 目錄。

  2. 使用 csresource disable 指令停用一個或多個資源。例如,若要停用 ConfRm12 資源:

    ./csresource -v disable ConfRm12

Procedure刪除資源

  1. 移至 sbin 目錄。

  2. 使用 csresource delete 指令刪除一個或多個資源。例如,若要刪除 ConfRm12 資源:

    ./csresource -v delete ConfRm12

14.6.2 為資源電子郵件設置 bitbucket 通道

本小節包含為 Messaging Server 和 Sendmail 設定 bitbucket 通道的說明。bitbucket 通道是放棄為資源行事曆產生的電子郵件的一種渠道。這些範例使用 sesta.com 伺服器上名為 Room100 的資源。如果不設定 bitbucket 通道 (或等效通道),則需要定期刪除傳送至資源行事曆的電子郵件訊息。

本小節包含以下程序:

Procedure設置 Messaging Server bitbucket 通道

  1. 確定 bitbucket 通道已在 imta.cnf 檔案中定義。

  2. 若要將訊息導向至 bitbucket 通道,請使用 csattribute 公用程式為資源建立電子郵件位址:


    csattribute -a mail=Room100@bitbucket.sesta.com add Room100

Procedure設置 Sendmail Bitbucket 通道

  1. 在適當主機上的 /etc/aliases 檔案中,增加如下項目:

    Resource/Conference room aliases Room100: /dev/null

  2. 使用 csattribute 公用程式將資源的電子郵件位址增加至 LDAP 目錄:

    csattribute -a mail=Room100@sesta.com add Room100

14.7 管理使用者和資源 LDAP 屬性

利用D.3 csattribute公用程式或ldapmodify,管理 Calendar Server 所使用的 LDAP 屬性。使用 csattribute 可以列示、增加或刪除屬性。若要修改屬性,請使用 ldapmodify

本小節包含以下主題:

Procedure列出 LDAP 項目屬性

  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 移至 sbin 目錄。

  3. 使用 csattribute list 指令列出使用者或資源的屬性。例如,若要列出 tchang@sesta.com 的屬性,請發出以下指令:

    ./csattribute -t user -d sesta.com list tchang

Procedure增加 LDAP 項目屬性

  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。

  3. 移至 sbin 目錄。

  4. 使用 csattribute add 指令將屬性增加至使用者或資源。例如,將 LDAP 屬性 icsCalendar 與值 Conference_Schedule 增加至使用者 tchang

    ./csattribute -a icsCalendar=Conference_Schedule add tchang@sesta.com

Procedure刪除 LDAP 項目屬性

  1. 以執行 Calendar Server 的使用者或群組 (在安裝期間指定,如 icsusericsgroup) 的身份登入,或者以 root 身份登入

  2. 如果您想此屬性變更立即被識別,請停止 Calendar Server。否則,您不必停止 Calendar Server。

  3. 移至 sbin 目錄。

  4. 使用 csattribute delete 指令刪除使用者或資源的屬性。例如,從使用者 tchang 中刪除 LDAP 屬性 icsCalendar 與值 Conference_Schedule

    ./csattribute -a icsCalendar=Conference_Schedule -t user -d sesta.com delete tchang

14.7.1 修改 LDAP 項目屬性

若要修改 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 管理使用者行事曆


第 15 章 管理行事曆

本章包含一些主題,說明如何使用 Calendar Server 指令行公用程式來建立和管理行事曆。

本章包含以下主題:

15.1 Calendar Server 版本 6.3 的行事曆管理簡介

Delegated Administrator 不會建立或管理行事曆。您必須使用附錄 DCalendar Server 指令行公用程式參照中所述的 Calendar Server 公用程式。

建立行事曆之前,您必須瞭解以下資訊:

若要執行 cscalcsresource,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。您必須從 /opt/SUNWics5/cal/sbin 目錄執行這些指令。也就是說,您必須移至 sbin 目錄;您無法透過指定路徑從其他目錄執行這些指令。

15.2 建立行事曆唯一識別碼 (calid)

Calendar Server 資料庫中的每個行事曆均由唯一行事曆識別碼 (ID) 或 calid 來識別。建立行事曆時,會要求您指定 calid

本小節包含以下主題:

15.2.1 Calid 語法

資料庫中的每個行事曆均由唯一行事曆 ID (calid) 來識別。以下 calid 語法包含三個部分:

userid[@domain][:calendar-name]

三個部分如下:

userid

此 Calendar Server 實例中網域的唯一使用者 ID。

domain

使用者網域的名稱。

具有單一網域時,網域部分為可選項,因為可以確定使用者所在的網域。

具有多個網域時,如果未指定網域部分,則 Calendar Server 將使用 ics.conf 參數 service.defaultdomain 中指定的值指定網域。如果使用者不在預設網域中,則必須指定網域部分。

如需多個網域環境的更多資訊,請參閱第 10 章, 設定多重網域 Calendar Server 6.3 環境第 13 章, 管理 Calendar Server 網域

calendar-name

特定使用者的唯一的可選擇行事曆名稱。雖然所有者僅有一個預設行事曆,但是可能有用於不同用途的其他行事曆。每個非預設行事曆均由其名稱識別。例如,如果使用者 John Doe 具有 uid jdoe,則他的預設行事曆可能為 jdoe@sesta.com。他用於追蹤自己所訓練 Little League 隊的棒球比賽的輔助行事曆可能由以下 calid 識別:jdoe@sesta.com:baseball

15.2.2 行事曆 ID 建立規則

本小節說明建立行事曆 ID (calid) 的規則。

建立 calid 時,請記住以下規則:

15.2.3 將非網域 calid 轉換為多重網域格式 calid

如果您在擁有網域之前已建立 calid,而您現在想要將它們轉換成特定於網域的 calid,則可使用公用程式 csvdmig,將網域部分加入您現有的 calid。請參閱3.6 csvdmig,以獲得有關如何使用此公用程式的說明。

若未將網域名稱加入現有的 calid,系統會假設它們屬於預設網域。

15.3 自動建立行事曆

本小節包含一些概念資訊和指示,說明當使用者第一次登入時,如何使用 Calendar Server 功能來自動建立行事曆。

預設會啟用自動建立行事曆。啟用後,系統會在兩種情況下自動建立行事曆:

如需在這種情況下實作自動建立行事曆的必要配置資訊,請參閱配置群組的 Calendar Server

本小節包含以下主題:

15.3.1 建立 calid

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 的新行事曆,則新行事曆的 calidjsmith@sesta.com:meetings

如果事件與會者清單中列出了不含預設行事曆的使用者、群組或資源,則系統會在事件所有者網域之 LDAP 中查詢 uid 並做為事件所有者。若未將任何網域指定給所有者,則會為其指定預設網域。系統會將網域附加到 uid 以建構 calid

若系統在事件所有者的網域中找不到 uid,它會搜尋允許事件所有者進行搜尋的其他任何網域。如需更多資訊,請參閱11.2 Calendar Server 6.3 系統中的交叉網域搜尋

Procedure啟用行事曆自動佈建

預設會啟用行事曆自動建立。但是,如果您在停用該功能後需要再次啟用它,請執行以下步驟:

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:

    參數 

    說明和預設值 

    local.autoprovision

    設定為 “yes”,可在使用者首次登入時自動建立預設行事曆。依預設會啟用自動佈建。 

    若要關閉此功能,請將值設定為 “no”。 

  6. 驗證使用者的 LDAP 項目是否已為行事曆啟用。

    該項目必須包含 icsCalendarUser 物件類別。如果未包含,請將該類別增加至使用者的 LDAP 項目。

  7. 如果您的網站使用的是多重網域,則使用者的網域也必須啟用行事曆,才能使用自動佈建。該網域項目必須包含 icsCalendarDomain 物件類別。

  8. 儲存該檔案。

  9. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

Procedure停用行事曆自動佈建

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 在 Calendar Server 配置檔案 ics.conf 中編輯以下一個或多個參數,如下表所示:

    參數 

    說明和預設值 

    local.autoprovision

    將參數設定為 no 可停用使用者行事曆的自動佈建。

  6. 儲存該檔案。

  7. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal


    備註 –

    如果自動佈建已停用,則必須明確地為使用者建立行事曆,然後他們才可以成功登入。


15.4 Calendar 存取控制

Calendar Server 使用存取控制清單 (Access Control List, ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 (工作)) 的存取控制。

本小節包含以下主題:

15.4.1 存取控制配置參數

下表說明 ics.conf 檔案中供 Calendar Server 用於存取控制的配置參數。

表 15–1 存取控制配置參數

參數 

說明 

calstore.calendar.default.acl

指定使用者建立行事曆時使用的預設存取控制設定。預設為: 

"@@o^a^r^g;@@o^c^wdeic^g;

@^a^fs^g;@^c^^g;@^p^r^g"

calstore.calendar.owner.acl

指定行事曆所有者的預設存取控制設定。預設為: 

"@@o^a^rsf^g;@@o^c^wdeic^g"

resource.default.acl

指定建立資源行事曆時使用的預設存取控制設定。預設為: 

"@@o^a^r^g;@@o^c^wdeic^g;

@^a^rsf^g"

15.4.2 公開與私人事件和工作篩選器

建立新事件或工作時,使用者可指定該事件或工作是公開的、私人的還是只有時間和日期 (機密) 的事件或工作:

公開

對使用者的行事曆具有讀取權限的任何人均可以檢視事件或工作。

私人

僅行事曆的所有者才可以檢視事件或工作。

只有時間與日期

這些為機密事件和工作。行事曆的所有者可以檢視事件或工作。其他對行事曆具有讀取權限的使用者只會看到行事曆上出現「無標題事件」,而且標題不是可使用的連結。

calstore.filterprivateevents 決定 Calendar Server 是否篩選 (識別) 私人事件和工作以及只有時間與日期 (機密) 的事件和工作。依預設,此參數設定為 "yes"。如果您將 calstore.filterprivateevents 設定為 "no",則 Calendar Server 會將私人事件和工作以及只有時間與日期的事件和工作視為公開事件和工作。

15.4.3 存取控制的指令行公用程式

下表說明 Calendar Server 指令行公用程式,這些公用程式可讓您設定或修改用於存取控制的 ACL。

表 15–2 存取控制的指令行公用程式

公用程式 

說明 

cscal

使用 createmodify 指令與 -a 選項來設定特定使用者或資源行事曆的 ACL。

csresource

使用 csresource 公用程式與 -a 選項來設定資源行事曆的 ACL。

commadmin 使用者

csuser

對於 Schema 2,請使用 Delegated Administrator 主控台或 Delegated Administrator 公用程式 commadmin 來變更建立使用者行事曆時所使用的預設 ACL。

對於 Schema 1,請使用 csuser 公用程式與 -a 選項來變更使用者建立行事曆時所使用的預設 ACL。


備註 –

若要在 Delegated Administrator 主控台中設定存取權限,請從 [組織特性] 頁面中 (也可從 [建立新組織] 精靈中) 按一下 [進階權限] 按鈕,以查看可從主控台管理的存取權限清單。


15.5 建立行事曆

本小節包含如何建立行事曆的概念資訊和指示。

本小節包含以下主題:

15.5.1 使用 cscal 公用程式建立使用者行事曆

本小節包含下列主題和範例:

以下範例會建立一個與上述範例類似的行事曆,但還會為群組排程設定特定的存取控制設定:

cscal -n Hobbies -o jsmith -a "@@o^a^sfr^g" create Personal

字串 -a "@@o^a^sfr^g" 授予其他所有者對該行事曆之元件和行事曆特性的排程、空閒/忙碌以及讀取等存取權限,以進行群組排程。

15.5.1.1 建立新行事曆的簡介

若要建立新行事曆,請使用 cscal 公用程式及 create 指令。使用者或資源項目必須已存在於 LDAP 目錄中。請參閱第 14 章, 管理使用者、群組和資源,以取得有關將使用者和資源加入 LDAP 目錄的資訊。

如果您的網站使用的是 LDAP 行事曆查找資料庫 (Calendar Lookup Database, CLD) 外掛程式,您必須在同一後端伺服器上為特定使用者或資源建立所有的行事曆,如使用者或資源項目中的 icsDWPHost LDAP 屬性所指示。如果您嘗試在其他後端伺服器上建立行事曆,cscal 公用程式將傳回錯誤。如需有關 LDAP CLD 外掛程式的資訊,請參閱第 5 章, 在 Calendar Server 版本 6.3 中,將行事曆資料庫配置為分布在多台機器上

15.5.1.2 建立新行事曆

若要建立新行事曆,至少必須執行以下指令:

cscal -o uid  create calid

例如,若使用者 John Smith 具有唯一 ID 和行事曆 ID jsmith,則指令類似:

cscal -o jsmith create jsmith

該指令具有下列部分:

cscal

公用程式的名稱。

-o

此行事曆的主要所有者的唯一 ID (uid)。

create

用於建立新行事曆的指令。

calid

要指定給此行事曆的行事曆 ID。

如需 cscal 公用程式的更多資訊,另請參閱本手冊D.5 cscal


提示 –

預設的存取控制設定由 ics.conf 檔案中的 calstore.calendar.default.acl 定義。


15.5.1.3 為使用者建立另一個行事曆

您可以為任何使用者建立多個行事曆。不過,它們一律被識別為預設行事曆的子行事曆。新行事曆完全合格的名稱在冒號分隔符的左側有預設行事曆的名稱,在右邊則有新行事曆的名稱。

以下範例示範如何為使用者 John Smith 建立另一個 (非預設) 行事曆,並使新行事曆名稱為 Personal

cscal -o jsmith@sesta.com create Personal

指令部分如下所示:

cscal

公用程式的名稱。

-o jsmith@sesta.com

此行事曆的主要所有者的唯一 ID (uid)。

create

用於建立新行事曆的指令。

Personal

要指定給此行事曆的行事曆 ID (calid) 的第二部分。

合格的行事曆 ID 為 jsmith@sesta.com:Personal

15.5.1.4 建立具有可檢視名稱的行事曆

這個範例顯示如何將個別的可檢視名稱 "Hobbies" 指定給上一個範例所建立的 Personal 非預設行事曆。

cscal -o jsmith@sesta.com -n Hobbies create Personal

-o

jsmith@sesta.com 指定主要所有者的使用者 ID。

-n

Hobbies 指定行事曆的可檢視名稱。

Personal

John Smith 的新附加行事曆的名稱。

整個 calid 成為:jsmith@sesta.com: Personal

15.5.1.5 建立具有其他特性的行事曆

以下範例會建立一個與上述範例類似的新行事曆 Personal,但該行事曆還會與名為 sports 的種類相關聯,該範例還啟用雙預定,並且指定 Ron Jones 為另一位所有者:

cscal -n Hobbies -o jsmith - g sports -k yes -y rjones create Personal

該指令具有下列部分:

cscal

公用程式的名稱。

-o jamsith@sesta.com

此行事曆的主要所有者的唯一 ID (uid)。

-g sports

這個選項會將行事曆 Personal 與名為 sports 的類別相關聯。

-y

rjones@sestas.com 指定行事曆的另一個所有者。

-k yes|no

這個選項會啟用或停用一個時槽中事件的雙預定。

yes 啟用雙預定。值 no 停用雙預定。

create

用於建立新行事曆的指令。

Personal

要指定給此行事曆的行事曆 ID。

15.5.2 配置資源的 Calendar Server

資源行事曆與可排程的事項相關聯例如會議室、筆記型電腦、高射投影機和其他設備。資源行事曆需要存取控制清單。

表 15–3 所示,ics.conf 檔案中有兩個配置參數適用於資源行事曆:

resource.default.acl

預設存取控制清單。

resource.allow.doublebook

允許或不允許雙預定的參數。

若要變更這些參數 (如表表 15–3 所示) 的預設值,請編輯 ics.conf 檔案。對預設值的變更將僅適用於新的資源行事曆;不會變更現有資源的值。

對於 Schema 1,請使用 Calendar Server 公用程式 cscal 來變更現有資源行事曆的值。csresource 公用程式不包含 modify 指令。

對於 Schema 2,請使用 Delegated Administrator 公用程式指令 commadmin resource modify。Delegated Administrator 主控台不可以變更行事曆資源的這些值。


備註 –

Calendar Server 通知軟體的設計僅用於將通知傳送給使用者,而不傳送至資源。


表 15–3 ics.conf 檔案中的資源行事曆配置參數

參數 

說明和預設值 

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"

15.5.3 建立資源及資源行事曆


提示 –

如果 ics.conf 參數 resource.invite.autoprovision 的值為 "yes",則會在第一次邀請時建立資源行事曆。換言之,如果此資源還沒有預設行事曆,則第一次在邀請中排程它時,將建立資源行事曆。


若要建立資源,請使用下列方法之一:

Calendar Server 公用程式 (Schema 1)

使用 csresource create

此公用程式可同時建立資源的 LDAP 項目和預設行事曆。

如果該資源的 LDAP 項目已存在,則 csresource 僅建立行事曆。它不會建立重複的 LDAP 項目。

例如,若要建立資源 LDAP 項目,並建立行事曆 ID 為 aud100、可檢視名稱為 Auditorium 且具有預設設定的行事曆,請使用以下指令:

csresource -m aud100@siroe.com -c aud100 create Auditorium

Delegated Administrator 公用程式及 Calendar Server 公用程式

使用兩個指令的組合:

  • 使用 Delegated Administrator 公用程式指令 commadmin resource create 建立 LDAP 項目。

  • 使用 Calendar Server 公用程式指令 csresource create 建立預設行事曆。

Delegated Administrator 主控台

若要使用主控台建立 LDAP 資源,請從 [組織清單] 中選取該資源要常駐的組織。在該組織的 [行事曆資源] 頁面中,按一下 [新建] 以顯示 [建立新行事曆資源精靈]。

如需有關 Delegated Administrator 公用程式的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」

如需有關 Delegated Administrator 主控台的更多資訊,請參閱線上說明。

如需有關 csresource 的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

15.5.4 允許資源行事曆的雙預定

依預設,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

15.5.5 限制對資源行事曆的存取

若要控制誰可以排程特定資源,請考量對該資源行事曆擁有寫入權的使用者加以限制。例如,您可能只想允許特定的使用者排程會議室或預訂設備。

如果未指定資源行事曆的所有者,將使用 ics.conf 檔案中 service.siteadmin.userid 參數的值。

15.6 管理使用者行事曆

本小節說明如何使用 Calendar Server 公用程式 D.5 cscal 管理使用者行事曆。

本小節包含以下管理工作:

15.6.1 顯示行事曆

若要顯示所有行事曆、某位使用者擁有的所有行事曆,或特定行事曆的特性,請使用 cscal 公用程式的 list 指令。

以下範例示範使用 cscal 執行的三個不同工作。

15.6.2 刪除行事曆

若要從 Calendar Server 中刪除一個或多個行事曆,請使用 cscal 公用程式的 delete 指令。此公用程式會刪除行事曆,但不會從目錄伺服器中刪除使用者。

以下兩個範例示範使用 cscal delete 可完成的不同工作:


注意 – 注意 –

delete 指令會從行事曆資料庫中移除所有行事曆資訊,並且無法還原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料


15.6.3 移除已刪除使用者的行事曆

使用 Calendar Server 公用程式指令 csuser delete 或 Delegated Administrator 主控台或公用程式刪除一個或多個使用者後,該使用者所擁有的行事曆可能仍在資料庫中。

有兩種方法可移除使用者的行事曆。使用何種方法取決於刪除使用者時所使用的工具︰

Calendar Server 公用程式 csuser

csuser 公用程式可移除 LDAP 目錄中的使用者及其預設行事曆,但不移除該使用者可能擁有的其他任何行事曆。如需如何使用 cscal 來移除這些行事曆的說明,請參閱在 Calendar Server 版本 6.3 中移除以 csuser 刪除之使用者的所有行事曆

Delegated Administrator 主控台及公用程式

Delegated Administrator 不會移除任何行事曆。請使用 Delegated Administrator 標記要刪除的使用者,然後使用 Calendar Server 公用程式 csclean 移除標記為刪除的使用者的行事曆。

如需有關如何使用 csclean 移除已刪除使用者的行事曆的說明,請參閱移除由 Delegated Administrator 刪除之使用者的所有行事曆

如需有關使用 Delegated Administrator 公用程式的說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」

如需有關使用 Delegated Administrator 主控台的說明,請參閱線上說明。

Procedure在 Calendar Server 版本 6.3 中移除以 csuser 刪除之使用者的所有行事曆

  1. 執行 cscal list 指令,以找到已刪除所有者之 uid 對應的所有行事曆。

    cscal -o owner list

  2. 使用 cscal 指令移除該所有者的所有行事曆。

    cscal -o owner delete

  3. 再次執行 csuser list,以驗證是否已移除所有行事曆。


    備註 –

    如果已使用 commadmin 將使用者標記為刪除,且使用者的 LDAP 項目已清除,則使用此程序。


Procedure移除由 Delegated Administrator 刪除之使用者的所有行事曆

Delegated Administrator 不會移除行事曆。請使用 csclean 公用程式移除使用 Delegated Administrator 標記為刪除的所有使用者的全部行事曆。

  1. 請使用 csclean 移除標記為刪除但尚未清除之使用者的所有行事曆。

    例如,若要移除過去 10 天內 sesta.com 網域中標記為刪除的使用者的所有行事曆,請使用以下指令︰

    csclean -g 10 clean sesta.com

  2. 如果使用者已從 LDAP 中清除,則必須使用 cscal

    如需說明,請參閱在 Calendar Server 版本 6.3 中移除以 csuser 刪除之使用者的所有行事曆

15.6.4 啟用行事曆

若要允許使用者存取其行事曆,必須先使用 cscal enable 指令啟用行事曆。

下列範例示範如何啟用行事曆:

15.6.5 停用行事曆

若要防止使用者存取行事曆,請使用 cscal 公用程式的 disable 指令。disable 指令可防止使用者存取行事曆,但不會從行事曆資料庫中移除資訊。

例如,若要防止使用者存取 jsmith@sesta.com:meetings,請使用下列指令:

cscal disable jsmith@sesta.com:meetings

15.6.6 修改行事曆特性

若要修改行事曆的特性,請使用 cscal 公用程式的 modify 指令。

例如,變更 AllAdmins 的群組排程存取控制設定,並將 RJones@sesta.com 指定為另一位所有者:

cscal -a "@@o^c^wd^g" -y RJones@sesta.com modify AllAdmins

以下說明上一個範例所使用的兩個指令變數:

15.6.7 從行事曆中移除特性

若要從行事曆移除特性值,請使用 cscal modify 指令,並使用兩個雙引號 ("") 指定選項值。

以下三個範例顯示如何移除不同的特性:

15.6.8 回復「遺失的」預設行事曆

若在 Communications Express 使用者介面用戶端看不到使用者的預設行事曆,但該行事曆仍存在於資料庫中,則您可以復原行事曆,並更新使用者的 LDAP 項目的兩個屬性以使行事曆再次可見。

若要回復行事曆,請確定使用者的 LDAP 項目中的下列屬性值為使用者的完全合格 calid

對於 Schema 2,請使用以下方法之一更新屬性:

對於 Schema 1,請使用 csattribute add 指令更新屬性。

Procedure將使用者行事曆移至其他後端伺服器

若要將使用者行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:

  1. 在原始伺服器上,使用D.19 csuser公用程式停用行事曆使用者。例如,停用使用者 ID 和 calidbkamdar 的使用者:

    csuser disable bkamdar

  2. 在原始伺服器上,使用D.10 csexport公用程式將使用者的每個行事曆從行事曆資料庫匯出至檔案。例如:

    csexport -c bkamdar calendar bkamdar.ics

  3. 將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。

  4. 在新伺服器上,使用D.11 csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:

    csimport -c bkamdar calendar bkamdar.ics

  5. 在 LDAP 目錄伺服器上,使用D.3 csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com


    csattribute -a icsDWPHost delete bkamdar
     csattribute -a icsDWPHost=sesta.com add bkamdar
  6. 在新伺服器上,使用使用者行事曆的D.19 csuser公用程式啟用行事曆使用者。例如:

    csuser enable bkamdar

  7. 在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:


    cscal -v -o bkamdar list bkamdar
     ...
     csattribute -v list bkamdar
  8. 在原始伺服器上,刪除您剛移動的所有行事曆。例如:

    cscal -o bkamdar delete bkamdar

    -o 選項會刪除主要所有者為 bkamdar 的所有行事曆。


    備註 –

    如果您使用的是 CLD 快取記憶體選項,將行事曆移至其他後端伺服器之後,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。

    若要清除 CLD 快取記憶體,請執行以下步驟:

    • 停止 Calendar Server。

    • 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

    • 重新啟動 Calendar Server。


15.7 管理資源行事曆

本小節說明如何使用 csresource 公用程式管理資源行事曆。

以下是管理資源行事曆的程序︰

15.7.1 顯示資源行事曆和屬性

若要顯示資源行事曆,請使用 csresource 公用程式的 list 指令。

例如,使用公用程式執行下列工作:

15.7.2 修改資源行事曆

本小節說明如何修改資源行事曆。您必須使用D.5 cscal公用程式指令,因為 csresource 公用程式沒有 modify 指令。

例如,下列指令可同時執行兩個工作:

cscal - o tchang -y mwong modify aud100

在這個範例中,cscal 公用程式要求必須指定資源的 calid (aud100),而非行事曆名稱 (Auditorium)。

15.7.3 停用或啟用資源行事曆

您可能需要停用某個資源行事曆,以防止使用者排程事件。例如,某間會議室在改建期間可能無法使用,或者某台高射投影機可能已送去修理。

若要停用或啟用資源行事曆,請使用 csresource 公用程式的 enabledisable 指令。

例如,停用名為 Auditorium 的資源行事曆:

csresource disable Auditorium

稍後啟用該資源行事曆:

csresource enable Auditorium

15.7.4 刪除資源行事曆

若要刪除資源行事曆,請使用 csresource 公用程式的 delete 指令。

例如,若要刪除 Auditorium 資源行事曆,請發出下列指令:

csresource delete Auditorium

Calendar Server 會顯示以下訊息:

Do you really want to delete this resource (y/n)?

輸入 y 可刪除行事曆,輸入 n 可取消此作業。

如果輸入 y,Calendar Server 會刪除行事曆並顯示訊息指明行事曆已被刪除。

Procedure將資源行事曆移到不同的後端伺服器

若要將使用者行事曆或資源行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:

  1. 在原始伺服器上,使用D.15 csresource公用程式停用行事曆資源。例如,停用使用一般名稱 Auditorium 的資源:

    csresource disable Auditorium

  2. 在原始伺服器上,使用D.10 csexport公用程式將每個資源行事曆從行事曆資料庫匯出至檔案。例如:

    csexport -c aud100 calendar aud100.ics

  3. 將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。

  4. 在新伺服器上,使用D.11 csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:

    csimport -c bkamdar calendar bkamdar.ics

  5. 在 LDAP 目錄伺服器上,使用D.3 csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com

    csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar

  6. 在新伺服器上,使用D.15 csresource公用程式啟用行事曆資源。例如:

    csresource enable bkamdar

  7. 在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:

    cscal -v -o bkamdar list bkamdar csattribute - v list bkamdar

  8. 在原始伺服器上,刪除您剛移動的所有行事曆。例如:

    cscal -o bkamdar delete bkamdar

    -o 選項刪除主要所有者為 bkamdar 的所有行事曆。


    備註 –

    如果您使用的是 CLD 快取記憶體選項,且已將行事曆移至其他後端伺服器,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。若要清除 CLD 快取記憶體,請執行以下步驟:

    • 停止 Calendar Server。

    • 移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。

    • 重新啟動 Calendar Server。


15.8 連結至行事曆

您可以建立指向一個或多個使用者或資源行事曆的連結,但前題是每個行事曆都允許讀取存取。例如,您可以將行事曆連結嵌入網頁或電子郵件訊息中。這樣,其他使用者無需登入 Calendar Server,即可匿名檢視該行事曆。

若要建立指向一個或多個使用者行事曆的連結,請使用以下語法:

http://CommunicationsExpresshostname:
CommunicationsExpressport/uwc/
   ?calid=calid-1[; ... ;calid-n]

對於多個行事曆,請使用分號 (;) 分隔各個行事曆 ID (calid)。

例如,若要連結至 jsmith@sesta.comjdoe@siroe.com 的預設行事曆,請輸入:

http://calendar.sesta.com:8080/uwc/?calid=jsmith@sesta;jdoe@siroe.com

連結至 calidoverhead_projector10 的高射投影機資源行事曆:

http://calendar.sesta.com:8080/uwc/?calid=overhead_projector10

15.9 匯入及匯出 Calendar Server 6.3 資料庫中的行事曆資料

若要匯出行事曆資料至檔案及從檔案中匯入行事曆資料,請分別使用 csexportcsimport 公用程式。行事曆資料可為 iCalendar (.ics ) 或 XML (.xml) 格式。

您必須在安裝 Calendar Server 的機器上本機執行 csexportcsimport。Calendar Server 可以執行,也可以停止。

15.9.1 匯入行事曆資料

若要從先前使用 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

15.9.2 匯出行事曆資料

若要將行事曆資料匯出至檔案,請使用 csexport。您為輸出檔案指定的檔案副檔名 (.ics.xml) 可決定使用何種格式。

下列範例顯示如何使用匯出公用程式:

第 16 章 使用 csdb 公用程式管理 Calendar Server 資料庫

Calendar Server 將許多資料庫檔案保存在多個目錄中。必須透過實作第 9 章, 配置自動備份中所述的自動備份程序,或透過實作您自己的備份系統來保護資料庫檔案。您可以使用 csdb 公用程式管理資料庫檔案。

本章說明如何使用 csdb 公程式管理 Calendar Server 資料庫,其中包括以下小節:

16.1 使用 csdb 公用程式管理行事曆資料庫

若要管理資料庫檔案,請使用 Calendar Server 公用程式 csdb。本小節包含以下主題:

16.1.1 識別三種邏輯資枓庫群組

行事曆資料庫公用程式 csdb 將資料庫檔案視為三種邏輯資料庫 (群組):

16.1.1.1 行事曆資料庫群組 (csdb)

caldb 資料庫由資料庫目錄中的所有 .db 檔案和 _db.* 檔案組成。以下是行事曆資料庫檔案 (以及 cld_cacheldap_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 章, 管理刪除記錄資料庫

16.1.1.2 階段作業資料庫群組 (sessdb)

階段作業資料庫由以下目錄中的所有檔案組成/opt/SUNWics5/cal/lib/admin/session//opt/SUNWics5/cal/lib/http/session/

16.1.1.3 統計資料庫群組 (statdb)

統計資料庫由 counter 目錄中的所有檔案組成:

/opt/SUNWics5/cal/lib/counter/

16.1.2 使用 csdb 公用程式指定特定的目標資料庫群組

csdb 公用程式 -t 選項可讓您指定目標資料庫:

-t caldb

行事曆資料庫群組。

-t sessdb

階段作業資料庫群組。

-t statdb

統計資料庫群組。


提示 –

如果未包含 -t 選項,csdb 將對所有三個資料庫進行操作。checkrebuild 兩個指令只會對行事曆資料庫 caldb 進行操作。


16.2 使用 csdb 公用程式管理資料庫

本小節說明如何使用D.8 csdb公用程式執行以下管理工作:


備註 –

若要執行 csdb 公用程式,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。如需更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照


Procedure列出資料庫群組狀態

若要檢視資料庫群組 (caldbsessdbstatdb) 的狀態,請使用 csdb 公用程式 list 指令。

若要列出資料庫狀態,請:

  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 移至 /sbin 目錄。例如,在 Solaris 作業系統上,輸入:

    cd /opt/SUNWics5/cal/sbin

  4. 對一個或所有資料庫群組執行 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 選項指定一個目標資料庫群組 (caldbsessdbstatdb)。例如,若要僅檢視行事曆資料庫的資料庫狀態和統計資料,請執行:

    csdb -t caldb list

Procedure檢查行事曆資料庫群組中是否發生毀損

使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprops]、事件和待辦事項 [工作]) 是否發生損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。

check 指令不檢查警示或群組排程引擎 (Group Scheduling Engine, GSE) 資料庫中是否發生損毀。

若要檢查資料庫是否損毀,請:

  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔或記錄 (log.*) 檔。

  4. 移至 cal-svr-base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:

    cd /opt/SUNWics5/cal/sbin

  5. 對行事曆資料庫的副本執行 check 指令:

    ./csdb check dbdir \> /tmp/check.out 2\>&1

    如果未指定 dbdircheck 將使用目前目錄中的資料庫。

    check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案 (如範例中所示)。

  6. 執行 check 指令之後,請複查輸出檔。

    如果資料庫已毀壞,則可以使用緊急備份副本替代該資料庫。或者,您可以嘗試執行 rebuild 指令重建已毀壞的資料庫。

Procedure重建行事曆資料庫群組 (caldb),不包括 GSE 資料庫

若要回復已損毀的行事曆資料庫 (caldb),請使用 csdb 公用程式 rebuild 指令。rebuild 指令將掃描所有行事曆資料庫,以檢查是否發生損毀。如果 rebuild 指令找到不一致性,它會在 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄中產生重建的行事曆資料庫 (.db 檔案)。

rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案。

在以下說明中, rebuild 指令不會重建群組排程引擎 (GSE) 資料庫。

若要重建行事曆資料庫而不重建 GSE 資料庫,請:

  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. 停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。複製資料庫 (.db) 檔案及記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  4. 移至 cal-svr-base/SUNWics5/cal/sbin 目錄。例如,在 Solaris 作業系統上,輸入:

    cd /opt/SUNWics5/cal/sbin

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。

  5. 對以行事曆資料庫製成的副本執行 rebuild 指令:

    ./csdb rebuild /tmp/db /tmp/

    如果未指定資料庫目錄,rebuild 指令會使用目前目錄中的

    資料庫。在前面的範例中,/tmp/ 參數為重建資料庫指定目標目錄。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中)。

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按下列順序執行 rebuild 指令:

    1. ./csdb rebuild db_0629

      然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。

    2. ./csdb rebuild db_0615

      然後檢查是否有損毀,如果此備份副本也已毀壞,則在下一個備份副本上執行重建。

    3. ./csdb rebuild db_0601

      ... etc.

    rebuild 指令會將重建的資料庫寫入 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄。


  6. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  7. 在驗證已成功完成 rebuild 之後,請將重建的資料庫 (.db) 檔案及作業事件記錄 (log.*) 檔從 rebuild_db 目錄複製到您的生產資料庫。

  8. 如果存在任何已毀壞資料庫的共用 (__db.*) 檔案,請將其移至其他目錄。

  9. 重新啟動 Calendar Server。

Procedure重建行事曆資料庫群組,包括 GSE 資料庫

如果您已在所在站點實作群組排程,則重建應該包括 GSE 資料庫。

若要同時重建行事曆資料庫和 GSE 資料庫,請:

  1. 透過執行 csschedule -v list 指令判斷 GSE 資料庫中是否有項目,然後讓 GSE 處理完這些項目。

  2. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  3. 停止 Calendar Server。

  4. 如果您尚未建立行事曆資料庫的副本,請建立副本。

    複製資料庫 (.db) 檔案及記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  5. 移至 cal-svr-base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入:

    cd /opt/SUNWics5/cal/sbin

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。

  6. 對行事曆資料庫的副本執行 rebuild 指令:

    ./csdb -g rebuild /tmp/db /tmp/

    如果您未指定資料庫目錄,rebuild 將使用目前目錄中的資料庫。在前面的範例中,/tmp/ 參數為重建資料庫指定目標目錄。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中)。

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按下列順序執行 rebuild 指令:

    ./csdb rebuild db_0629 ./csdb rebuild db_0615 ./csdb rebuild db_0601

    然後 rebuild 指令會將重建的資料庫寫入 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄。


  7. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。

    如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  8. 驗證已成功完成 rebuild 之後,請將重建的資料庫 (.db) 檔案從 rebuild_db 目錄複製到您的生產資料庫。

  9. 如果存在任何已毀壞資料庫的共用 (__db.*) 檔案,請將它們移至其他目錄。

  10. 重新啟動 Calendar Server。


範例 16–1 重建輸出範例

輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。第一次掃描,它會驗證 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

16.2.1 刪除資料庫群組

若要刪除行事曆資料庫,請使用 csdb 公用程式 delete 指令。必須停止 Calendar Server。

使用 -t 選項指定目標資料庫 (caldbsessdbstatdb);否則,csdb 會同時刪除這三個資料庫。

例如,若要刪除行事曆資料庫:

csdb -t caldb delete

csdb 公用程式會在刪除資料庫之前發出警告。

第 17 章 備份與復原 Calendar Server 資料

如果您選擇不使用 Calendar Server 提供的自動備份功能 (使用 csstored),則需要實作備份程序來保護資料。本章說明如何使用 Calendar Server 工具和其他 Sun 工具來執行行事曆資料庫檔案的手動備份和復原。

若要備份與復原 /var/opt/SUNWics5/csdb 目錄中的 Calendar Server 資料,請使用以下指令行公用程式:


備註 –

如果您的現有自訂程序檔使用的是 Berkeley 資料庫工具 (例如 db_recover),您可能會發現該工具在升級至 Calendar Server 版本 6.3 之後無法正常工作。在舊版 Calendar Server 軟體中,這些工具使用靜態程式庫進行編譯。現在則是使用動態程式庫進行編譯。

若要適應此變更,請修改自訂程序檔以使用動態連結程式庫,方法如下:將全域變數 LD_LIBRARY_PATH 變更為動態程式庫的名稱 (libdb-4.2.so)。


本章包含以下小節:


注意 – 注意 –

Calendar Server 版本 2 資料與目前的產品不相容。請勿嘗試復原由 Calendar Server 2 backup 公用程式備份的行事曆資料,因為這樣會遺失資料。

如果您擁有版本 2 的行事曆資料並要移至目前的發行版本,則必須連絡技術支援,以獲得對應的遷移公用程式。


17.1 備份 Calendar Server 資料

csbackup 公用程式可備份行事曆資料庫、指定的行事曆或使用者的預設行事曆。本小節說明以下內容:

Procedure將行事曆資料庫備份至目錄

  1. 以資料庫檔案所有者 (例如 icsuser) 的身份登入。

  2. 使用 csbackup 公用程式 database 指令。

    例如,將行事曆資料庫備份至名為 backupdir 的目錄:

    csbackup -f database backupdir

  3. 透過檢查備份目錄中的 ics50caldb.conf 版本檔案,驗證已備份的資料庫版本是否正確。


    備註 –

    如果目標備份目錄已存在,而且您未指定 -f 選項,則 csbackup 公用程式會失敗。例如,如果 backupdir 存在,則即使目錄為空,以下指令也會失敗:

    csbackup database backupdir

    因此,如果您指定已存在的目標備份目錄,請在執行 csbackup 時包含 -f 選項。

    您也可以指定不存在的目標備份目錄,並讓 csbackup 為您建立該目錄。


Procedure將特定行事曆備份至檔案

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要以 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

Procedure將使用者的預設行事曆備份至檔案

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要以 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

17.2 復原 Calendar Server 資料

csrestore 公用程式可復原使用 csbackup 儲存的行事曆資料庫、個別行事曆或使用者的預設行事曆。您必須在安裝了 Calendar Server 的本地機器上執行 csrestore 公用程式,並且必須先停止 Calendar Server。(但是,當您備份資料庫時,Calendar Server 可以正在執行。)

本小節說明以下內容:

Procedure復原行事曆資料庫

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 csbackup 公用程式儲存至備份目錄的行事曆資料庫,請使用 csrestore 公用程式的 database 指令。

    例如,復原儲存至 backupdir 備份目錄的行事曆資料庫:

    csrestore database backupdir

Procedure從備份目錄復原行事曆

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要從使用 csbackup 公用程式儲存至備份目錄的資料庫復原特定行事曆,請使用 csrestore 公用程式的 database 指令與 -c 選項。

    例如,從備份資料庫目錄 backupdir 復原行事曆 jsmithcal@sesta.com

    csrestore -c jsmithcal@sesta.com calendar backupdir

Procedure從檔案復原行事曆

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 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

Procedure復原使用者的預設行事曆

  1. 以資料庫所有者 (icsuser) 的身份登入。

  2. 若要復原使用 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

17.3 使用 Sun StorEdge Enterprise BackupTM 或 Legato Networker®

您也可以使用 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

本小節說明以下內容:

17.3.1 StorEdge 或 Legato 工具

Calendar Server 在 /opt/SUNWics5/cal/sbin 目錄中提供以下檔案,以與 Sun StorEdge 或 Legato 備份軟體配合使用:

icsasm

Calendar Server 應用程式特定模組 (ASM)。ASM 是可由 Sun StorEdge 或 Legato 備份軟體進行呼叫以備份與復原資料的程式。

legbackup.sh

呼叫 csbackup 公用程式的程序檔。

legrestore.sh

呼叫 csrestore 公用程式的程序檔。

Procedure使用 Sun StorEdge Enterprise Backup 軟體或 Legato Networker 備份行事曆資料

若要使用 Sun StorEdge 或 Legato 備份軟體備份行事曆資料庫,請:

  1. 將 Sun StorEdge 或 Legato nsrfile 二進位檔案複製到 /usr/lib/nsr 目錄。

  2. /usr/lib/nsr 目錄中建立以下符號連結:

    icsasm -\> /opt/SUNWics5/cal/sbin/icsasm nsrfile -\> /usr/lib/nsr/nsrfile

  3. 移至 /opt/SUNWics5/cal/sbin 目錄,並執行 csbackup 公用程式與 -l 選項。例如:

    cd /opt/SUNWics5/cal/sbin ./csbackup -l

    -l 選項可在目前目錄下建立備份目錄影像。此目錄中的檔案為空並僅用於為備份程式提供有關行事曆將如何儲存至備份媒體的資訊。如果備份目錄已存在,則會與目前目錄結構同步化。

  4. 使用 save 指令備份行事曆資料。例如:

    /usr/bin/nsr/save -s /opt/SUNWics5/cal/sbin/budir

    您也可以使用 Sun StorEdge 或 Legato 備份 GUI 來排程備份,方法是將用戶端儲存集設定為定期備份資料庫。

    注意,請勿修改 .nsr 檔案。所產生的這些檔案包含備份程序期間由 save 指令和 icsasm 指令解譯的指令。

    Calendar Server 不支援增量備份功能。請勿使用此功能,因為備份目錄只是資料夾結構的影像,不包含實際資料。

    您無法備份名稱中包含非 ASCII 字元或正斜線 (/) 的行事曆。

  5. 自動化備份程序。

    前面的步驟說明如何手動執行備份。設定備份程式的 backup 指令,以在執行備份程式的 save 指令之前執行 Calendar Server 的 csbackup 指令行公用程式,從而實現自動化的備份程序。

Procedure使用 Sun StorEdge Enterprise Backup 軟體或 Legato 軟體復原行事曆資料

若要復原行事曆資料,請:

  1. 使用 Sun StorEdge Enterprise Backup 軟體的 nwrestore 功能或 recover 指令復原已備份的行事曆資訊。

    如果您使用 nwrestore,則會收到以下訊息:


    "File already exists. Do you want to overwrite, skip, backup, or rename?"
  2. 請選擇 overwrite

    顯示此訊息是因為備份樹只是目錄階層。即備份樹由空檔案組成,並永久保持該方式。

第 18 章 管理刪除記錄資料庫

Calendar Server 包含刪除記錄資料庫 (ics50deletelog.db),可以儲存已刪除的事件和待辦事項 (工作)。

在以前的發行版本中,Calendar Server 不維護已刪除事件和工作的資料庫。儲存行事曆事件及工作之本機副本的使用者介面難以判斷已刪除的事件。用戶端軟體被迫將所有事件或待辦事項 (工作) 的唯一識別碼 (uid) 或週期性識別碼 (rid) 與資料的 Calendar Server 副本做比較,以判斷刪除了哪些元件。這一限制直接影響到使用 WCAP 指令開發用戶端使用者介面 (UI) 的各個安裝。為解決此限制,已建立刪除記錄資料庫。

如同任何資料庫檔案一樣,刪除記錄也需加以管理。以下小節描述如何管理刪除記錄檔:

18.1 建立刪除記錄資料庫

Calendar Server 自動在 csdb 目錄中建立刪除記錄資料庫 (ics50deletelog.db) 及其他 Calendar Server 資料庫檔案。Calendar Server 會將事件和待辦事項寫入刪除記錄資料庫,如下所示:

18.2 查詢刪除記錄資料庫

本小節描述如何查詢刪除記錄資料庫。

若要從刪除記錄資料庫傳回項目,請以展開模式或壓縮模式使用 fetch_deletedcomponents WCAP 指令:

以下資訊說明何時及如何指定每一種模式。

如需有關 WCAP 指令的更多資訊,請參閱 「Sun Java System Calendar Server 6.3 WCAP Developer’s Guide」

18.3 清除刪除記錄資料庫

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

本小節包含以下主題:

18.3.1 調整刪除記錄清除

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

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

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

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

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

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

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

參數 

說明 

service.admin.purge.deletelog

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

預設為 "no"

caldb.berkeleydb.purge.deletelog.interval

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

預設為 60 秒。

caldb.berkeleydb.purge.deletelog.beforetime

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

預設為 518400 秒 (6 天)。

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

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

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

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

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

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

cspurge -e endtime -s starttime

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

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

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

cspurge -e 20030731T235959Z -s 20030701T120000Z

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

18.4 對刪除記錄資料庫使用 Calendar Server 公用程式

下表列出了支援刪除記錄資料庫 (ics50deletelog.db) 的 Calendar Server 公用程式。

表 18–2 支援刪除記錄資料庫的公用程式

公用程式 

說明 

cspurge

允許手動清除刪除記錄資料庫中的項目。 

csbackupcsrestore

支援刪除記錄資料庫的備份與復原。 

csstats

報告刪除記錄資料庫統計資料。 

csdb

支援對刪除記錄資料庫的重建、回復以及檢查作業。 

cscomponents

列出 (唯讀) 刪除記錄資料庫中的項目數。 

如需更多資訊 (包括這些公用程式的語法),請參閱附錄 DCalendar Server 指令行公用程式參照

第 19 章 管理 Calendar Server 時區

本章說明 Calendar Server 軟體如何定義及處理時區。

本章包含以下小節:

如需有關時區特性和參數的更多資訊,請參閱 RFC 2445「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」:

http://www.ietf.org/rfc/rfc2445.txt

19.1 Calendar Server 時區簡介

本小節包含 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」


範例 19–1 timezones.ics 檔案中的 America/Los_Angeles 時區表示法

以下範例顯示 America/Los_Angeles 時區在 timezones.ics 檔案中的表示法。


19.2 管理 Calendar Server 時區

本小節包含如何管理時區的概念資訊及說明。

本小節包含以下主題:

19.2.1 增加新時區

本小節說明如何向 Calendar Server 增加新的時區,以便其在 Communications Express 使用者介面中可用。例如,您可能要為 America/Miami 增加新時區。

增加新時區最簡單的方法是複製並編輯以下步驟所說明的每個檔案中與要增加的時區類似的時區項目。例如,如果要為 America/Miami 增加時區,可複製並編輯每個檔案中用於 America/New_York 的時區項目。如果您的新時區包含日光節約時間 (DST),請嘗試尋找一個類似區塊來複製。

19.2.2 修改現有時區

本小節說明如何修改現有時區。例如,您可能要變更時區名稱,如將「America/Phoenix」變更為「US/Arizona」。

Procedure修改現有時區

  1. 修改以下檔案中您要變更之時區的時區區段:

    /etc/optSUNWics5/config/timezones.ics

    如果變更時區名稱,請將 TZID 項目變更為新名稱。

  2. 修改以下檔案中的 getDisplayNameofTZID 範本:

    cal-svr-base/SUNWics5/cal/html/ language/i18n.xsl

    其中:language 指定您的網站使用的語言的目錄。例如:en (英文),或 fr (法文)。

    如果變更名稱,請將現有時區名稱變更為新名稱。

  3. 修改以下 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 增加新時區

  4. 如果變更影響到供使用者優先使用的預設時區,請修改以下檔案中的「icsTimeZone」項目:

    cal-svr-base/SUNWics5/cal/html/default_user_prefs.xml


    備註 –

    只在使用 Calendar Express 使用者介面時,才需要步驟 2、3 及 4。


  5. 先停止 (如有必要) 再重新啟動 Calendar Server,以使時區變更生效。

第 20 章 使用 Instant Messaging 快顯提醒通知

Calendar Server 已與 Sun Java System Instant Messaging 6.0 (或更高版本) 整合,可為行事曆事件與工作提供自動快顯提醒通知。

本章包含如何配置快顯提醒通知的概念資訊及說明。

本章包含以下小節:

20.1 快顯提醒通知簡介

本小節包含瞭解快顯提醒通知如何在 Calendar Server 軟體運作所需的概念資訊。

本小節包含以下主題:

20.1.1 行事曆快顯提醒通知的配置概念

本小節說明必須配置什麼,才能使快顯提醒通知運作。

使用者可以接收行事曆上即將發生的事件和即將執行的工作的 Instant Messenger 快顯提醒通知。

若要啟用這些快顯提醒通知,必須執行以下兩項工作:

啟用快顯提醒通知後,在事件或工作即將發生時,在 [事件通知系統] 中設定的警示將會使 Calendar Server 傳送電子郵件通知和 Instant Messaging 以顯示快顯提醒通知。

Calendar Server 管理員可以選擇為一般使用者配置電子郵件通知或快顯提醒通知,或同時配置這兩個選項。例如,若要關閉電子郵件提醒通知,請在 ics.conf 檔案中設定以下參數:

caldb.serveralarms.binary.enable= "no"

20.1.2 快顯提醒通知如何運作

本小節說明快顯提醒通知如何運作。

如果已經配置,Instant Messaging 快顯提醒通知會遵循以下架構流程:

  1. Instant Messaging JMS 訂閱者可訂閱事件通知服務 (ENS) 中的 Calendar Server 事件與通知。

  2. Calendar Server 將事件或工作通知以 text/xmltext/calendar 的格式發佈至 ENS。

  3. Instant Messaging JMS 訂閱者接收行事曆事件或工作通知,然後產生 text/calendar 格式的訊息。

  4. Instant Messaging 伺服器將此訊息傳送給行事曆所有者 (如果該一般使用者在線上)。

  5. 如果收件者在線上,Instant Messenger 會根據此訊息在一般使用者的桌面上產生 HTML 快顯提醒通知。

20.2 配置快顯提醒通知

本小節包含為 Calendar Server 軟體配置快顯提醒通知的說明。

本小節包含以下配置說明:

Procedure配置 Instant Messaging Server

以下配置 Instant Messaging 以進行快顯所必需的高階工作清單可為您提供方便。若要配置 Instant Messaging,請參閱 Instant Messaging 文件,位於:

http://docs.sun.com/coll/1309.2

  1. 安裝新的套裝軟體 SUNWiimag

    必須先使用 Java Enterprise System 安裝程式安裝 Instant Messaging 套裝軟體,才可將 Instant Messaging 用於快顯。

  2. 在安裝 Instant Messaging 的機器上,變更至以下目錄:

    cd /etc/opt/SUNWiim/default/config

  3. 如下表中所示編輯一個或多個 iim.conf 檔案中的參數。

    顯示的參數值假設您要對事件和工作均執行快顯提醒通知。如果您的 iim.conf 檔案中尚不存在這些參數,請增加。

    參數 

    說明和要使用的適當值 

    JMS Consumers 區段 

     

    jms.consumers

    警示名稱。將值設定為 cal_reminder

    jms.consumer.cal_reminder.destination

    警示目標。將值設定為 enp:///ics/customalarm 

    jms.consumer.cal_reminder.provider

    提供者名稱。設定為 ens。該名稱必須與 JMS Providers 區段中的 jms.providers 中的名稱相同。

    jms.consumer.cal_reminder.type

    要設定的警示的類型。將值設定為 topic

    jms.consumer.cal_reminder.param

    警示參數。將值設定為 "eventtype=calendar.alarm" (包括引號)

    jms.consumer.cal_reminder.factory

    C++ 工廠名稱。將值設定為: 

    com.iplanet.im.server.
    JMSCalendarMessageListener

    JMS Providers 區段 

     

    jms.providers

    提供者名稱。將值設定為 ens。該值必須與 JMS Consumers 區段中列出的 jms.consumer.cal_reminder.provider 值相同。

    jms.provider.ens.broker=cal.example.com

    ENS 偵聽的連接埠號碼。設定為在 ics.conf 檔案中參數 service.ens.port 指定的連接埠。預設為 57997。

    jms.provider.ens.factory

    要使用的 C++ 工廠。設定為 com.iplanet.ens.jms.EnsTopicConnFactory

    Calendar Server 一般參數 

     

    iim_agent.enable

    啟用行事曆代理程式。將值設定如下 (包括引號): 

    iim_agent.enable="true"

    iim_agent.agent-calendar.enable

    載入啟用行事曆代理程式的元件。將值設定如下 (包括引號): 

    iim_agent.agent-calendar.enable="true"

    agent-calendar.jid

    行事曆代理程式的 JID。將值設定如下: 

    agent-calendar.jid=calimbot.server .domain

    agent-calendar.password

    行事曆代理程式密碼。將值設定如下: 

    agent-calendar.password=password

    iim_server.components

    將值設定如下: 

    iim_server.components=agent-calendar

  4. 移至 imadmin 指令行公用程式所在的目錄:

    cd /opt/SUNWiim/sbin

  5. 使用 imadmin 啟動行事曆代理程式:

    imadmin start agent-calendar

    行事曆代理程式是 Instant Messaging 元件,可為 Calendar Server 使用者提供快顯功能。使用隨 Instant Messaging 提供的工具,您可以啟動、停止、重新啟動行事曆代理程式或檢查其狀態,以及透過記錄檔監視其作業。


    備註 –

    如果您具有包括 stopstartrefresh 指令的程序檔,請將行事曆代理程式增加至這些程序檔。


    如需有關 imadmin 和行事曆代理程式的更多資訊,請參閱「Sun Java System Instant Messaging 7 2005Q1 管理指南」。

Procedure配置 Calendar Server

開始之前

確認下表中所示的 ics.conf 參數具有所示的值。如果不具有所示值,或您希望自訂值,請執行以下步驟:

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 如下表中所示編輯 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"

  6. 將檔案儲存為 ics.conf

  7. 重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

Procedure配置 Instant Messenger

若要接收 Calendar Server 事件與工作的快顯提醒通知,一般使用者必須按照如下所示配置其 Instant Messenger:

  1. 從主要視窗上的 [工具] 功能表中選取 [設定]。

  2. 在 [設定] 視窗上,按一下 [警示] 標籤。

  3. 核取 [顯示行事曆提醒] 選項。

  4. 按一下 [確定]。

第 21 章 調校 Calendar Server 效能

本章包含調校 Calendar Server 效能的概念資訊及說明。

若要提昇 Calendar Server 的效能,請考量以下選項:

21.1 為 LDAP 目錄伺服器建立索引

若要提昇 Calendar Server 存取 LDAP 目錄伺服器時的效能,請為以下屬性增加索引至 LDAP 配置檔案。

icsCalendar

此屬性用於為行事曆使用者或資源搜尋預設行事曆。請指定存在 (pres)、平等 (eq) 及子字串 (sub) 索引類型。

icsCalendarOwned

此屬性用於搜尋由使用者所有的其他行事曆。請指定存在 (pres)、平等 (eq) 及子字串 (sub) 索引類型。另請參閱21.2 提昇 DWP 環境中的行事曆搜尋效能

mail, mailAlternateAddress

這些屬性指定使用者的主要和替代電子郵件位址。另請參閱14.1 建立行事曆使用者 LDAP 項目14.5.4.3 利用 Calendar Server 公用程式增加行事曆服務

如需有關增加目錄伺服器索引的資訊,請參閱 Directory Server 文件,位於:

http://docs.sun.com/coll/1316.1http://docs.sun.com/coll/1419.1

21.2 提昇 DWP 環境中的行事曆搜尋效能

當您處於 DWP 環境 (即行事曆資料庫分佈在多個後端伺服器上) 中時,搜尋行事曆資料庫中的行事曆可能會比較費時。先在 LDAP 項目中查找並直接找出行事曆常駐的 DWP 主機會較快。

本小節包含以下主題:

Procedure啟用行事曆搜尋以查看 LDAP

若要啟用行事曆搜尋以首先查看 LDAP 目錄,然後再查看行事曆資料庫,請執行以下步驟:

  1. 以具有配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至配置目錄 /etc/opt/SUNWics5/cal/config

  4. ics.conf 檔案中的 service.calendarsearch.ldap 參數設定為 "yes" (預設值),如下所示:

    service.calendarsearch.ldap="yes"

  5. 重新啟動行事曆服務,如下所示﹕

    start-cal


    備註 –

    如果您要允許匿名存取公開行事曆,建議您停用行事曆搜尋查看 LDAP。實際上,Communications Express 要求參數值為 “no”。


Procedure透過建立索引提昇搜尋效能

  1. 若要確定是否可以透過建立索引提昇行事曆搜尋效能,請嘗試以下 LDAP 指令:


    ldapsearch -b "base" "(&(icscalendarowned=*user*)
       (objectclass=icsCalendarUser))"

    其中 base 為 Calendar Server 的使用者和資源資料所在的目錄伺服器的 LDAP 基底 DN,user 為一般使用者可在搜尋對話方塊中輸入的值。

    測試表明,如果包含 60,000 個項目,在沒有為 icsCalendarOwned 建立索引的情況下,上述搜尋大約需要 50 到 55 秒鐘。而建立索引後,上述搜尋僅需大約 1 到 2 秒鐘。

  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.1http://docs.sun.com/coll/1419.1

21.3 透過停用萬用字元搜尋提昇行事曆搜尋效能

依預設,Calendar Server 中停用萬用字元搜尋。也就是說,當您使用圖形化使用者介面搜尋行事曆時,或者當您在自訂介面發出 search_calprops.wcap 時,它將搜尋與使用 WCAP 指令傳送的搜尋字串精確相符的內容。

如果您已透過對 ics.conf 檔案中的以下行取消註釋 (透過移除開頭的驚嘆號「!」) 啟用萬用字元搜尋,則可能會對效能起負面影響。

!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"

若要測試萬用字元搜尋對效能的影響,請在行首插入驚嘆號 (「!」) 以再次為其做註釋。

21.4 提昇 CLD 外掛程式的效能

系統必須先確定用於儲存使用者行事曆的後端機器,然後才能從行事曆資料庫中存取行事曆。為找到適當的後端機器,系統將搜尋使用者項目的 LDAP 目錄並挑選出 icsDWPHost 屬性。此搜尋很費時,並且每次存取行事曆資料時均必須執行此搜尋。每個使用者階段作業均會多次存取資料庫,因此要多次搜尋 LDAP。若要節省時間並增強效能,請透過編輯 ics.conf 檔案來啟用 CLD 快取記憶體,如下所示:

caldb.cld.cache.enable="yes"

LDAP 資料快取記憶體儲存使用者 ID 及其相關的 icsDWPHost 屬性。在搜尋使用者項目的 LDAP 之前,系統會檢查快取記憶體上是否有該使用者 ID。如果快取記憶體上有該使用者 ID,系統將從儲存的 icsDWPHost 屬性中挑選出後端主機名稱。如果快取記憶體中沒有該使用者 ID,系統將執行 LDAP 搜尋並將使用者 ID 與屬性複製到 CLD 快取記憶體中。以後,存取該使用者行事曆資料的速度將加快,因為系統現在可以在快取記憶體中找到該使用者 ID。

21.5 提昇 LDAP 資料快取記憶體的效能

啟用 LDAP 資料快取記憶體後,您可以使用 ics.conf 參數對其進行調校。請調整下表中的一個或多個參數:


備註 –

依預設,已啟用 LDAP 資料快取記憶體。您可以透過設定以下參數將其停用: local.ldap.cache.enable="no"


表 21–1 用於自訂 LDAP 資料快取記憶體的 ics.conf 參數

參數 

說明/值 

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.6 調校 LDAP SDK 快取記憶體

有一對控制項目在快取記憶體中的停留時間以及快取記憶體的大小的參數。

若要調校快取記憶體,請如下表所示編輯一個或多個參數。

表 21–2 用於配置 LDAP SDK 快取記憶體的 ics.conf 參數

參數 

說明和預設值 

service.ldapmemcachettl

目前未實作。您必須手動移除 ldap_cache 目錄的內容,然後重新啟動 Calendar Server。

如果 service.ldapmemcache"yes",則此參數用於設定快取項目的最大秒數。如果為 “0”,則對快取項目的時間沒有限制。預設為 "30"

service.ldapmemcachesize

如果 service.ldapmemcache"yes",則此參數用於設定快取記憶體將佔用的記憶體空間的最大數目 (以位元組為單位)。如果為 “0”,則快取記憶體無大小限制。預設為 “131072”

21.7 調校自動備份

您必須保持磁碟上備份的大小與所需之間的平衡以免超過可用磁碟空間。若要協助管理歸檔檔案備份與緊急備份佔用的磁碟空間,可以變更各種 ics.conf 參數的設定,這些參數決定您一次可保留的備份副本數量及觸發清除舊的副本的磁碟空間臨界值的位置。

有三種可以針對每個備份類型、歸檔檔案和緊急備份調整的參數類型

Calendar Server 在不超過磁碟臨界值的條件下在最多的可能天數內保持備份。因此,如果目前的備份使磁碟的使用率超過臨界值,系統將清除最舊的備份副本,並查看磁碟的使用率是否低於臨界值。系統會繼續清除舊的備份副本,直到符合以下任一情況:移除其他備份副本將導致磁碟上的備份數目小於最小備份副本數目,或磁碟空間的使用率低於臨界值。

因此,您可以使用臨界值參數管理備份使用的磁碟空間。相反,您也可以透過調整允許的磁碟空間和副本的大小來管理保持在磁碟上的備份數目。

下表列出了控制磁碟空間和保留在磁碟上的備份數目的 ics.conf 參數。

表 21–3 用於設定保持在磁碟上的備份的數目的 ics.conf 參數

ics.conf 參數

預設設定 

說明 

caldb.berkeleydb.hotbackup.mindays

緊急備份可保持在磁碟上的最少天數。 

caldb.berkeleydb.hotbackup.maxdays

緊急備份可保持在磁碟上的最多天數。 

caldb.berkeleydb.hotbackup.threshold

70 

用於緊急備份的磁碟空間百分比。當超過臨界值時,觸發清除舊的副本。 

caldb.berkeleydb.archive.mindays

歸檔備份可保持在磁碟上的最少天數。 

caldb.berkeleydb.archive.maxdays

歸檔備份可保持在磁碟上的最多天數。 

caldb.berkeleydb.archive.threshold

70 

用於歸檔檔案備份的磁碟空間百分比。當超過臨界值時,觸發清除舊的副本。 

21.8 使用跨多個 CPU 的負載平衡功能

依預設,Calendar Server 中會啟用負載平衡功能。Calendar Server 會使用以下演算法來完成負載平衡功能:程序會每 n 個連線接受一個連線,其中 n 是程序數目。

若要停用負載平衡功能,請將 service.http.loadbalancing 參數增加至 ics.conf 檔案,並將其設定為 "no"。然後重新啟動 Calendar Server,使變更生效。

21.9 控制為每個服務執行的程序數目

如果某台伺服器有多個 CPU,依預設 Calendar Server 會在這些 CPU 上分布 HTTP 服務 (cshttpd 程序) 和分散式資料庫服務 (csdwpd 程序)。

如果您想要控制為每個服務執行的程序數目,您可以編輯 service.http.numprocessesservice.dwp.numprocesses 參數。依預設,在安裝期間,這些參數設定為伺服器 CPU 的數目,但您可以重設這些值。例如,如果伺服器具有 8 個 CPU,但您希望 cshttpdcsdwpd 程序僅在 4 個 CPU 上執行,則將參數設定為:

service.http.numprocesses="4"
 service.dwp.numprocesses="4"

21.10 使用逾時值

本小節包含使用各種 ics.conf 參數的逾時值來調校 Calendar Server 效能的概念資訊及說明。

存在以下類型的逾時值﹕

如需有關編輯 ics.conf 參數的資訊,請參閱E.1 編輯 ics.conf 配置檔案

21.10.1 csadmind 的逾時值

下表說明 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 分鐘)。 

21.10.2 一般使用者的 HTTP 逾時值

下表說明 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 分鐘)。

21.10.3 GSE 佇列逾時值

以下 ics.conf 檔案參數指定在 Calendar Server 為內送工作掃描群組排程引擎 (Group Scheduling Engine, GSE) 佇列之前需要等待的時間 (以秒為單位):

gse.belowthresholdtimeout="3"

如果佇列中的工作多於所配置執行緒的最大數目,則最後一個執行緒將始終重新掃描工作佇列。因此,僅當工作數目小於所配置執行緒的最大數目時,此設定才能生效。

預設為 "3"。增大此數目會減少伺服器掃描佇列的頻率並提昇整體效能。但是,如果由於事件量的增加而使佇列變得過大,可以減少時間,以允許更快處理佇列。這可能會導致降低整體效能,但事件將會更快更新。

第 22 章 Calendar Server 6.3 軟體疑難排解

本章涵蓋如何設定記錄以及一些常見問題的解決方法。

本章包含以下主題:

22.1 開啟 Calendar Server 6.3 軟體的除錯資訊

本小節包含使用記錄及除錯對 Calendar Server 部署問題進行疑難排解的概念資訊及說明。

由於沒有一個可以將整個系統置於「除錯模式」的 ics.conf 參數,所以本小節說明一些獲得有用除錯資訊的方法:


備註 –

確定關閉不需要的多餘記錄和監視,否則將對效能起負面影響。


22.1.1 提昇記錄層級

使用下表中顯示的參數提昇記錄詳細度:

參數 

說明和預設值 

logfile.loglevel

設定為 DEBUG 以記錄所有層級,包括 CRITICALALERTERRORWARNINGNOTICEINFORMATION。此設定可套用於所有記錄。

22.1.2 啟用對 LDAP 快取記憶體的存取記錄

若要記錄對 LDAP 資料快取記憶體的所有存取情況並列印記錄 (報告),請設定下表中所顯示的 ics.conf 參數。

參數 

說明和預設值 

local.ldap.cache.stat.enable

指定是否在記錄檔中記錄對 LDAP 資料快取記憶體的存取情況並列印統計資料。預設為 “no” (無記錄的統計)。設定為 “yes” 以啟用對統計的記錄。

若要增強效能,請僅在除錯模式中使用此設定。 

local.ldap.cache.stat.interval

指定各統計資料報告寫入記錄檔的間隔時間 (以秒為單位)。預設為 “1800” 秒 (30 分鐘)。

此預設僅在記錄啟用時才處於作用中。縮短間隔可以協助您準確地確定問題所在。增加間隔將會減緩系統載入。 

22.1.3 清除 LDAP 快取記憶體

目前 Calendar Server 中沒有使 LDAP 快取記憶體資料過期的邏輯。您必須手動移除 ldap_cache 目錄的內容並重新啟動 Calendar Server。

Procedure清除 LDAP 快取記憶體

  1. 停止 Calendar Server。

  2. 移除 /var/opt/SUNWics5/csdb/ldap_cache 目錄中的所有檔案,但請勿移除 ldap_cache 目錄本身。

  3. 重新啟動 Calendar Server。

22.1.4 WCAP 指令及 HTTP 存取記錄

兩個讓除錯更容易的配置參數可以啟用對內送指令及 HTTP 存取的記錄。將其中一個參數或全部增加至 ics.conf 檔案,以啟動記錄:


注意 – 注意 –

記錄檔可以非常快速地增大,並填滿可用的磁碟空間。小心監視它們以避免發生問題。選擇在系統的低活動期間啟用這些指令來執行。如果在尖峰時刻執行,效能將大幅度下降。當完成疑難排解時,務必停用這兩個指令。


22.1.5 使用 Calendar Server 6.3 csstats 公用程式來監視系統

使用 csstats list 指令顯示在 counter.conf 檔案中定義的計數器物件的統計資訊。

如需有關 csstats 公用程式的更多資訊,請參閱附錄 DCalendar Server 指令行公用程式參照

22.2 LDAP 問題的疑難排解

本小節包含 LDAP 問題的疑難排解的概念資訊。

如果您是首次建立多個網域環境,則必須透過增加適當的網域、容器、使用者、群組和資源項目在 LDAP 中建立 DC 樹狀結構。如果使用 Calendar Server 公用程式 (例如 cscal) 時 DC 樹狀結構尚不存在,您可能會看到以下錯誤訊息:「Initialization failed .... exiting」。

確定您的 DC 樹狀結構在 DC 樹狀結構根目錄下至少包含一個 (預設) 網域。使用13.2 建立新的 Calendar Server 網域中的說明建立 DC 樹狀結構。

22.3 遷移公用程式的疑難排解

Calendar Server 提供了數個用於遷移行事曆資料庫和 LDAP 目錄的公用程式。

本小節包含以下主題:

22.3.1 呼叫技術支援之前所要執行的工作

通常,如果在使用遷移公用程式時遇到麻煩,您應該連絡技術支援。

在致電之前,請收集以下資訊:

22.3.2 遷移公用程式的位置

各遷移公用程式及其文件位於以下清單中所指定的位置:

模式遷移公用程式 (commdirmig)

此公用程式隨附於 Delegated Administrator,是一個可獨立安裝元件。它可將您的 LDAP 目錄從 Schema 1 遷移至 Schema 2。如需有關此公用程式的資訊,請參閱「Sun Java Communications Suite 5 Schema Migration Guide」

Calendar Server 6.2 至 6.3 遷移公用程式 csmigrate

在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。

Calendar Server 5 至 Calendar Server 6.2 遷移公用程式 (cs5migrate)

在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。

Calendar Server 多個網域資料庫準備公用程式 (csmig)

在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。

這個公用程式的文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式,其中包括疑難排解小節。

Calendar Server 非網域到多個網域遷移公用程式 (csvdmig)

在安裝軟體之後,可在 sbin 目錄中找到這個公用程式。

這個公用程式的文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式。使用這個公用程式為多個網域準備行事曆資料庫和 LDAP 目錄項目。


備註 –

務必先執行 csmig,再執行 csvdmig


Calendar Server 2 至 Calendar Server 6 遷移公用程式 (ics2migrate)

此公用程式與 Calendar Server 一同安裝。文件位於第 3 章, Calendar Server 6.3 的資料庫遷移公用程式。使用此公用程式遷移 Calendar Server 2 資料庫,以與 Calendar Server 5 相容。

Netscape Calendar Server 4 至 Calendar Server 5 遷移公用程式 (ncs4migrate)

此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意,因為來源資料庫中缺乏一致性。與許多手冊相同,此公用程式僅可從技術支援獲得。公用程式套裝軟體中包含相關文件。此公用程式可將 Netscape Calendar Server 4 遷移至 Calendar Server 5。這些遷移需要特別注意。通常需要對原始碼檔案執行許多工作,此公用程式才可以執行。可以考量使用專業服務協助您規劃遷移。

22.4 Calendar Server 的非資料庫疑難排解

本小節包括多種用於非資料庫問題的疑難排解方法。

本小節包括以下主題:


提示 –

此外,在 SSL 章節中還包含 SSL 疑難排解小節:

7.2 Calendar Server 6.3 軟體 SSL 疑難排解


22.4.1 某個 cshttpd 程序接受太多的連線並佔用 100% 的 CPU 時間

如果某個 cshttpd 接受太多的連線並佔用 100% 的 CPU 時間,您可能已停用負載平衡。若要重新啟用它,請將 ics.conf 參數 service.http.loadbalancing 的值變更為 "yes"

Procedure修正 start-cal 問題

如果發出 start-cal 時未能啟動所有的行事曆服務,則必須先停止啟動的服務,然後再重新啟動。例如,如果已啟動 enpdcsnotifydcsadmind,但未啟動 cshttpd,則必須停止 enpdcsnotifydcsadmind

若要啟動行事曆服務,請:

  1. 以具有配置權限的管理員身份登入。

  2. 發出 stop-cal 指令。

  3. 如果 stop-cal 指令無法停止所有 Calendar Server 服務,則可能有一些子程序仍在執行。若要處理此情況,請參閱22.4.2 修正 stop-cal 問題

  4. 一旦確定已停止所有 Calendar Server 程序,請使用 start-cal 指令啟動所有服務。例如:

    cal-svr-base/SUNWics5/cal/sbin/start-cal

22.4.2 修正 stop-cal 問題

本小節包含修正 stop-cal 問題的一些概念資訊及說明。

關閉時需要考量以下兩個不同的問題:

Procedure停止子程序

發出 stop-cal 後,很可能未停止某些子程序。例如,stop-cal 可能停止了 cshttpd 父系程序,但未停止任何 cshttpd 子程序。在此情況下,您必須使用以下程序分別停止其餘 Calendar Server 程序:

  1. 以對 Calendar Server 執行時所在的系統具有管理權限的使用者身份登入。

  2. 透過為每種服務輸入 ps 指令,確定其餘 Calendar Server 程序的程序 ID (PID):

    ps -elf | grep cs-process

    其中 cs-processenpdcsnotifydcsdwpdcsadmindcshttpd。例如:

    ps -elf | grep cshttpd

  3. 使用仍在執行的各程序的 PID,輸入 kill -15 指令強制結束該程序。例如:kill -15 9875

  4. 再次輸入各 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 指令傳回正在執行的執行緒清單,而非程序清單。尚無可以僅顯示程序的已知解決方法。


Procedure不正確關閉後回復

如果 Calendar Server 未正確關閉,請執行以下步驟:

  1. 執行先前程序22.4.2 修正 stop-cal 問題中的步驟。

  2. 手動刪除 LDAP 資料快取記憶體資料庫目錄中的所有檔案。

    這些剩餘檔案可能會毀壞資料庫。若要刪除這些檔案,請:

    1. 移至 LDAP 資料快取記憶體目錄。

      預設為 /opt/SUNWics5/csdb/ldap_cache,但是請使用 ics.conf 檔案中的 local.ldap.cache.homedir.path 參數所指向的目錄。

    2. 移除目錄中的所有檔案。

      例如:rm *.*

    3. 檢查以確定已移除所有檔案。

      例如:ls

  3. 重新啟動 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」

22.4.3 無法連線至後端伺服器

  1. 對後端伺服器執行 ping 作業以檢查它是否有回應。

    如果沒有回應,請判斷失敗的原因。當再次正常運作時,請繼續進行本作業中的下一個步驟。

  2. 清除 CLD 快取記憶體。請參閱12.5 清除 Calendar Server 版本 6.3 中的 CLD 快取記憶體

    如果您在使用 CLD 快取記憶體選項並且已更新 ics.conf 參數的伺服器名稱,則應清除 CLD 快取記憶體以移除伺服器名稱。CLD 快取記憶體中的過期項目會妨礙前端伺服器建立與正確後端伺服器之間的連線,或會導致某個行事曆在被移動後,Calendar Server 無法找到該行事曆。

  3. 使用 stop-cal 指令停止伺服器。

  4. 使用 start-cal 重新啟動 Calendar Server。

22.4.4 找不到行事曆

如果您在使用 CLD 快取記憶體選項並且已將一個或多個行事曆移至其他後端伺服器上 (或者變更了後端伺服器的名稱),可能在新的伺服器上看不到行事曆。

    如果發生這種情況,請執行以下步驟:

  1. 清除 CLD 快取記憶體。請參閱12.5 清除 Calendar Server 版本 6.3 中的 CLD 快取記憶體

    如果您將一個或多個行事曆移動至其他後端伺服器上,則 CLD 快取記憶體將會過期。若要更新快取記憶體,您需要將其清除以便重建。

  2. 如果失敗,請確認您已遵循正確程序來移動行事曆。這個資訊位於:

    15.6 管理使用者行事曆

    然後清除快取記憶體。

22.4.5 無法在後端機器上建立行事曆

若嘗試在指定的後端機器上建立行事曆,並收到以下錯誤訊息:[無效的 DWP 主機伺服器],它表示以下兩件事之一。可能是您的伺服器配置錯誤,或已將行事曆所有者指定給其他後端伺服器。

本小節包含有關如何修正這兩個問題的資訊:

22.4.5.1 後端機器配置錯誤

ics.conf 檔案中查看有問題的後端伺服器。

確認存在下列設定:

service.dwp.enable = "yes"
caldb.cld.type = "directory"
local.hostname = "back-end hostname"

22.4.5.2 將行事曆所有者指定給其他後端機器

查看使用者的 LDAP 項目並檢查是否存在 icsDWPHost 屬性。icsDWPHost 的值必須符合您正在其中嘗試建立行事曆的後端伺服器名稱。您無法在其他後端伺服器上建立這個使用者的行事曆。

22.4.6 嘗試使用代理伺服器認證登入時,系統會提示您 [未授權]

本小節包含失敗的可能原因的建議。遵循建議的步驟並重試登入。

  1. 執行以下一或多個步驟,以修正這個錯誤:

    • 驗證 service.http.allowadminproxy 是否已設定為 “yes”

    • 驗證 admin-user 是否具有 Calendar Server 管理員權限。

    • 驗證 admin-password 是否正確。

    • 驗證 calendar-user 是否為有效的 Calendar Server 使用者。

  2. 重試登入。

22.4.7 未正確完成的搜尋的疑難排解

本小節包含對未正確完成的搜尋進行疑難排解的概念資訊及說明。

LDAP 目錄伺服器配置中的 nsslapd-sizelimitnsLookthroughLimit 屬性的值必須足夠大,以便搜尋可以正確完成。如果 nsSizeLimit 的值不夠大,可能會發生截斷,並且不會顯示任何結果。如果 nsLookthroughLimit 的值不夠大,搜尋可能無法完成。

本小節包含以下主題:

Procedure確定限制屬性是否有適當的值

  1. 若要確定這些屬性是否已設定為適當的值,請嘗試以下指令:

    ldapsearch -b "base" "(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"

    其中 base 為 Calendar Server 的使用者和資源資料所在的目錄伺服器的 LDAP 基底 DN,而 user 為一般使用者可在使用者介面中搜尋對話方塊中輸入的值。

  2. 如果 LDAP 伺服器傳回錯誤,可能是 nsSizeLimitnsLookthroughLimit 參數的值不夠大。

Procedure將限制屬性設定為適當的值

這些屬性的 DN 為:

dn: cn=config,cn=ldbm databases,cn=plug ins,cn=config

  1. 使用 ldapmodify 動態設定 nsLookthroughLimit 的值。

    您不必停止再重新啟動 Directory Server 以變更此屬性。

    預設值為 5000。如果搜尋沒有報告結果,您可能要增加此值。但是,這可能會減緩 LDAP 伺服器。

    如果可能,請將限制設定為 -1,從而不加任何限制。但是,請謹慎執行此作業,因為該作業可能會導致系統當機。

  2. 如果您要將 nsslapd-sizelimit 設定為更高的值,則必須執行以下步驟:

    1. 停止 Directory Server。

    2. 編輯 dse.ldif 檔案。

    3. 重新啟動 Directory Server。


      備註 –

      如需有關如何使用 ldapmodify 和編輯 dse.ldif 檔案的資訊,請參閱 Directory Server 文件,位於:

      http://docs.sun.com/coll/1316.1http://docs.sun.com/coll/1419.1


22.5 處理 Calendar Server 資料庫問題

本小節涵蓋各種包括 Calendar Server (Berkeley 資料庫) 資料庫的問題:

本小節包含以下主題:

22.5.1 尋找 Berkeley 資料庫工具

您將要執行的許多疑難排解步驟要求已存取 Berkeley 資料庫公用程式。儘管 Calendar Server 隨附有這些公用程式的某個版本,但其不受支援。您可能希望直接從 Sleepycat Software (http://www.oracle.com/database/berkeley-db/index.html) 獲得更多資訊。

本小節包含以下主題:

22.5.1.1 存取 Berkeley 資料庫公用程式

設定並匯出 LD_LIBRARY_PATH 環境變數,以反映以下目錄:

cal-svr-base/SUNWics5/cal/tools/unsupported/bin/

22.5.1.2 可用工具清單

下表列出了一些常用 Berkeley 資料庫工具 (公用程式)。

Berkeley 資料庫工具 

說明 

db_archive

將不再使用的記錄檔之路徑名稱寫入標準輸出 (每行一個路徑名稱)。 

db_checkpoint

常駐程式程序,監視資料庫記錄並定期呼叫檢查點常式檢查資料庫記錄。 

db_deadlock

遍歷資料庫環境鎖定區域並在每次偵測到死結或已逾時的鎖定請求時中斷鎖定請求。 

db_dump

使用 db_load 公用程式可以識別的平面文字格式,將指定的檔案寫入標準輸出。

db_load

從標準輸入中讀取檔案並將其載入指定的資料庫檔案。如果檔案不存在,該工具將建立它。 

db_printlog

除錯公用程式以人類可讀格式傾印記錄檔。 

db_recover

應用程式、資料庫或系統出現意外故障後,將資料庫復原為與原來一致的狀態。 

db_stat

顯示資料庫環境的統計。 

db_verify

驗證一個或多個檔案的結構及檔案包含的資料庫。 

Procedure偵測與修正資料庫死結

如果 Berkeley 資料庫處於死結狀態,則必須重設資料庫。儘早偵測此情況是很重要的。

若要使系統能定期檢查資料庫以偵測死結狀態並通知管理員,請:

  1. 以擁有變更配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 移至 /etc/opt/SUNWics5/cal/config 目錄。

  4. 透過複製及重新命名,儲存舊的 ics.conf 檔案。

  5. 如有必要,編輯 ics.conf 以具有以下值:

    local.caldb.deadlock.autodetect=”yes”


    備註 –

    此參數設定為 “yes” 時,啟動監視鎖定區域的 db_deadlock 常駐程式。


22.5.2 偵測資料庫損毀

可導致行事曆資料庫損毀的原因有以下多種:系統資源競爭、硬體故障、應用程式錯誤、資料庫故障,當然,還有人為的錯誤。本小節說明如何偵測行事曆資料庫損毀:

22.5.2.1 資料庫損毀基本

沒人能保證資料庫不受到損毀。但是可以將資料丟失和作業當機時間降至最低。密切監視資料庫和行事曆伺服器是儘早偵測損毀的關鍵。經常並完整地備份是從損毀 (只要發現) 中恢復的關鍵。

以下是行事曆資料庫可能受到的損毀的兩個層級:

22.5.2.2 監視記錄檔

監視 Calendar Server 記錄檔 (包括警示記錄),以發現任何可能指出資料庫損毀的錯誤訊息。

您應定期檢查記錄檔,瞭解是否存在 ALERTCRITICALERROR 以及 WARNING 層級的錯誤,一旦發現錯誤,應執行 Calendar Server 來檢查事件,以找出可能的問題。Calendar Server 正常作業期間會產生 NOTICEINFORMATION 層級的記錄事件,這些事件可協助您監視伺服器狀態。

切勿移除資料庫目錄中的任何作業事件記錄檔。業事件記錄檔包含作業事件更新 (增加、修改或刪除),移除它們可能會損毀行事曆資料庫並且無法回復。


備註 –

當您請求 Calendar Server 技術支援時,可能需要提供記錄檔,以協助解決問題。


Procedure檢查行事曆資料庫是否損毀

使用 check 指令掃描行事曆資料庫,以檢查行事曆中 (包括行事曆特性 [calprops]、事件和待辦事項 [工作]) 是否有損毀。如果 check 指令找到無法解決的不一致情況,它會在輸出中報告該情況。

check 指令不檢查警示或群組排程引擎 (Group Scheduling Engine, GSE) 資料庫中是否發生損毀。

  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. Calendar Server 可以執行,也可以停止;然而,如果可能,請停止 Calendar Server。

  3. 如果您尚未建立行事曆資料庫的副本,請建立副本。

    僅複製資料庫 (.db) 檔案。您無需複製任何共用 (__db.*) 檔案或記錄 (log.*) 檔案。

  4. 移至 cal-svr-base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入以下作為預設目錄:

    cd /opt/SUNWics5/cal/sbin

  5. 在行事曆資料庫的副本中執行 check 指令:

    ./csdb check dbdir /tmp/check.out

    如果未指定 dbdircheck 將使用目前目錄中的資料庫。

    check 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案 (如範例中所示)。

  6. check 完成後,請複查輸出檔案。如果您的資料庫已毀壞,請執行 rebuild 指令。

    (請參閱22.5.6 重建已損毀的行事曆資料庫。)

22.5.3 處理作業事件記錄檔突然變得非常大及非常多的問題

您的自動清除配置設定有可能未適當地說明一般使用者偏好的用戶端使用者介面。突然出現大量的大型作業事件記錄檔可能只是長時間延遲清除刪除記錄所導致。如果是有目的地進行這個延遲,以容納 Connector for Microsoft Outlook 或 Sync Tool 的使用者,則出現大型及大量的作業事件記錄檔是預期中的事。不需要採取進一步的動作。最終系統將恢復正常。不過,如果您的一般使用者是使用 Communications Express 用戶端,則將自動清除設定還原為它們的預設值應該可以修正問題。

22.5.4 防止服務在資料庫發生損毀時中斷 (唯讀模式)

本小節包括如何在回復模式中保持已損毀的資料庫可存取,並包含以下主題:

22.5.4.1 使用唯讀模式

遇到資料庫損毀時,防止服務中斷的一個方法是將資料庫置於唯讀模式。此模式允許一般使用者讀取資料庫項目,但不允許對其進行增加、修改或刪除。如果一般使用者嘗試增加、修改或刪除任何行事曆資料,系統將提示錯誤訊息。此外,當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。


備註 –

如果資料庫已毀壞到不可被讀取的程度,則必須將服務中斷足夠長的時間以復原備份。復原備份的最快方法是具有完好的緊急備份。請參閱22.5.8.1 復原之前


Procedure將資料庫置於唯讀模式

  1. 以擁有變更配置權限的管理員身份登入。

  2. 透過發出 stop-cal 指令來停止 Calendar Server 服務。

  3. 在指令行移至 ics.conf 所在的目錄︰

    cd /etc/opt/SUNWics5/config

  4. 指定行事曆的唯讀模式,方法是設定如下的參數:

    caldb.berkeleydb.readonly=”yes”

  5. 發出 start-cal 指令重新啟動 Calendar Server。

    cal-svr-base/SUNWics5/cal/sbin/start-cal

    您必須重新啟動服務,以使 ics.conf 變更生效。

22.5.5 處理常見資料庫故障

本小節包括一些常見資料庫故障以及一些建議的補救方法。本小節包含以下主題:

Procedure在啟動期間 csadmind 不會啟動或當機

由於 csadmind 是同時處理群組排程引擎 (GSE) 和警示派送引擎的服務,因此這種情況可能是由 GSE 佇列或警示佇列的違例項目導致的。

補救方法:

  1. 如果 csadmind 未執行,請立即發出 stop-cal 指令。

    將行事曆伺服器置於執行狀態可能會導致作業事件記錄累積,從而進一步損毀資料庫,並且可能要花更長的時間使作業事件記錄檔符合資料庫。

  2. 驗證是否已停止所有 Calendar Server 程序。

    如需有關如何驗證是否已停止所有程序的說明,請參閱停止子程序

  3. 再次嘗試重新啟動 csadmind,方法是發出 start-cal -csadmind 指令。

    如果順利啟動,執行以下步驟確定兩個佇列正在運作:

    1. 使用 csschedule 檢查 GSE 佇列。

    2. 使用 dbrig 檢查警示佇列。

      如需有關執行 csscheduledbrig 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照

  4. 如果 csadmind 由於傾印而當機,請分析 pstack

    如果您在追蹤中發現任何與 GSE 有關的功能 (它們中有字母 GSE),請查看 GSE 佇列的第一個項目和事件資料庫中的參照項目。多數時候,GSE 項目中涉及的事件是違例項目。若要修正此問題,請:

    1. 使用 csschedule 移除 GSE 項目。

    2. 使用 cscomponents 從資料庫中移除違例事件。

      如需有關執行 csschedulecscomponents 的說明,請參閱附錄 DCalendar Server 指令行公用程式參照

  5. 如果項目沒有被損毀,可能是行事曆伺服器無法處理的特殊情況。

    執行以下步驟:

    1. 拍攝已損毀的資料庫的行事曆環境快照,並連絡客戶支援。

      若要建立環境備份,請:

      1. 使用 db_checkpoint 公用程式,位於:

        cal-svr-base/SUNWics5/cal/tools/unsupported/bin/db_checkpoint

      2. 執行 db_archive -s

        使用 -s 選項識別所有資料庫檔案,並將其複製到可移動的媒體 (例如 CD、DVD 或磁帶)。

      3. 執行 db_archive -l

        使用 -l 選項識別所有記錄檔,並將未套用的記錄檔複製到可移動媒體裝置。

    2. 若要避免服務中斷,請將行事曆資料庫暫時置於唯讀狀態,並復原至緊急備份副本。

      • 將行事曆資料庫暫時置於唯讀狀態可防止任何增加、修改或刪除作業事件的發生。一般使用者增加、修改或刪除任何行事曆資料時都會收到錯誤訊息。當資料庫處於唯讀模式時,增加、修改或刪除行事曆事件和待辦事項的管理員工具將不可用。

        若要將行事曆資料庫置於唯讀模式,請編輯 ics.conf 檔案並將以下參數設定為 “yes”,如下所示:

        caldb.berkeleydb.readonly=”yes”

      • 使用22.5.8 復原自動備份副本中的說明復原至緊急備份副本。

        配置並啟用 csstored 後,在幾分鐘內即成為最新的緊急備份變為可用。您應經常驗證緊急備份副本以確定其也未被毀壞。(執行 db_verify。)

  6. 如果其他所有方法均失敗,請執行傾印和重新載入程序以查看其是否能挽救資料庫。

    22.5.7 使用傾印和載入程序來回復行事曆資料庫中說明了這個程序。

Procedure服務當機並且一般使用者無法連線 – 孤立鎖定

這種情況可能是由控制執行緒導致的,該執行緒鎖定了 Berkeley DB 資料庫頁面,並在退出時未釋放鎖定。若要確認問題,請在 cshttpd 程序上執行 pstack,並執行 csadmind。(pstack 是標準的 UNIX 公用程式,位於:/usr/bin/pstack)。該公用程式將顯示等待以獲得鎖定的執行緒。

若要修正此問題,請重新啟動 Calendar Server,如下所示:

  1. 移至 start-cal 所在的目錄。

    cd cal-svr-base/SUNWics5/cal/sbin

  2. 發出 start-cal 指令。

    ./start-cal

Procedurecsdb rebuild 無法完成 – 資料庫迴圈

資料庫迴圈通常是由資料庫檔案中的損毀導致的。由於是資料庫損毀,故無法復原。有數個選項:

  1. 復原至緊急備份。

    如果損毀是最近發生的,則可使用一個緊急備份。

  2. 使用突變歸檔回復程序。

    如需建議使用的程序,請參閱22.5.8 復原自動備份副本

  3. 使用傾印和重新載入程序,22.5.7 使用傾印和載入程序來回復行事曆資料庫

22.5.6 重建已損毀的行事曆資料庫

本小節說明如何使用 csdb rebuild 指令,包含以下主題:

22.5.6.1 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 處理完那些項目。

Procedure重建行事曆資料庫

  1. 以具有安裝 Calendar Server 的系統之管理權限的使用者身份登入。

  2. 停止 Calendar Server。

  3. 建立行事曆資料庫副本,並將行事曆資料庫置於 /tmp/db 目錄中。

    複製資料庫 (.db) 檔案和記錄 (log.*) 檔。您無需複製任何共用 (__db.*) 檔案。

  4. 移至 cal-svr-base/SUNWics5/cal/sbin 目錄。

    例如,在 Solaris 作業系統上,輸入以下作為預設目錄:

    cd /opt/SUNWics5/cal/sbin


    備註 –

    如果 sbin 目錄的磁碟空間不足,請在其他目錄中執行 rebuild 指令。


  5. 在行事曆資料庫的副本中執行 rebuild 指令:

    ./csdb rebuild /tmp/db /tmp/

    如果未指定資料庫路徑,rebuild 將使用目前的目錄。/tmp/ 參數為重建資料庫指定目標目錄。

    若還要重建 GSE 資料庫,請包含 -g 選項。

    rebuild 指令可產生大量資訊,因此請考量將所有輸出 (包括 stdoutstderr) 重新導向至一個檔案。


    備註 –

    請始終使用最新的備份複本重建您的行事曆資料庫。

    然而,如果您的資料大量遺失,而您已經定期備份了資料庫並有多個複本可用,請從最新的複本到最舊的複本進行重建。(唯一的缺點是已刪除的行事曆元件將重新出現在重建資料庫中)。

    例如,如果您有三組備份行事曆資料庫檔案,分別在目錄 db_0601db_0615db_0629 中,請按以下序列執行 rebuild 指令:


    ./csdb rebuild db_0629 
    ./csdb rebuild db_0615 
    ./csdb rebuild db_0601

    然後 rebuild 指令會將重建資料庫寫入 cal-svr-base/SUNWics5/cal/sbin/rebuild_db 目錄。


  6. rebuild 完成後,請複查 rebuild.out 檔案中的輸出。

    如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt
  7. 驗證在先前步驟中的重建成功之後,請從 rebuild_db 目錄將重建資料庫 (.db) 檔案複製到您的生產資料庫。

  8. 如果您有任何已毀壞資料庫的共用 (__db.*) 檔案或記錄 (log.*) 檔,請將其移至其他目錄。

  9. 重新啟動 Calendar Server。

22.5.6.2 重建輸出範例

以下範例顯示指令及其產生的輸出:


# ./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
            

備註 –

前面的輸出範例顯示事件資料庫和待辦事項資料庫分別被掃描了兩遍。這不是錯誤。掃描第一遍以驗證行事曆特性資料庫中的資訊,然後再掃描一遍以確定行事曆特性資料庫可存取。


22.5.7 使用傾印和載入程序來回復行事曆資料庫

本小節包含以下主題:

22.5.7.1 傾印和載入簡介

使用傾印和載入程序以嘗試復原已損毀的資料庫。傾印和載入程序使用 Berkeley 資料庫 db_dumpdb_load 公用程式,Calendar Server 在以下目錄中提供這些公用程式:

cal-svr-base/SUNWics5/cal/tools/unsupported/bin

db_dump 公用程式使用與 db_load 公用程式相容的格式,來讀取資料庫檔案並將資料庫項目寫入輸出檔案。

如需有關 db_dumpdb_load 公用程式的文件,請參閱 Sleepycat Software 網站:

http://www.sleepycat.com/docs/utility/index.html

使用 db_dumpdb_load 公用程式回復資料庫成功與否取決於資料庫的損毀程度。在成功地回復資料庫之前,您可能需要嘗試多個 db_dump 選項。但是,如果您的資料庫嚴重毀壞,回復也許是不可能的,您可能需要復原至資料庫的最後一個完好的緊急備份或歸檔備份。


備註 –

在執行傾印和載入程序之前,行事曆資料庫必須為 Berkeley DB 3.2.9 版,或更高版本。如果您的版本是舊版,請首先執行 cs5migrate 公用程式以對您的行事曆資料庫進行升級。

如需 cs5migrate 的最新版本,請致電 Sun 技術支援。


Procedure執行傾印和載入程序

  1. 以執行 Calendar Server 的使用者與群組 (例如 icsusericsgroup) 身份登入,或以超級使用者 (root) 身份登入。

  2. 如有必要,請停止 Calendar Server。

  3. 使用公用程式 (例如 csbackup、Sun StorEdge Enterprise BackupTM 軟體或 Legato Networker®) 備份已毀壞的資料庫。

    如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料

  4. 使用 db_dump 公用程式傾印每個已毀壞的資料庫檔案。

    資料庫檔案為 ics50calprops.dbics50journals.dbics50alarms.dbics50events.dbics50todos.dbics50gse.db

    請依次使用以下選項執行 db_dump,直到已回復資料庫 (或直到您確定無法回復資料庫) 為止:

    • No 選項,用於次要資料庫損毀。

    • -r 選項,用於中度資料庫損毀。

    • -r 選項,用於嚴重資料庫損毀。-R 選項從已毀壞的資料庫中傾印的資料要比 -r 選項多,包括部分已刪除的記錄。

      例如,若要以 -r 選項執行 db_dump

      db_dump -r ics50events.db \> ics50events.db.txt

  5. 使用 db_load 公用程式將輸出檔案載入至新的資料庫檔案。

    例如:

    db_load new.ics50events.db < ics50events.db.txt

    如果 db_load 報告的鍵值或資料項目為奇數,請編輯 db_dump 輸出檔案,並移除奇數鍵值或資料項目。然後再次執行 db_load

  6. 對其他已毀壞的資料庫檔案重複前面的兩個步驟。

    亦即對其他已毀壞的資料庫檔案執行 db_dump

  7. 使用 csdb rebuild 指令重建回復的資料庫檔案,如22.5.6 重建已損毀的行事曆資料庫中所述。

    rebuild 完成後,請複查輸出檔案中的輸出。如果重建成功,rebuild.out 檔案中的最後一行應為:


    Calendar database has been rebuilt

    如果 csdb rebuild 指令未成功,請使用下一個 db_dump 選項 (-r-R) 傾印資料庫。

    如果 db_dump -R 選項無法回復已毀壞的資料庫,請連絡 Sun Microsystems 技術支援或銷售客戶代表,以尋求援助。同時,您可能需要復原至您資料庫的最後一個完好備份。

22.5.8 復原自動備份副本

如果您已使用第 9 章, 配置自動備份中所述的自動備份功能,則可以在即時資料庫毀壞時使用緊急備份副本。

本小節包括如何復原兩種不同的自動備份:

22.5.8.1 復原之前

復原備份之前,請確定您已經完成以下作業:

Procedure復原緊急備份

即時資料庫被毀壞時,應首先選擇緊急備份。若要復原緊急備份,請執行以下步驟:

  1. 識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。

  2. 關閉開啟以備寫入的記錄。它包含最新作業事件。

  3. 建立新的 (回復) 目錄。

  4. 將目前的緊急備份副本複製到新的回復資料庫目錄中。

  5. 將已毀壞的即時資料庫目錄中的 log.* 檔案複製到新的回復資料庫目錄中。

  6. 如果您保留了資料庫的歸檔檔案副本,請將尚未套用於即時資料庫的記錄複製到歸檔目錄,這樣您的歸檔備份副本就完整了。

  7. 以針對新的回復資料庫指定的 -c -h 選項執行 db_recover

    例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:

    db_recover -c -h recoverydb

  8. log.* 檔案保留在新的回復目錄中。

    db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求保留這些記錄檔。

  9. 對新的回復目錄中的資料庫檔案執行 db_verify。若要執行 db_verify

    1. 使用以下指令停止 Calendar Server。

      cd /opt/SUNWics5/cal/sbin

      ./stop-cal

    2. 使用以下指令建立 Calendar Server 資料庫 (csdb) 的另一個副本。

      cp -Rp /var/opt/SUNWics5/csdb /var/opt/SUNWics5/csdb.db_verify

    3. 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
      
  10. 對新的回復目錄執行 csdb -v list

  11. 如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。

  12. 將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。

    在拍攝下個常規快照之前,所有新記錄將被套用於此副本。

  13. 啟動 CalendarServer。

  14. 如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未毀壞的更舊的緊急備份:

    1. 向後查找您的緊急備份,依次在每個緊急備份上執行 db_verifycsdb -v list 來尋找未毀壞的最新副本。

    2. 通過的第一個緊急備份可以被復原至即時資料庫目錄。

      使用未使用的緊急備份替代已毀壞的即時資料庫,如復原緊急備份中所述。(請務必首先閱讀22.5.8.1 復原之前。)

    3. 如果無緊急備份可用且您沒有可嘗試的歸檔備份,請致電技術支援。如果您有歸檔備份,請遵照復原歸檔備份之後的程序。(另請參閱22.5.8.1 復原之前。)

Procedure復原歸檔備份

如果您沒有未損毀的緊急備份,但有歸檔備份及其作業事件記錄,則可以透過執行以下步驟復原已歸檔資料庫的最新未損毀版本:

  1. 識別所有未套用的或開啟以備在已損毀的即時資料庫目錄中寫入的記錄檔。

  2. 關閉開啟以備寫入的記錄。它包含最新作業事件。

  3. 建立新的 (回復) 目錄。

  4. 將最新的歸檔檔案副本及其記錄檔複製到新的回復資料庫目錄。

  5. 將已毀壞的即時資料庫目錄中的任何未套用的 log.* 檔案複製到新的回復資料庫目錄中。

  6. 以針對新的回復資料庫指定的 -c-h 選項執行 db_recover

    例如,如果新的回復目錄名為 recoverydb,則指令將如下所示:

    db_recover -c -h recoverydb

  7. log.* 檔案保留在新的回復目錄中。

    db_recover 程式將記錄檔套用於新的回復資料庫,但是從 4.2 版開始,Berkeley DB 要求仍舊將這些記錄檔保留在此處。

  8. 對新的回復目錄中的資料庫檔案執行 db_verify

    復原緊急備份程序中的步驟說明如何執行 db_verify

  9. 對新的回復目錄執行 csdb -v list

  10. 如果新的回復目錄通過了前面所有三個回復步驟,請用新的回復資料庫替代舊的已損毀的即時資料庫。

  11. 將新的即時資料庫複製到緊急備份目錄中,以作為新的快照執行。

  12. 啟動 CalendarServer。

  13. 如果新的回復目錄在任何一個步驟中失敗,請按照如下說明識別未損毀的更舊的歸檔備份:

    1. 向後執行歸檔備份副本,透過依次對每一個歸檔備份副本執行以下三個回復程式以尋找未損毀的最新副本:db_recover -c -hdb_verifycsdb -v list

    2. 通過的第一個歸檔檔案副本可以被復原至即時資料庫目錄。

      使用未使用的歸檔備份替代已毀壞的即時資料庫,如復原歸檔備份中所述。

    3. 如果您的歸檔備份都不可用,請致電技術支援。

22.5.9 修復自訂備份程序檔

本小節包含以下主題:

22.5.9.1 使用動態式庫編譯的 Berkeley 工具

如果您已使用 Berkeley 資料庫工具 (例如 db_recover) 建立自訂備份程序檔,則可能會發現升級至 Calendar Server 後,該程序檔無法再工作。其原因是:舊版 Calendar Server 使用靜態式庫編譯工具。現在使用動態程式庫 (libdb-4.2.so) 編譯工具。

22.5.9.2 修復自訂備份程序檔

若要將現有的自訂程序檔與新的動態式庫一同使用,請按如下所示設定以下全域變數:

LD_LIBRARY_PATH=libdb-4.2.so