1 应用流程
2 功能说明
2.1 模块划分
模块 | 功能 |
lib/migration_tool.jar | 核心功能,负责搬家任务调度工作。读取本地配置与搬家账号文件,连接远端服务器,进行邮件数据迁移。 |
lib/migration_inspect_tool.jar | 负责搬家任务统计工作。读取本地数据库,统计搬家信息。 |
2.2 配置文件说明
配置项 | 配置名称 | 配置说明 |
数据库 | rocksDb.dir | 数据库存放目录 |
rocksDb.name | 数据库名称 |
线程 | thread.num.work | 工作线程数目,用于调度执行搬家任务 |
原邮箱系统 | migration.source.imap.uri | 原企业邮箱IMAP服务器地址 |
migration.source.imap.port | 原企业邮箱IMAP服务器端口,143/993 |
migration.source.imap.ssl | 是否使用SSL协议登录,值:true/false |
migration.source.auth.user | 原邮箱系统验证认证账号,用于参数认证 |
migration.source.auth.password | 原邮箱系统认证账号密码,用于参数认证 |
目标邮箱系统 | migration.target.gateway.uri | 目标邮箱系统开放网关地址https://alimail-cn.aliyuncs.com |
migration.target.api.key | 目标邮箱系统应用级别API ID |
migration.target.api.secret | 目标邮箱系统应用级别API密钥 |
migration.target.auth.user | 目标邮箱系统认证账号,用于参数认证 |
migration.target.folder | 邮件迁移至目标邮箱系统文件夹名称,值为空时与系统文件夹合并 |
其他 | migration.task.file | 搬家账号清单。存放搬家账号与目标账号对应关系的文件 |
migration.batch.mail.num | 搬家任务执行时每批迁移邮件总数 |
migration.batch.folder.num | 搬家任务执行时每个文件夹迁移邮件总数 |
migration.batch.break.time | 搬家任务执行随机休眠时间,防止任务并发量过多导致系统负载过高。随机休眠时间0-time。单位:秒 |
migration.mail.size.max | 工具能迁移的最大邮件大小,单位:字节 |
2.3 步骤说明
2.3.1 步骤一:下载搬家工具和获取搬家参数
- 登录钉钉OA管理后台,进入企业邮箱应用后,点击服务管理中的邮箱搬家
- 下载搬家工具,将搬家工具下载到本地后解压打开
- 点击【获取搬家参数】,生成系统搬家所需ID与Secret
2.3.2 步骤二:找到上面步骤下载的搬家工具,运行configure.bat脚本,修改配置文件
2.3.3 步骤三:添加搬家账号清单
2.3.4 步骤四:运行startup.bat脚本,启动工具
2.3.5 步骤五:查看搬家进展
执行数据库导出操作,生成搬家日志报告
查看单个搬家账号迁移数据详情
3 注意事项
3.1 控制搬家速度
设置搬家配置参数,需要根据整个系统最大负载压力和搬家账号个数来选择合适搬家速度。
migration.batch.mail.num | 搬家任务执行时每批迁移邮件总数 |
migration.batch.folder.num | 搬家任务执行时每个文件夹迁移邮件总数 |
【migration.batch.mail.num】、【migration.batch.folder.num】参数用于控制搬家任务每批迁移邮件总数,根据系统负载(网络、内存)和搬家账号个数来选择合适搬家速度。
migration.batch.break.time | 搬家任务执行随机休眠时间,防止任务并发量过多导致系统负载过高。随机休眠时间(0, time)之间,比如设置时间为300秒,则每个搬家任务会随机休眠(0, 300)秒时间,再进行迁移。单位:秒 |
【migration.batch.break.time】参数用于控制搬家任务随机开始时间,当设置较小时,并发量过大可能会打垮原邮箱系统和目标邮箱系统,影响正常收发信。
3.2 控制迁移单封邮件最大大小
migration.mail.size.max | 工具能迁移的最大邮件大小,单位:字节 |
【migration.mail.size.max】参数用于控制搬家过程中迁移单封邮件(包含附件)最大限额,防止对目标邮箱系统内存、存储造成压力。超过该限度的邮件被判断不作迁移。
3.3 本地日志与数据库
邮件搬家过程中会在本地生成数据库与日志,其中数据库用于程序中断后保存当前系统状态,从而支持断点续迁邮件
本地日志用于保存程序运行过程中的相关日志,方便异常情况下进行分析。
因此在迁移过程中,不要对本地数据库与日志进行手动删除、修改等操作。