oracle迁移mysql总结
- mybatis语句改造
日期函数,分页关键字,经纬度,自增主键 - 数据导入
navicat or datax
数据验证 datax的导入成功的比例
测试验证:使用goreplay将老编排服务复制流量复制新编排服务对返回结果进行对比 - 迁移方案
两套集群,回滚方案 - 具体实施
- 网关断流
- 新老集群服务停止
- 灰度测试数据清空
- 导数据
- 导灰度测试订单
- 测试验证
- 网关接流
- 测试端测
其中还包括域名的切换,报表服务nas的挂载
- 迁移总结
- 迁移前
灰度环境测试演练 - 迁移中
严格按照迁移前的演练 - 迁移后
日志巡检,监控,问题查证。
- 遇到问题
mybatis sql改造部分服务自增主键迁移漏掉
datax json脚本问题:字段关键字,主键字段不对,缺失部分表(管理平台权限)
生产导入:内存溢出oom
主键自增,字段类型,索引新增 数据量非常缓慢
数据库问题测试环境5.x,dba通知生产8.x
安装时需要忽略表名大小写
数据库连接池 dba将wait_timeout 更改为2100s不是默认的8h
hikari连接池配置更改
hikari.minimum-idle: 10
hikari.idle-timeout: 180000
hikari.maximum-pool-size: 50
hikari.auto-commit: true
hikari.max-lifetime: 1200000
hikari.connection-timeout: 30000
hikari.connection-test-query: SELECT 1 FROM DUAL
压测问题:某列表接口tps低,吞吐低,程序未报错,初步怀疑redis问题,redis性能基准测试没问题。
日志没采集,本地日志报获取不到连接,怀疑慢查询,dba导出慢查询日志,存在慢查询日志,但是查询时速度却很快
后加上索引重新压测满足条件。单个查询快并不代表高并发查询快。该加索引还得加。mysql太精致了。
切割当晚:
运维流程不规范(灰度验证环境服务没停导致新库部分表产生脏数据)
灰度测试订单脚本问题导入新库报错(后市场对账单发现缺失订单)
缺失部分表导致管理界面菜单列表未显示(此问题测试,灰度,割接当晚均出现)
网络问题: 三方回调,支付回调,新网关域名,
mysql到新服务的网络策略