迁移迁准备
所需工具
- 阿里云源实例RDS for PG
- 华为云目标实例 RDS for PG
- 阿里云网关DG
- 阿里云DTS
- 网络白名单添加
- 阿里云源实例RDS参数调整
实例初始化
依然走资产平台线上申请,由佳敏等统一创建
- 实例申请:统一申请华为RDS for PG,大版本与阿里相同都买12就行,原则上每个产品线一个实例,如有性能需求较大的可单独申请实例
- 安全组选择: 测试环境单独一个,正式环境按产品线分不同安全组
- 实例自定义参数调整:参考 共享文档;
- 备份恢复策略制定:参考同上
- 白名单添加:直接加入安全组,无需单独给实例添加白名单
项目资源初始化
依然走资产平台线上申请,由佳敏等统一创建
- 数据库创建:注意备注,需要登录华为云DAS平台创建
- 账号创建:注意备注,账号权限范围需要自己手动选择,(待出具具体选项)
- 阿里云DMS工具注册,本期会用企业网关方式将华为云内网接入阿里云VPC,使其可以互通,数据库管理工具依然统一使用阿里DMS
- DMS资源访问权限分配
网络连接
- 阿里云搭建与华为云内网互通的网关: 已搭建好的网关名称:<font color=orange>dg-qmv45by5l8xf403w</font> (华为云_DG)
- 目标实例华为云RDS-PG所属安全组添加阿里云网关白名单
- 源实例阿里云RDS添加DTS网段白名单
源实例参数调整
-
初始化之前,需要调整源实例参数:
wal_level
为logical
,此参数调整需要<font color=red>重启实例</font>,大家注意合理安排调整时间。
迁移对象整理
- 整理需迁移项目都建立了哪些表、视图、过程和函数等对象,待同步链路里选择;
阿里云DTS实时迁移任务创建
使用阿里云lunz账号下子账号,创建DTS<font color=red>数据同步</font>任务。如源实例不在此账号下,可协调SRE获取跨账号选择源实例的实例Id和角色相关信息。
- 源实例信息填写,<font color=orange>DTS迁移PG只能按单库迁移,账号只能使用高权限账号</font>,填好数据库名称、账号、密码;
- 目标实例信息填写,接入方式选择数据库网关DG,数据库网关Id:<font color=orange>dg-qmv45by5l8xf403w</font> (华为云_DG),数据库、账号需要提前创建,此处<font color=red>账号只能用华为云root账号</font>。
- 任务创建,任务步骤中勾选库表结构同步、全量同步。
- 同步对象选择,因阿里和华为支持得插件种类和数量不一致,需要只迁移自定义的对象,不能整库迁移,按上面整理出来的迁移对象勾选,特别是视图、函数。这里库内自带系统函数比较多,阿里DTS勾选界面有BUG可能不能翻页,建议不选函数,在目标库直接手动创建。
- 高级配置部分。
- 预检查,可能遇到的问题,基本都是权限相关,如果源和目标都使用了高权限账号,迁移对象确保没有添加系统自带部分,预检查基本会正常通过。
源库日志参数未设置正确
源库修改参数需重启实例
源库账号没复制权限(需更改用root账号)
目标库账号权限不足
非FULL模式
同步对象选择问题
插件不支持问题报错
- 购买,建议选择medium规格(可按项目数据量大小按需调整),按量付费(一般提前一周进行)。
正式环境迁移模拟,性能测试
数据同步
步骤如上介绍。
测试迁移完整性
- 核对视图、过程、函数数量;
-
核对业务系统是否有使用华为云PG不支持的扩展插件; 查询插件语句
SELECT * FROM pg_available_extensions;
,阿里云支持插件汇总
测试性能
- 在源库筛选慢SQL
- 在华为云数据库测试慢SQL执行速度
- 查看执行计划区别
- 是否有执行时间断崖式下降的SQL
- 将常用的一些语句,使用 mysqlslap 压测与源实例对比,也可以使用行业内通用压测工具,Sysbench 测试,这个工具不能指定压测SQL语句。
测试环境迁移
数据同步
- 提前7天将数据同步链路建立,确保数据同步完全、同步延迟在可控范围内;
- 切换当晚,首先停掉应用;
- 停用阿里测试库账号;
- 开启应用;
- 7天后数据无问题,停掉DTS同步链路;
- 删除阿里RDS测试环境数据库;
正式环境迁移
- 提前7天将数据同步链路建立,确保数据同步完全、同步延迟在可控范围内;
- 切换当晚,首先<font color = red>停掉应用</font>;
- <font color = red>停用阿里应用账号</font>;
- <font color = red>开启应用</font>;
- 测试应用性能;
- 7天后数据无问题,停掉DTS同步链路;
- 删除阿里RDS数据库;