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

Procedure在線上將使用者電子信箱由一台 Messaging Server 遷移至另一台 Messaging Server

開始之前

此遷移類型的需求如下:


備註 –

有些步驟僅適用於要將舊版郵件傳送伺服器升級為新版的情況。若未將電子信箱從某個郵件儲存遷移至另一個儲存,便不適用於這些步驟。適用於遷移整個系統的步驟會特別標出。


步驟
  1. 在來源系統中,使用 backup-groups.conf 檔案,將要移動的使用者項目分割成均等的備份群組。

    此為電子信箱遷移的準備步驟,步驟 8 會於此程序後半段發生。如需詳細的指示,請參閱建立備份群組

    您也可以將使用者名稱放入檔案中,並使用 imsbackup 指令中的 -u 選項。

  2. 通知要移動的使用者,必須等到移動程序完成之後,才可存取其電子信箱。

    在移動資料之前,先確定要移動的使用者已登出其郵件系統。(請參閱監視使用者存取。)

  3. 將後端郵件儲存和 MMP 系統上的認證快取逾時設為 0,並將 MTA 上的 ALIAS_ENTRY_CACHE_TIMEOUT 選項設為 0。

    1. 在包含要移動之電子信箱的後端郵件儲存中,將認證快取逾時設為 0。


      configutil -o service.authcachettl -v 0
      

      此步驟及步驟 7 (將 mailUserStatus 變更為 hold) 可立即避免使用者在遷移期間存取其電子信箱。

    2. 在所有 MMP 上,將認證快取逾時設為 0。

      ImpProxyAService.cfgPopProxyAService.cfg 中,將 LdapCacheTTL 設為 0。

    3. 在託管將郵件插入要遷移的電子信箱之 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 項目,如此一來中間通道佇列 (例如 conversionreprocess 通道) 即會查看要移動之使用者的新 mailUserStatus (hold),而不是過期的快取資訊。ALIAS_ENTRY_CACHE_TIMEOUT 位於 option.dat 中。

    4. 重新啟動已重新設定快取的系統。

      您必須重新啟動系統,這些變更才會生效。如需指示,請參閱啟動和停止服務

  4. 確定來源 Messaging Server 和目標 Messaging Server 皆已啟動且在執行中。

    來源 Messaging Server 必須能路由內送郵件至新的目標伺服器。

  5. 變更其電子信箱將從 active 移至 hold 的所有使用者項目上的 LDAP 屬性 mailUserStatus

    變更屬性可使內送郵件保留在 hold 佇列中,並防止透過 IMAP、 POP 及 HTTP 對電子信箱進行存取。一般會以使用者群組移動使用者。若要移動單一網域的所有電子信箱,可以使用 mailDomainStatus 屬性。

    如需有關 mailUserStatus 的更多資訊,請參閱「Sun Java System Communications Services 6 2005Q4 Schema Reference」中的「mailUserStatus」

  6. 確定傳送至遷移中電子信箱的郵件不會卡在 ims-mstcp_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 後端伺服器未回應、網路或名稱伺服器發生問題等等。

  7. 變更將移動之使用者項目以及任何郵件群組項目中的 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」

  8. 將電子信箱資料從來源 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
    

    您可以執行多個同步運作的備份並修復階段作業 (每個群組一個),以最大化向新郵件儲存進行傳送的速度。如需有關 imsbackupimsrestore 公用程式的更多資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「Command Descriptions」,以及備份和復原郵件儲存


    備註 –

    記錄何時執行 imsbackup 的時間戳記,以供稍後進行傳送驗證所用。


  9. (系統升級的條件式步驟) 如果電子信箱遷移是舊版 Messaging Server 到目前版本升級程序的一部分,請將此目前版本的 Messaging Server 設為系統的新預設 Messaging Server。

    變更 oldmail.siroe.com 的 DNS A 記錄,以將其指向 newmail.siroe.com (此伺服器負責先前託管於 oldmail.siroe.com 上的網域)。

  10. 啟用使用者對新郵件儲存的存取。

    視需要將 LDAP 屬性 mailUserStatusmailDomainStatus 設定為變更成 hold 之前的任何值 (例如 active)。

  11. 釋放所有來源 Messaging Server 上狀態為「已保留」的郵件。

    任何可能保留內送郵件的系統,均需要執行下列指令以釋放所有使用者郵件:


    imsimta qm release -channel=hold -scope
    

    其中 scope 可以是 all,表示會釋放所有郵件;user 表示使用者 ID;而 domain 則為使用者所在的網域。

  12. 將認證快取逾時及 ALIAS_ENTRY_CACHE_TIMEOUT 選項重設為預設值或想要的值,然後再重新啟動系統。

    此時,您已遷移所有需要遷移的使用者電子信箱。在繼續下一步前,請確定 LDAP 中沒有以舊系統 mailhost 建立的任何新項目,如果有,請將之遷移。另請確定不會透過修改佈建系統建立任何這類項目。

    您可能也想將 preferredmailhost 屬性變更為新郵件主機的名稱。

    若為後端郵件儲存,請將認證快取逾時設定如下:


    configutil -o service.authcachettl -v 900
    

    若為 MMP,請在 ImpProxyAService.cfgPopProxyAService.cfg 中將 LdapCacheTTL 選項設為 0。

    若為 MTA,請將 ALIAS_ENTRY_CACHE_TIMEOUT 選項設為 600。ALIAS_ENTRY_CACHE_TIMEOUT 位於 option.dat 中。

    必須重新啟動系統,這些變更才會生效。如需指示請參閱啟動和停止服務

  13. 確保使用者用戶端指向新的郵件伺服器。

    升級完成後,透過使用者的郵件用戶端程式讓使用者指向新的伺服器 (在此範例中,使用者會從 oldmail.siroe.com 改為指向 newmail.siroe.com)。

    也可以使用郵件傳送多重訊號組合器 (MMP),無需使用者將其用戶端直接指向新的郵件伺服器。MMP 從儲存在 LDAP 使用者項目中的 mailHost 屬性取得該資訊,並自動重新將用戶端導向到新的伺服器。

  14. 等到一切運作正常,請驗證遷移後沒有訊息傳送到舊的郵件儲存。

    進入舊的郵件儲存,並執行 mboxutil -l 以列出電子信箱。檢查上一則郵件傳送的時間戳記。如果郵件是在遷移時間戳記 (執行 imsbackup 指令的日期戳記) 之後送抵,請使用備份及復原指令遷移這些郵件。由於已提供準備步驟,因此遷移後有郵件送抵的情況很少見。

    理論上,郵件卡在佇列中的天數或小時數,由 notices 通道關鍵字指定 (請參閱設定通知郵件遞送間隔時間)。

  15. 若要移除新郵件儲存中重複的郵件,請執行 relinker 指令。

    此指令可釋放新郵件儲存中的磁碟空間。請參閱由於相同郵件的重複儲存而縮減郵件儲存大小

  16. 從您遷移來源的儲存區移除舊郵件,並從舊儲存區上的資料庫中刪除使用者。

    執行 mboxutil -d 指令。(請參閱mboxutil 公用程式)。