Sun Java System Calendar Server 6 2005Q4 管理指南

csmig 遷移步驟

安裝和配置 Calendar Server 6 之後,您必須執行 csmig 以遷移現有 Calendar Server 和 LDAP 資料。要 LDAP CLD 外掛程式正常作業,必須遷移 LDAP 資料。使用 csmig 遷移行事曆資料時,執行以下步驟:

Procedure使用 csmig 的高階步驟

步驟
  1. 使用 comm_dssetup.pl 配置 Directory Server。

    如果您尚未使用 comm_dssetup.pl 為 LDAP 屬性建立索引,請在此時執行此作業。這將大大提昇 LDAP 資料遷移的效能。

  2. 使用展示伺服器 (非生產伺服器) 執行模擬測試。

    模擬測試會報告 csmig 在實際遷移期間將執行的作業,但不會遷移任何資料。在模擬測試之後,實際遷移之前,請修正所有錯誤,並決定處理任何未解決的行事曆的計劃。

    如需有關如何執行模擬測試的說明,請參閱csmig 遷移步驟

  3. 遷移生產資料

    生產執行期間,csmig 會遷移行事曆資料庫 (.db 檔案) 和 LDAP 資料 (使用者和群組喜好設定資料)、icsSubscribedicsCalendaricsCalendarOwnedicsFreeBusyicsSetuid (對於資源行事曆)。遷移之後,所有行事曆資源都會建立一個 LDAP 項目。

    如需有關如何遷移生產資料的說明,請參閱csmig 遷移步驟

Procedure執行模擬測試

步驟
  1. 在展示伺服器上安裝 Calendar Server 6 (如有必要)。

  2. 將行事曆資料庫的快照複製到展示伺服器中。

  3. 透過執行以下工作在展示伺服器上模仿生產 LDAP 環境:

    • 安裝 Directory Server。

    • 在此伺服器上安裝 LDAP 資料庫的快照。

  4. 執行 comm_dssetup.pl 以配置展示 Directory Server。

  5. 執行 csconfigurator.sh 以配置展示 Calendar Server。

  6. icsuser 的身份登入 (或者,如果不同,以配置期間指定的 Calendar Server 執行階段使用者 ID 的身份登入)。如果您以超級使用者 (root) 的身份執行 csmig,則可能需要重設遷移檔案的權限。

  7. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

  8. 執行 csdb check 指令以檢查資料庫是否有損毀。如果指示資料庫已毀壞,請執行 csdb rebuild 指令以重建資料庫。

  9. 考量為不具有所有者的使用者行事曆建立 catchall calid。例如,以下指令將建立 calid orphan 的使用者:


    ./csuser -g orphan -s adminuser -y password -l en -c orphan create orphan
  10. 使用 stop-cal 指令停止 Calendar Server (如有必要)。

    cal_svr_base/SUNWics5/cal/sbin/stop-cal

  11. 使用 dryrun 選項執行 csmig。例如,您可以輸入︰

    ./csmig -b sesta.com -o csmig.out -e csmig.errors
     -m csmig.map -c orphan -r calmaster dryrun

    此指令將不具有所有者的使用者行事曆 (無主行事曆) 指定給所有者 orphan,將不具有所有者的資源行事曆指定給所有者 calmaster

  12. 檢查輸出對映檔案 (csmig.map)。對映檔案列出 LDAP 模式中需要更新的項目。

  13. 檢查輸出檔案、對映檔案與錯誤檔案。解決您發現的所有 LDAP 問題或錯誤。在實際遷移之前,決定如何處理所有未解決的行事曆。有以下選項可供選擇:

    • 在遷移之前,刪除所有不需要的行事曆。

    • 為所有未解決的行事曆指定所有者。

    • 在遷移期間,允許 csmig 使用 -c-r 選項為行事曆指定所有者。

  14. 執行 csmig 以遷移展示行事曆資料庫。

    例如,以下指令可將行事曆資料庫遷移至 /var/opt/SUNWics5/testcsdb/ 目錄:

    ./csmig -t /var/opt/SUNWics5/testcsdb/ -b sesta.com 
    -o csmig.out -e csmig.errors -m csmig.map -c orphan 
    -r calmaster migrate
  15. 完成測試遷移後,請執行以下步驟以檢查新遷移的行事曆資料庫。

    1. 將遷移資料庫複製到 caldb.berkeleydb.homedir.path 參數指定的 /csdb 目錄中。或者,編輯此參數以指向遷移資料庫的新位置。

    2. 對新的行事曆資料庫執行 csdb check。遷移資料庫中的事件數與待辦事項數應該與遷移前資料庫中的總數相符。

    3. 搜尋 icsCalendarOwned 項目,並確定這些項目與遷移前的行事曆數目相符。

    4. 登入 Communications Express,並驗證某些行事曆是否存在於遷移資料庫中。

      如果測試遷移成功,您便可以遷移生產資料庫。

