通达oa服务器迁移
- 云服务器
- 2025-08-23
- 6
迁移前准备阶段
环境调研与需求确认
| 检查项 | 备注 | |
|---|---|---|
| 源服务器信息 | CPU/内存使用率、磁盘剩余空间、操作系统版本、数据库类型及版本(如MySQL/SQL Server) | 确保兼容性 |
| 目标服务器配置 | 性能不低于源环境,建议预留20%冗余资源;网络连通性测试(ping延迟<5ms);防火墙策略开放必要端口 | 避免单点瓶颈 |
| 备份策略 | 全量+增量备份组合,验证备份文件可恢复性;建议采用异地存储(如云对象存储)作为二级容灾 | 关键数据双保险 |
| 依赖组件清单 | OA系统运行所依赖的中间件(Tomcat/WebLogic)、JDK版本、第三方接口调用关系梳理 | 防止遗漏隐性依赖 |
风险评估与预案制定
潜在风险点:业务中断时长超过容忍阈值、数据不一致导致历史记录丢失、新环境配置错误引发服务崩溃
应对措施:沙箱环境预演全流程→分阶段灰度发布→回滚机制(保留旧服务器72小时待命)→实时监控告警阈值下调50%

实施步骤详解
▶ Step 1: 停机窗口管理
⏰ 最佳实践:选择非工作日23:00-次日06:00进行核心操作,提前3天发布系统维护公告并关闭自动任务调度
关键动作:执行systemctl stop tomcat停止服务进程 → 等待所有会话超时(可通过日志确认无活跃连接)→ 锁定数据库写权限
▶ Step 2: 数据迁移方案对比表
| 迁移方式 | 适用场景 | 优点 | 缺点 | 推荐指数 |
|---|---|---|---|---|
| 物理文件拷贝 | <50GB小型部署 | 操作简单无需工具 | 大文件易损坏 | |
| Rsync同步 | 跨机房增量更新 | 断点续传支持 | 需手动处理权限映射 | |
| 逻辑导出导入 | 复杂权限体系重构 | 结构化数据处理精准 | 耗时较长 | |
| 快照克隆技术 | 同构环境快速部署 | 分钟级完成基础架构搭建 | 依赖存储网关支持 |
▶ Step 3: 配置适配调整
重点修改项:


- conf/applicationContext.xml中的数据库连接URL替换为新IP:Port组合
- web.xml上下文路径保持与原环境一致以避免URL变更影响客户端收藏夹
- Linux系统下UMASK设置统一为022确保文件权限继承正确性
验证与优化环节
功能完整性测试矩阵
| 模块 | 测试用例示例 | 预期结果 | 实际结果记录栏 |
|---|---|---|---|
| 登录认证 | 使用不同角色账号多次尝试登录 | 成功进入对应工作台 | |
| 流程引擎 | 发起请假审批→各级主管批复→归档 | 全流程顺畅无卡顿 | ⏱️耗时统计:X秒 |
| 附件上传 | 10MB/50MB/100MB文件测试 | 上传成功率≥99.9% | 成功率:Y% |
性能压测指标参考值
| 指标项 | 基线值(TPS) | 目标优化方向 | 调优手段举例 |
|---|---|---|---|
| 并发用户承载量 | 800 | 提升至1200+ | 增加Redis缓存层减少DB交互次数 |
| API响应时间P99 | ≤800ms | 压缩到≤600ms | 启用GZIP压缩传输协议 |
| 垃圾回收频率 | 每30分钟一次 | 延长至1小时以上 | JVM堆内存参数调优(-Xmx设置合理值) |
常见问题与解答
Q1: 迁移后出现”数据库连接失败”报错怎么办?
排查路径:
1️⃣ 检查目标服务器防火墙是否放行了3306(MySQL默认)/1433(SQL Server)端口 → 使用telnet IP Port命令验证可达性
2️⃣ 确认新环境中已创建具有相同权限级别的数据库用户 → 执行SHOW GRANTS FOR 'username'@'host';核对授权情况
3️⃣ 校对配置文件中JDBC URL格式是否正确(特别注意IPv6地址需加方括号包裹)→ 例:jdbc:mysql://[::1]:3306/oadb?useSSL=false
Q2: 为什么部分历史审批记录显示乱码?
根本原因:字符集编码不一致导致的数据解析异常
️ 解决方案:
① 在数据库层面执行ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;进行全局转码
② 确保应用服务器JVM启动参数添加-Dfile.encoding=UTF-8强制统一编码标准
③ 对已存在的乱码字段运行UPDATE tablename SET content=CONVERT(content USING utf8mb4);进行修复
收尾工作清单
️ 旧服务器脱敏处理:使用DBMS自带工具擦除敏感数据(如员工身份证号、银行账户信息)
️ 监控体系升级:部署Prometheus+Grafana实现指标可视化,设置异常波动自动触发钉钉告警
️ 文档归档更新:修订《系统运维手册》中的IP地址列表、应急联系人