![]() | |
Sun Java System Calendar Server 6 2005Q1 管理指南 |
第 4 章
資料庫遷移公用程式如果您已安裝舊版的 Calendar Server (5.11 和更舊版本),則在安裝完 Calendar Server 6 2005Q1 並執行安裝後配置後,可能需要遷移元件資料庫和 LDAP 資料庫。
本章提供「選擇正確的公用程式」小節,以協助您選擇要執行的正確公用程式。
本章包含以下小節:
安裝後資料庫遷移公用程式安裝 Calendar Server 6 2005Q1 之後,如果您在安裝舊版的 Calendar Server 5.1.1 時已安裝行事曆資料庫和 LDAP 資料庫項目,請依給定順序執行以下公用程式:
- csmig ─ 可為 Calendar Server 6.x 資料庫中的每個行事曆指定一個所有者,並可將每個行事曆 ID (calid) 對映至一個所有者 (如果需要),這樣可以支援託管
(虛擬) 網域和 LDAP 行事曆查找資料庫 (CLD) 外掛程式。此公用程式與 Calendar Server 封裝在一起。執行 cs5migrate 之後,請執行此公用程式然後再執行 csvdmig。- csvdmig ─ 透過將行事曆的網域 (@domainname) 增加至每個 calid,升級 Calendar Server 6.x 網站以使用託管 (虛擬) 網域。例如,在網域 sesta.com 中,jdoe 的 calid 現在將為 jdoe@sesta.com。此公用程式與 Calendar Server 封裝在一起。執行 cs5migrate 和 csmig 之後再執行此公用程式。
- commdirmig ─ 將 LDAP 資料從 Schema 1 遷移至 Schema 2,以準備與 Access Manager 6.1 或更高版本配合使用。此公用程式與 Access Manager 封裝在一起。
選擇正確的公用程式由於有許多可用的公用程式選項,因此圖 4-1 顯示了不同的配置方案、要執行哪個公用程式以及依何種順序執行。
圖 4-1 選擇要執行的遷移公用程式
csmigcsmig 公用程式可為行事曆資料庫中的每個行事曆指定一個所有者,並可將每個行事曆 ID (calid) 對映至一個所有者 (如果需要)。
csmig 公用程式支援託管 (虛擬) 網域和 LDAP 行事曆查找資料庫 (CLD) 外掛程式。遷移資料庫中的行事曆可以使用 LDAP CLD 外掛程式存取。如需有關 LDAP CLD 外掛程式的資訊,請參閱第 6 章「配置跨多台機器的行事曆資料庫分布」。
本小節說明以下主題:
csmig 功能
csmig 移轉公用程式執行以下功能:
csmig 需求
使用 csmig 的需求為:
- 行事曆資料庫不能損毀。使用 csdb check 指令檢查行事曆資料庫,如有必要,請執行 csdb rebuild 指令以重建資料庫。如需有關這些指令的資訊,請參閱附錄 D「Calendar Server 指令行公用程式參照」。
- 您必須具有足夠的磁碟空間來容納新的目標資料庫。如果適用,也應該為備份資料庫準備足夠的磁碟空間。
- 若要執行 csmig,請以 icsuser 的身份 (或以配置期間指定的 Calendar Server 執行階段使用者 ID 的身份) 登入。如果您以超級使用者 (root) 的身份執行 csmig,則可能需要重設遷移檔案的權限。
csmig 語法
csmig 公用程式的語法如下:
csmig [ -t DestinationDB ] [ -b Backend-DWPHost ]
[ -o OutputFile ] [ -e ErrorFile ] [ -m MappingFile ]
-c calendarOwner -r resourceOwner { migrate|dryrun }
表 4-1 列出公用程式選項,並提供對每個公用程式的說明以及預設值。
csmig 遷移步驟
安裝並配置 Calendar Server 6.x 之後,您必須執行 csmig 以遷移您的現有 Calendar Server 和 LDAP 資料。若要 LDAP CLD 外掛程式正常作業,必須遷移 LDAP 資料。使用 csmig 遷移行事曆資料時,執行以下步驟:
- 使用 comm_dssetup.pl 配置 Directory Server。
如果您尚未使用 comm_dssetup.pl 為 LDAP 屬性建立索引,請在此時執行此作業。這將大大提昇 LDAP 資料遷移的效能。
- 使用展示伺服器 (非生產伺服器) 執行模擬測試。
虛擬執行會報告 csmig 在實際遷移期間將執行的作業,但不會遷移任何資料。在虛擬執行之後,實際遷移之前,請修正所有錯誤,並決定處理任何未解決的行事曆的計劃。
如需有關如何執行模擬測試的說明,請參閱執行模擬測試。
- 遷移生產資料
在執行生產資料遷移期間,csmig 會遷移行事曆資料庫 (.db 檔案) 和 LDAP 資料 (使用者與群組喜好設定資料)、icsSubscribed、icsCalendar、icsCalendarOwned、icsFreeBusy、icsSet 以及 uid (用於資源行事曆)。遷移之後,所有行事曆資源都會建立一個 LDAP 項目。
如需有關如何遷移生產資料的說明,請參閱遷移生產資料。
執行模擬測試
- 在展示伺服器上安裝 Calendar Server 6.x (如有必要)。
- 將行事曆資料庫的快照複製到展示伺服器中。
- 透過執行以下工作在展示伺服器上模仿生產 LDAP 環境:
- 執行 comm_dssetup.pl 以配置展示 Directory Server。
- 執行 csconfigurator.sh 以配置展示 Calendar Server。
- 以 icsuser 的身份登入 (或者,如果不同,以配置期間指定的 Calendar Server 執行階段使用者 ID 的身份登入)。如果您以超級使用者 (root) 的身份執行 csmig,則可能需要重設遷移檔案的權限。
- 移至 cal_svr_base/SUNWics5/cal/sbin 目錄。
- 執行 csdb check 指令以檢查您的資料庫是否損毀。如果指示資料庫已損毀,請執行 csdb rebuild 指令以重建資料庫。
- 考量為沒有所有者的使用者行事曆建立一個 catchall calid。例如,以下指令將建立一個 calid 為 orphan 的使用者:
./csuser -g orphan -s adminuser -y password -l en -c orphan create orphan
- 使用 stop-cal 指令停止 Calendar Server (如有必要)。
cal_svr_base/SUNWics5/cal/sbin/stop-cal
- 使用 dryrun 選項執行 csmig。例如,您可以輸入︰
./csmig -b sesta.com -o csmig.out -e csmig.errors -m csmig.map -c orphan -r calmaster dryrun
此指令將沒有所有者的使用者行事曆 (無主行事曆) 指定給所有者 orphan,將沒有所有者的資源行事曆指定給所有者 calmaster。
- 檢查輸出對映檔案 (csmig.map)。對映檔案列出 LDAP 模式中需要更新的項目。
- 檢查輸出檔案、對映檔案與錯誤檔案。解決您發現的所有 LDAP 問題或錯誤。在實際遷移之前,決定如何處理所有未解決的行事曆。有以下選項可供選擇:
- 執行 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
- 完成測試遷移後,請執行以下步驟以檢查新遷移的行事曆資料庫。
如果測試遷移成功,您便可以遷移生產資料庫。
遷移生產資料
- 以 icsuser 的身份 (或以配置期間指定的 Calendar Server 執行階段使用者 ID 的身份) 登入。如果您以超級使用者 (root) 的身份執行 csmig,則可能需要重設遷移檔案的權限。
- 移至 cal_svr_base/SUNWics5/cal/sbin 目錄。
- 使用 stop-cal 指令停止 Calendar Server (如有必要)。
cal_svr_base/SUNWics5/cal/sbin/stop-cal
- 備份下列資料:
- 使用 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
- 執行 csdb check 指令以檢查遷移資料庫。如果指出資料庫有任何損毀,請執行 csdb rebuild 以重建資料庫。
- 將新遷移的資料庫複製到 caldb.berkeleydb.homedir.path 參數指定的 /csdb 目錄中。或者,編輯此參數以指向遷移資料庫的新位置。
- 啟用 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 章「配置跨多台機器的行事曆資料庫分布」。
- 使用 start-cal 指令重新啟動 Calendar Server。
- 登入您的行事曆使用者介面 (Calendar Express 或 Communications Express),並透過檢查數個遷移行事曆來驗證配置是否可用。
若要在進行檢查時停用警示,請將 ics.conf 檔案中的以下每個參數均設定為 "no":
csmig 提示與疑難排解
本小節說明以下提示與疑難排解範例:
csmig 虛擬執行行事曆顯示錯誤的行事曆所有者
問題範例
名為 tchang:myCalendar 的行事曆在行事曆資料庫中的所有者為 jsmith,而 csmig 虛擬執行將對映顯示為 jsmith:tchang_myCalendar。但是,您希望將此行事曆命名為 tchang:myCalendar,並將所有者指定為 tchang。
解決方案範例
在遷移之前,使用 cscal 公用程式將行事曆的所有者 tchang:myCalendar 變更為 tchang。完成此項作業後,遷移便會將此行事曆對映至 tchang:myCalendar,並將 icsCalendarowned 增加至使用者 ID tchang 的 LDAP 項目。
無法正常搜尋 LDAP 行事曆
問題
遷移之後,將啟用 LDAP 行事曆搜尋,但是行事曆搜尋對話方塊不會傳回任何結果,或僅傳回部分結果。
解決方案
啟用 LDAP 行事曆搜尋可讓 Calendar Server 搜尋 (&(objectclass=icscalendaruser)(icscalendarowned=*substr*))。
使用以下篩選器對 LDAP 資料手動執行兩種不同的搜尋,並比較輸出結果:
由於伺服器使用包含 icsCalendarUser 物件類別的篩選器,因此在模式檢查停用的情況下可能已部署了 LDAP 伺服器,並可能已佈建了某些不具有 icsCalendarUser 物件類別的行事曆項目。
csmig 虛擬執行指出存在重複的行事曆名稱
問題範例
csmig 虛擬執行對映檔案與輸出檔案指出存在重複的行事曆名稱。例如,在原始資料庫中,jsmith 擁有下列行事曆:
虛擬執行指出在遷移期間將合併這兩個行事曆,最後生成的行事曆將是 jsmith:basketball,其所有者為 jsmith,共包括 15 個事件
輸出檔案將包含下列警告訊息:
修改行事曆屬性時發生錯誤,錯誤 = 2
解決方案範例
如果您不想合併這兩個行事曆,請在遷移之前將 basketball 的所有者變更為 jsmith 之外的其他所有者。這樣做會保留兩個獨立行事曆的資料完整性。
我如何將無主行事曆指定給不同的所有者
問題
依預設,csmig 會將所有無主行事曆指定給單一所有者,但是我想為某些無主行事曆指定不同的所有者。
解決方案
csmig 不接受指令行上的對映檔案。但是,您可以在遷移之前,將所有者指定給原始資料庫中的無主行事曆。檢查所有無主行事曆的虛擬執行對映檔案。然後在遷移之前,使用 cscal 公用程式將所有者指定給無主行事曆。以 dryrun 模式再次執行 csmig,以驗證新的所有者。
我如何將行事曆使用者移至另一台後端伺服器
問題
我如何將使用者從一台後端伺服器移至另一台後端伺服器?
解決方案
若要移動行事曆使用者,請 export 原始伺服器上的每個使用者行事曆,然後將這些行事曆 import 另一台伺服器。移動行事曆之後,您可以刪除原始伺服器上的行事曆。如需有關如何移動行事曆的說明,請參閱將使用者行事曆移至其他後端伺服器或將資源行事曆移至其他後端伺服器。
csvdmigcsvdmig 公用程式可以為將要使用託管 (虛擬) 網域的網站修改 Calendar Server 資料庫與 LDAP 目錄伺服器資料庫。
本小節包含以下主題:
csvdmig 功能
csvdmig 公用程式將網域名稱增加至使用者 ID,如下所示:
csvdmig 語法
csvdmig 公用程式的語法如下:
表 4-2 列出 csvdmig 使用的選項,並提供對每個選項的說明。
表 4-2 csvdmig 的選項
選項
說明和預設值
-m MappingFile
指定對映檔案的輸入參數。如需有關對映檔案的更多資訊,請參閱「對映檔案」。預設為 MigrateMapping。
-c ConfigFile
指定 Calendar Server 配置檔案的輸入參數。預設為 ics.conf 檔案。
-t DestinationDB
指定資料庫位置的輸出參數。預設為 MigratedDB。請參閱「目標 DB」。
-e ErrorFile
用於為無法解決的錯誤指定錯誤檔案名稱的輸出參數。預設為 MigrateError。
DB|LDAP
指定要修改哪個資料庫:
DB ─ Calendar Server 資料庫
LDAP ─ LDAP 目錄預設為行事曆資料庫 (DB)。
對映檔案
對映檔案是輸入文字檔案,它將現有使用者對映至他們各自的網域。執行 csvdmig 之前,必須先建立對映檔案。每一行指定一個項目,新舊值之間用空格分隔。例如:
user1 user1@sesta.com
user2 user2@siroe.com
user3 user3@sesta.com
...
user-n user-n@siroe.com目標 DB
即使變數被命名為 DestinationDB,並且預設為 MigratedDB,csvdmig 也不會建立獨立的遷移資料庫。它會適當地更新您使用此選項指定的原始資料庫。
csvdmig 範例
commdirmigcommdirmig 公用程式將您的 LDAP 資料從 Sun LDAP Schema 1 遷移至 Schema 2,以準備使用 Access Manager 來進行認證服務。
本小節包含以下主題:
誰應執行公用程式
如果您先前使用的是 Messaging Server 5.x 或 Calendar Server 5.x,您的 LDAP 項目為 Schema 1 格式。在新的 Calendar Server 6 2005Q1 環境中,如果您要使用 Access Manager 進行認證,則必須執行此公用程式將 LDAP 項目轉換為 Schema 2 格式。
如果您未使用 Access Manager,仍應考量遷移 LDAP 資料,因為 Schema 2 是適用於所有使用 LDAP 的 Java Enterprise System 產品的更好的 LDAP 模式。將來新版本的 communications 產品 (Calendar, Messaging 和 Instant Messaging) 很可能無法支援 Schema 1。但是,如果您此時不打算使用 Access Manage,則可以推遲遷移,以在稍後更方便的時間遷移。
何時執行公用程式
如果您要從 Calendar Server 的 Java Enterprise System 之前的版本遷移,請在執行 cs5migrate、csmig 和 csvdmig 之後再執行此公用程式。
文件的位置
此遷移公用程式要求特殊的準備和規劃。此遷移公用程式在單獨的指南中有文件說明,請參閱位於以下網站上的「Sun Java System Communications Services Schema Migration Guide」:
http://docs.sun.com/coll/CalendarServer_05q1 和
http://docs.sun.com/coll/CalendarServer_05q1_zt公用程式的位置
對於 Sun Java Enterprise System 2005Q1,此公用程式與使用者管理公用程式 commadmin 同時隨附於 Access Manager 2005Q1。
如果您不要更新 Access Manager,則只需要 Calendar Server 的遷移公用程式,技術支援可提供僅用於此公用程式的修補程式。