Procedure遷移生產資料

步驟
  1. icsuser 的身份 (或以配置期間指定的 Calendar Server 執行階段使用者 ID 的身份) 登入。如果您以超級使用者 (root) 的身份執行 csmig,則可能需要重設遷移檔案的權限。

  2. 變更至 cal_svr_base/SUNWics5/cal/sbin 目錄。

  3. 使用 stop-cal 指令停止 Calendar Server (如有必要)。

    cal_svr_base/SUNWics5/cal/sbin/stop-cal

  4. 備份下列資料:

    • 行事曆資料庫 (.db 檔案)。

    • LDAP 資料:slapd 資料庫目錄與 LDAP 資料庫。

    • ics.conf 檔案。實際上不需要此步驟,但如果要復原至原始配置,該步驟會很有用。

  5. 使用 migrate 選項執行 csmig

    例如,以下指令可將行事曆資料庫遷移至 /var/opt/SUNWics5/newcsdb/ 目錄中:

    ./csmig -t /var/opt/SUNWics5/newcsdb/ -b sesta.com 
    -o csmig.out -e csmig.errors -m csmig.log -c orphan 
    -r calmaster migrate
  6. 檢查錯誤檔案 (csmig.errors) 中是否存在未解析的行事曆,並按照csmig 遷移步驟csmig 遷移步驟中的計劃進行解析。

  7. 執行 csdb check 指令以檢查遷移資料庫。如果指示任何資料庫已毀壞,請執行 csdb rebuild 以重建資料庫。

  8. 將新的遷移資料庫複製到 caldb.berkeleydb.homedir.path 參數指定的 /csdb 目錄中。或者,編輯此參數以指向遷移資料庫的新位置。

  9. 啟用 LDAP CLD 外掛程式,方法為對 ics.conf 檔案中的以下配置參數進行任何必要的變更:

    • service.dwp.enable = "yes"

    • service.dwp.port = "9779"

    • csapi.plugin.calendarlookup = "y"

    • csapi.plugin.calendarlookup.name = "*"

    • caldb.cld.type = "directory"

    • caldb.dwp.server.default = "default-server-name"

    • caldb.dwp.server.server-hostname .ip = "server-hostname " (適用於包括本機伺服器的每台後端伺服器)

    • caldb.cld.cache.enable = "yes" (如果您要使用 CLD 快取記憶體選項)

    • caldb.cld.cache.homedir.path 指定 CLD 快取記憶體目錄的位置。預設為 /var/opt/SUNWics5/csdb/cld_cache

      如需有關設定 LDAP CLD 外掛程式的配置參數的資訊,請參閱第 6 章, 配置跨多台機器的行事曆資料庫分布

  10. 使用 start-cal 指令重新啟動 Calendar Server。

  11. 登入 Communications Express,並透過檢查一些遷移行事曆來驗證您的配置是否正常工作。

    若要在進行檢查時停用警示,請將 ics.conf 檔案中的以下每個參數均設定為 “no”

    • caldb.serveralarms = "no"

    • caldb.serveralarms.dispatch = "no"

    • service.ens.enable = "no"

    • service.notify.enable = "no"

    • ine.cancellation.enable = "no"

    • ine.invitation.enable = "no"

    • service.admin.alarm = "no"