分类: 系统运维
2017-11-08 18:06:44
【摘要】
邮件系统作为企业日常办公必不可少的沟通平台,市面上各种产品或者解决方案百花齐放,无论是商业化或者开源技术。微软在当前市场份额最大,在海外达到70%以上,在国内大中型企业或单位中也超过60%。近年来随着Coremail和Lotus Domino份额下降,迁移至Exchange的需求持续旺盛。另一方面Exchange自身频繁更新换代也间接衍生大量升级迁移的场景。那么Exchange数据迁移到底有哪些主要的场景和方式?
本文将对此梳理归纳,以供参考。
【正文】
Exchange邮件系统邮件迁移场景大致分为两类:Exchange之间平级或升级迁移、异构系统之间迁移(如Coremail、Lotus Domino或其他商业邮箱)。针对不同场景采取不同的迁移方式,简要归纳如下:
1. Exchange之间平级或升级迁移:
a) Exchange数据库之间进行“邮箱移动”
b) 从源Exchange数据库导出PST,并导入目标数据库
2. 异构系统之间迁移:
a) Outlook/Foxmail客户端本次导出导入
b) 在线迁移(IMAP4或POP3)
Exchange不同版本迁移或者平级扩容迁移场景非常普遍,比如Exchange 2010升级2016,最普遍的做法是将Exchange 2016服务器加入到Exchange 2010组织当中,然后通过“邮箱移动”方式平滑迁移。用户在迁移过程中基本不察觉,只有在迁移完成时提醒重启outlook,是官方推荐方法。
优点:操作容易、错误率低、用户影响少
缺点:只能针对同一组织下或存在信任关系的Exchange系统之间使用
操作过程参考如下:
a) 发起迁移任务:
b) 迁移任务进行中:
c) 迁移任务完成:
如果两套Exchange不在同一组织,或者无法建立信任关系,则无法使用邮箱移动方式。比如域迁移场景,需要将zhangsan@abc.com迁移到zhangsan@efg.com,用户希望在新邮箱中查看过往邮件,此时可以考虑从数据库导出导入PST文件的方式迁移。通过EAC(管理界面)或者命令从源数据库导出邮箱数据(甚至可导出具体某个文件夹或基于某属性的邮件)为PST格式文件,然后导入到目标数据库的邮箱中。可通过CSV清单指引批量操作。
优点:灵活迁移,无需要求Exchange存在同一组织或信任关系
缺点:批量操作繁琐,需要谨慎对待避免人为误差;存在丢失部分邮件的可能,比如附件过大、格式异常
操作过程参考如下:
a) 导出PST文件:
b) 导入PST文件:
c) 或者使用命令导出导入:
New-MailboxExportRequest -Mailbox Sourceuser01 -FilePath \\[SourceIP]\mailbak\user01.pst
New-MailboxImportRequest -Mailbox Targetuser01 -FilePath \\[SourceIP]\mailbak\user01.pst
针对异构邮件系统之间的邮件迁移,因为数据库格式不同,理论上很难从后台迁移数据(更不用说从商业邮件后台导出),此时一般建议利用常见的Outlook/Foxmail客户端实现迁移。
原理是虽然客户端基于不同的协议,如POP3、IMAP4或者MAPI(新版本Foxmail也支持MAPI访问方式)实现邮箱访问,但保存到本地的文件格式却是一致,比如Outlook本地文件格式为PST,foxmail则为eml(一种历史悠久的简单邮件格式)。当重新配置目标邮箱账号并挂在本地文件到新的目录时,在MAPI模式下客户端将自动把邮件数据同步回到数据库。当然也可以指导用户把邮件留在本地查看。
优点:针对异构系统间迁移;减少管理员工作量和压力、降低后台迁移数据丢失风险
缺点:需要宣传和指引用户操作,操作失误可能导致邮件丢失
切换流程如下:
我们很容易发现,以上方法其实没有办法完全解决所有场景,比如使用商业邮箱(比如Gmail)的用户压根不需要客户端访问。此时我们需要一种通用的迁移方法:在线迁移。
实现原理:
在线迁移原理是基于国际通用的邮箱访问协议POP3和IMAP4(基本上市面所有邮件系统产品都支持这两种访问协议),从源邮箱读取邮件数据并在线导入目标邮箱,过程中无需借用客户端,只要求网络连通。
产品开发:
嘉为开发团队设计了一款在线迁移工具,当迁移任务发起,通过预设或输入的账号密码分别访问源和目标邮箱,读取邮件数据到一台中转服务器的内存中临时保存,然后按照原有的目录层级写入到目标邮箱的文件夹中。用户只要发起迁移任务,就可以保在持正常办公的同时等待旧邮件陆续恢复。
冲突解决机制:
a) 断点续传:嘉为在线邮件迁移工具考虑到每个邮箱迁移量不同,时间也不同,过程中难免出现网络中断或其他异常,故设计了断点续传机制,在每次重启迁移任务时自动遍历所有邮件是否迁移的状态值,跳过已经完成迁移的邮件往下迁移,避免重复
b) 多任务队列:当大量用户同时发起迁移任务,将按先后顺序排成队列,陆续执行。故用户只需发起迁移指令后只需要耐心等待即可,等完成迁移后将收到一封提醒邮件并自行检查是否完整。
简易操作界面:
在线迁移工具可以同时提供给用户自助使用,或者管理员批量执行任务。关键在于以何种方式输入邮箱访问账号密码。以下为用户自助迁移登录界面:
以下为管理员批量执行迁移界面:
该解决方案优点非常明显:
a) 突破各种邮件迁移场景,无论是Exchange之间或异构系统之间、商业邮箱或自建邮箱之间
b) 用户自助,有效节省管理员工作量, 减少整个迁移过程耗时
c) 过程中完全不影响用户正常办公
d) 减少用户信息泄密风险
解决方法总比问题多,作为系统管理员,我们庆幸即使邮件迁移场景再多,依然会有合适的解决手段。当然,在日常的运维管理中,除了固定的运维活动以外,我们更多面临着各类无法预料的非技术需求,往往不能“蛮横”地凭借已掌握的旧手段或技术去迎战,而是需要时刻保持着耐心,去观察、发现、总结并提出新的解决思路,才发现打开锁的并一定只有钥匙。