本小節說明如何在 Messaging Server 之間遷移使用者電子信箱。本小節主要說明從 Messaging Server 5.2 遷移到 Messaging Server 6 2005Q4 系統,而線上遷移程序可套用至 Messaging Server 5.2 以後的任何版本。線上遷移可能是最方便的方法,但同時也會說明其它替代的遷移方法。
如果您要將 Messaging Server 5.2 升級至 Messaging Server 6 並升級整個郵件儲存資料庫,則無需按照此遷移程序操作。前一小節說明的 make_mboxlistdb_changes.sh 程序檔可以更高效地升級資料庫。
僅當以下情況,您才需執行這些程序:
您要從 Windows 遷移至 UNIX 或從 UNIX 遷移至 Windows。
您不想一次遷移整個郵件儲存。
您需要重新命名使用者 (包含 UID)、網域名稱以及預設網域變更。
如果您選擇使用這些程序遷移電子信箱,請勿將分割區路徑對映至 Messaging Server 5.2 分割區,另勿執行 make_mboxlist_changes.sh 程序檔。
由升級程序檔產生的 make_configutil_changes.sh 程序檔會自動將分割區路徑設定為對映至 Messaging Server 5.2 分割區。您需要手動改變它。此外,您應從 do_the_upgrade.sh 程序檔移除對 make_mboxlistdb_changes.sh 程序檔的呼叫。
若要使用線上方法將使用者電子信箱從 Messaging Server 5.2 移至 Messaging Server 目前版本,請按照以下小節中說明的步驟操作。移動資料時無需終止 Messaging Server。
提供以下程序:
您可以使用此程序,將郵件儲存從舊版的 Messaging Server 遷移至新版的 Messaging Server;或將電子信箱從某個 Sun Messaging Server 郵件儲存移至另一個儲存。此程序應可用於 iPlanet Messaging Server 5.0 及更新版本。若要從舊版的 Messaging Server 或非 Sun Microsystems 郵件儲存移動郵件,則不可使用此程序。
使用此程序移動電子信箱的優點包括:
系統管理員可直接將舊來源系統上的電子信箱移至新目標系統,而無需使用者的介入。
此程序較其他程序快。
若是移動整個分割區,便無需重新連結。
兩個 Messaging Server 系統均會保持在使用中與線上的狀態。
您可以遷移郵件儲存中的所有電子信箱,或這些郵件的一部分。此程序允許增量遷移。
使用此程序移動電子信箱的缺點包括:
此方法不適用於非 Sun 郵件傳送伺服器。
遷移中的使用者在其電子信箱完成遷移前,將無法存取其電子信箱。
此方法既複雜又費時。
增量遷移具備多項優點,可以安全而有效率地將郵件儲存移至不同的系統,或升級為新系統;增量遷移則可讓您在舊的後端郵件儲存仍存在時,建立新的後端郵件儲存系統。您可以接著測試新系統,並遷移幾個友善的使用者,然後再次測試新系統。當您確定新系統、配置及遷移程序的各項狀況之後,即可開始遷移實際的商業使用者。這些使用者可以切割成個別的備份群組,如此在遷移時,便只有該群組的成員會有短暫離線的情況。
線上增量遷移的另一項優點是不需要針對升級失敗規劃整個系統的還原作業。還原程序是指捨棄您對系統所做的變更,而將系統回復成原始的工作狀態。執行遷移時,必須針對失敗擬定計劃;換言之,您必須詳加規劃遷移作業中的各個步驟,以便於將系統回復成先前的工作狀態。
離線遷移的問題在於您必須等到所有遷移步驟完成,並重新啟動服務之後,才可確定遷移成功與否。當系統無法運作,並無法在短時間之內修復時,便須針對所有執行步驟執行復原程序。這可能會對您造成壓力,並須花費一些時間;而在這段期間內,使用者將會處於離線狀態。
使用線上增量遷移時所應執行的基本步驟包括:
1. 在舊系統仍然存在時建立新系統,以使兩者能夠各自運作。
2. 配置舊系統,使之能與新系統並存。
3. 遷移友善使用者的群組,並測試新系統,以及其與舊系統的並存關係。
4. 將舊系統上的使用者分組,並視需要逐群遷移至新系統。
5. 逆向組譯舊系統。
兩系統並存將可讓您在遷移至新系統之前,先對其進行測試,並確定一切就緒之後才開始遷移。若必須執行還原程序 (此為極少見的情況),將只須規劃步驟 2 及 4。由於您不會觸及到使用者資料,因此很容易復原步驟 2。在步驟 4 中,還原作業會將使用者的狀態回復成使用中,並將其郵件主機屬性回復成舊主機。無需還原整個系統。
在線上遷移電子信箱的程序非常簡單。但要確定傳送到電子信箱的郵件 (位於 MTA 通道佇列等候傳送) 未在遷移程序期間遺失便比較複雜。解決方案之一即是將遷移程序期間傳送的郵件設為「已保留」狀態,並等候各通道佇列的郵件送出。但郵件可能會因為系統問題或某位使用者超出其配額而卡在佇列中。在此情況下,您必須先解決問題,才能夠繼續遷移電子信箱。
有多種方法可用於降低郵件遺失的可能性,並確保郵件不會卡在通道佇列中,但卻會增加程序的複雜度。
程序中之步驟的順序及必要性,與您的部署及傳送到各電子信箱的每一封郵件是否皆不能遺失息息相關。本小節將說明這些步驟的理論和概念。您必須瞭解每一個步驟,並根據您特有的部署,決定所要採取的步驟及步驟順序。以下是移動電子信箱程序的簡介。此程序會因您的部署而不同。
阻斷使用者對移動中的電子信箱進行存取。
暫時保留要傳送到移動中的電子信箱之郵件。
驗證郵件未卡在通道佇列中。
將使用者的郵件主機屬性變更為新的電子信箱位置。
將電子信箱移至新位置。
釋放所保留要傳送到新電子信箱的郵件,並讓內送郵件可以傳送到遷移的電子信箱。
檢查舊郵件儲存,以查看遷移後是否有任何郵件送抵。
此遷移類型的需求如下:
應同時在來源 (舊) 及目標 (新) 郵件傳送伺服器上執行 stored。
來源系統和目標系統若將同時存在,則兩者必須能相互路由郵件。此為必要的,舉例來說,如此一來便可在目標系統上產生傳送狀態通知的郵件,並傳送到來源系統。
有些步驟僅適用於要將舊版郵件傳送伺服器升級為新版的情況。若未將電子信箱從某個郵件儲存遷移至另一個儲存,便不適用於這些步驟。適用於遷移整個系統的步驟會特別標出。
在來源系統中,使用 backup-groups.conf 檔案,將要移動的使用者項目分割成均等的備份群組。
此為電子信箱遷移的準備步驟,步驟 8 會於此程序後半段發生。如需詳細的指示,請參閱建立備份群組。
您也可以將使用者名稱放入檔案中,並使用 imsbackup 指令中的 -u 選項。
通知要移動的使用者,必須等到移動程序完成之後,才可存取其電子信箱。
在移動資料之前,先確定要移動的使用者已登出其郵件系統。(請參閱監視使用者存取。)
將後端郵件儲存和 MMP 系統上的認證快取逾時設為 0,並將 MTA 上的 ALIAS_ENTRY_CACHE_TIMEOUT 選項設為 0。
在包含要移動之電子信箱的後端郵件儲存中,將認證快取逾時設為 0。
configutil -o service.authcachettl -v 0 |
此步驟及步驟 7 (將 mailUserStatus 變更為 hold) 可立即避免使用者在遷移期間存取其電子信箱。
在所有 MMP 上,將認證快取逾時設為 0。
在 ImpProxyAService.cfg 和 PopProxyAService.cfg 中,將 LdapCacheTTL 設為 0。
在託管將郵件插入要遷移的電子信箱之 MTA 的任何 Messaging Server 上,將 ALIAS_ENTRY_CACHE_TIMEOUT 選項設為 0。
託管將郵件插入要遷移的電子信箱之 MTA 的 Messaging Server,一般是後端郵件儲存。但系統若是使用 LMTP,則該系統便會是輸入 MTA。檢查並確定您的配置。
重設 /msg_svr_base/config/option.dat 中的 ALIAS_ENTRY_CACHE_TIMEOUT,可強制 MTA 略過快取,並直接檢視 LDAP 項目,如此一來中間通道佇列 (例如 conversion 或 reprocess 通道) 即會查看要移動之使用者的新 mailUserStatus (hold),而不是過期的快取資訊。ALIAS_ENTRY_CACHE_TIMEOUT 位於 option.dat 中。
重新啟動已重新設定快取的系統。
您必須重新啟動系統,這些變更才會生效。如需指示,請參閱啟動和停止服務。
確定來源 Messaging Server 和目標 Messaging Server 皆已啟動且在執行中。
來源 Messaging Server 必須能路由內送郵件至新的目標伺服器。
變更其電子信箱將從 active 移至 hold 的所有使用者項目上的 LDAP 屬性 mailUserStatus。
變更屬性可使內送郵件保留在 hold 佇列中,並防止透過 IMAP、 POP 及 HTTP 對電子信箱進行存取。一般會以使用者群組移動使用者。若要移動單一網域的所有電子信箱,可以使用 mailDomainStatus 屬性。
如需有關 mailUserStatus 的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」中的「mailUserStatus」。
確定傳送至遷移中電子信箱的郵件不會卡在 ims-ms 或 tcp_lmtp* 通道佇列 (若已部署 LMTP)。
使用下列指令以查看傳送給將遷移的使用者之郵件,是否存在於通道佇列目錄樹狀結構同時是「已保留」狀態 (查看 .HELD 檔案):
imsimta qm directory -to=<user_address_to_be_migrated> -directory_tree imsimta qm directory -to=<user_address_to_be_migrated> -held -directory_tree |
如果佇列中有郵件,請於稍後執行相同指令,以查看 MTA 是否已將之移出佇列。如果有郵件未移出佇列,您必須先解決此問題才能繼續遷移。這種情況並不常見,有可能是因為收件者的電子信箱超出容量限制,或可能因為使用者登入並移動郵件而鎖定電子信箱、LMTP 後端伺服器未回應、網路或名稱伺服器發生問題等等。
變更將移動之使用者項目以及任何郵件群組項目中的 LDAP 屬性 mailHost*。
使用 ldapmodify 指令變更新郵件伺服器的項目。使用 Messaging Server 或 Directory Server 隨附的 ldapmodify。請勿使用 Solaris 作業系統的 ldapmodify 指令。
* 若已關閉舊的郵件主機,則僅需變更郵件群組項目中的 mailHost 屬性即可。您可以將此屬性變更為新的郵件主機名稱,或完全移除屬性。您可以選擇讓郵件群組具有 mailHost。具有 mailHost 表示只有該主機可以執行群組擴充;略過 mailHost (比較常用) 表示所有 MTA 均可執行群組擴充。請注意,郵件群組項目沒有要遷移的電子信箱,一般而言甚至沒有 mailhost 屬性。
如需有關 mailhost 的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」中的「mailHost」。
將電子信箱資料從來源 Messaging Server 郵件儲存移至目標 Messaging Server 郵件儲存,並記錄開始時間。
使用 imsbackup 公用程式備份電子信箱,並使用 imsrestore 公用程式將之復原為新的 Messaging Server。例如,若要從 Messaging Server 5.2 系統中將名為 oldmail.siroe.com 的電子信箱遷移至 newmail.siroe.com,請在 oldmail.siroe.com 上執行下列指令:
/server-root/bin/msg/store/bin/imsbackup -f- /instance/group \ | rsh newmail.siroe.com /opt/SUNWmsgsr/lib/msg/imsrestore.sh \ -f- -cy -v1 |
您可以執行多個同步運作的備份並修復階段作業 (每個群組一個),以最大化向新郵件儲存進行傳送的速度。如需有關 imsbackup 和 imsrestore 公用程式的更多資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「Command Descriptions」,以及備份和復原郵件儲存。
記錄何時執行 imsbackup 的時間戳記,以供稍後進行傳送驗證所用。
(系統升級的條件式步驟) 如果電子信箱遷移是舊版 Messaging Server 到目前版本升級程序的一部分,請將此目前版本的 Messaging Server 設為系統的新預設 Messaging Server。
變更 oldmail.siroe.com 的 DNS A 記錄,以將其指向 newmail.siroe.com (此伺服器負責先前託管於 oldmail.siroe.com 上的網域)。
啟用使用者對新郵件儲存的存取。
視需要將 LDAP 屬性 mailUserStatus 或 mailDomainStatus 設定為變更成 hold 之前的任何值 (例如 active)。
釋放所有來源 Messaging Server 上狀態為「已保留」的郵件。
任何可能保留內送郵件的系統,均需要執行下列指令以釋放所有使用者郵件:
imsimta qm release -channel=hold -scope |
其中 scope 可以是 all,表示會釋放所有郵件;user 表示使用者 ID;而 domain 則為使用者所在的網域。
將認證快取逾時及 ALIAS_ENTRY_CACHE_TIMEOUT 選項重設為預設值或想要的值,然後再重新啟動系統。
此時,您已遷移所有需要遷移的使用者電子信箱。在繼續下一步前,請確定 LDAP 中沒有以舊系統 mailhost 建立的任何新項目,如果有,請將之遷移。另請確定不會透過修改佈建系統建立任何這類項目。
您可能也想將 preferredmailhost 屬性變更為新郵件主機的名稱。
若為後端郵件儲存,請將認證快取逾時設定如下:
configutil -o service.authcachettl -v 900 |
若為 MMP,請在 ImpProxyAService.cfg 和 PopProxyAService.cfg 中將 LdapCacheTTL 選項設為 0。
若為 MTA,請將 ALIAS_ENTRY_CACHE_TIMEOUT 選項設為 600。ALIAS_ENTRY_CACHE_TIMEOUT 位於 option.dat 中。
必須重新啟動系統,這些變更才會生效。如需指示請參閱啟動和停止服務。
確保使用者用戶端指向新的郵件伺服器。
升級完成後,透過使用者的郵件用戶端程式讓使用者指向新的伺服器 (在此範例中,使用者會從 oldmail.siroe.com 改為指向 newmail.siroe.com)。
也可以使用郵件傳送多重訊號組合器 (MMP),無需使用者將其用戶端直接指向新的郵件伺服器。MMP 從儲存在 LDAP 使用者項目中的 mailHost 屬性取得該資訊,並自動重新將用戶端導向到新的伺服器。
等到一切運作正常,請驗證遷移後沒有訊息傳送到舊的郵件儲存。
進入舊的郵件儲存,並執行 mboxutil -l 以列出電子信箱。檢查上一則郵件傳送的時間戳記。如果郵件是在遷移時間戳記 (執行 imsbackup 指令的日期戳記) 之後送抵,請使用備份及復原指令遷移這些郵件。由於已提供準備步驟,因此遷移後有郵件送抵的情況很少見。
理論上,郵件卡在佇列中的天數或小時數,由 notices 通道關鍵字指定 (請參閱設定通知郵件遞送間隔時間)。
若要移除新郵件儲存中重複的郵件,請執行 relinker 指令。
此指令可釋放新郵件儲存中的磁碟空間。請參閱由於相同郵件的重複儲存而縮減郵件儲存大小。
從您遷移來源的儲存區移除舊郵件,並從舊儲存區上的資料庫中刪除使用者。
執行 mboxutil -d 指令。(請參閱mboxutil 公用程式)。
任何時候需要在郵件傳送伺服器之間遷移郵件,均可使用此程序。在使用此方法移動電子信箱之前,請考量其優點和缺點。
使用 IMAP 用戶端移動電子信箱的優點如下所示:
此方法可用於從非 Sun Messaging Server 向 Sun Java System Messaging Server 遷移。也可用於在實體伺服器之間移動電子信箱。
系統管理員設定新的郵件伺服器或郵件儲存後,使用者負責將電子信箱移動至新系統。
移動電子信箱的程序相對簡單。
不必停用使用者對電子信箱的存取。
使用 IMAP 用戶端移動電子信箱的缺點如下所示:
要求新舊系統同時執行,且使用者可進行存取。
總體來講,此方法移動電子信箱花費的時間比其他方法長。
使用者負責將電子信箱移至新系統。
新郵件儲存的大小明顯大於舊郵件儲存的大小,除非執行重新連結作業。
安裝和配置新 Messaging Server。
將 local.store.relinker 設定為啟用。
這將因為重複儲存相同郵件而導致降低新系統上郵件儲存的大小。請參閱由於相同郵件的重複儲存而縮減郵件儲存大小,以取得更多資訊。
在新 Messaging Server 上佈建使用者。
可以使用 Delegated Administrator 完成此作業。使用者被佈建於新系統上後,新到達的郵件就會傳送至新收件匣。
讓使用者將其郵件用戶端配置為可同時檢視新舊 Messaging Server 電子信箱。
這可能涉及到在用戶端設定新電子郵件帳號。請參閱郵件用戶端文件,以取得詳細資訊。
指示使用者將資料夾從舊 Messaging Server 拖曳到新 Messaging Server。
與使用者驗證,確定所有電子信箱都已遷移至新系統,然後關閉舊系統上的使用者帳號。
任何時候需要在郵件傳送伺服器之間遷移郵件,均可使用此程序。對於從非 Sun Messaging Server 向 Sun Java System Messaging Server 遷移 IMAP 電子信箱很有用。在使用此方法移動電子信箱之前,請考量其優點和缺點。
使用 moveuser 指令移動電子信箱的優點如下所示:
系統管理員完全負責將電子信箱從舊系統移至新系統。使用者不必執行任何作業。
可用於任何 IMAP 伺服器。
使用 moveuser 指令移動電子信箱的缺點如下所示:
要求新舊系統同時執行,且使用者可進行存取。
此方法移動電子信箱比其他非 IMAP 方法花費的時間長。
在移動電子信箱時,必須停用使用者對電子信箱的存取。
新郵件儲存的大小明顯大於舊郵件儲存的大小,除非執行重新連結作業。
安裝和配置新 Messaging Server。
將 local.store.relinker 設定為啟用。
這將因為重複儲存相同郵件而導致降低新系統上郵件儲存的大小。請參閱由於相同郵件的重複儲存而縮減郵件儲存大小,以取得更多資訊。
阻止內送郵件到達郵件傳送伺服器。
將使用者屬性 mailUserStatus 設定為 hold。
在新的 Messaging Server 上佈建使用者 (如果需要)。
如果您從舊版 Messaging Server 進行遷移,則可以使用同一 LDAP 目錄和伺服器。moveuser 可變更每個使用者項目中的 mailhost 屬性。
執行 moveuser 指令。
根據 Directory Server siroe.com 中的帳號資訊,將所有使用者從 host1 移至 host2:
MoveUser -l \ "ldap://siroe.com:389/o=siroe.com???(mailhost=host1.domain.com)" \ -D "cn=Directory Manager" -w password -s host1 -x admin \ -p password -d host2 -a admin -v password |
如需有關 moveuser 指令的詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「MoveUser」。
啟用使用者對新郵件儲存的存取。
關閉舊系統。
此程序特別適用於將電子信箱從 UNIX /var/mail 格式資料夾移至 Sun Java System Messaging Server 郵件儲存。但是,如果您從其遷移的郵件傳送伺服器可以將 IMAP 郵件儲存轉換為 UNIX /var/mail 格式,則您可以使用 imsimport 指令將郵件遷移至 Sun Java System Messaging Server。在使用此方法移動電子信箱之前,請考量其優點和缺點。
使用 imsimport 指令移動電子信箱的優點如下所示:
系統管理員完全負責將電子信箱從舊系統移至新系統。使用者不必執行任何作業。
使用 imsimport 指令移動電子信箱的缺點如下所示:
此方法移動電子信箱比其他非 IMAP 方法花費的時間長。
在移動電子信箱時,必須停用使用者對電子信箱的存取。
新郵件儲存的大小明顯大於舊郵件儲存的大小,除非執行重新連結作業。
安裝和配置新 Messaging Server。
將 local.store.relinker 設定為啟用。
這將因為重複儲存相同郵件而導致降低新系統上郵件儲存的大小。請參閱由於相同郵件的重複儲存而縮減郵件儲存大小,以取得更多資訊。
在新的 Messaging Server 上佈建使用者 (如果需要)。
可以使用 Delegated Administrator 完成此作業。請尚勿切換至新系統。
停用使用者對新舊郵件儲存的存取。
將 mailUserStatus LDAP 屬性設定為 hold。使用者的郵件會傳送至保留佇列,並且不允許透過 IMAP、POP 及 HTTP 存取電子信箱。儲存伺服器上的 MTA 和 Message Access Server 必須遵從此需求。此設定可置換其他任何 mailDeliveryOption 設定。
如果現有郵件伺服器的郵件儲存尚非 /var/mail 格式,請將郵件儲存轉換為 /var/mail 檔案。
請參閱協力廠商郵件伺服器文件。
執行 imsimport 指令。
例如:
imsimport -s /var/mail/joe -d INBOX -u joe |
如需有關 imsimport 指令的詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「imsimport」。
啟用使用者對郵件儲存的存取。
啟用使用者對新舊郵件儲存的存取。
關閉舊系統。