背景
源数据库binlog文件为Mixed格式,使用DMS迁移需要将binlog文件转换为ROW格式。binlog转换格式需要调整参数组,参数组该参数需要重启生效,但是生产环境数据库不能进行重启。
需求
- 生产环境数据库主库不能停机或者重启
- 源库和目标库需要进行双向数据库同步
- 源库binlog格式保持Mixed格式不变,又要适配DMS迁移需要的ROW格式,否则DMS会进行报错
目标
- 验证蓝绿部署对源库的性能影响,运行状态影响
- 验证DMS迁移成功性
- 验证目标库增量数据对源库的同步功能,数据库双向同步实现
计划
- 评估测试工具和方案
- 搭建测试环境
- 验证蓝绿部署对源库影响
- 验证DMS迁移工具
- 验证数据库双向同步
- 评估测试结果
Amazon RDS 蓝/绿部署
- 创建复制生产环境的暂存环境。
- 蓝色是当前的生产环境。绿色 是暂存环境。
- 自动将数据库更改从生产环境复制到临时环境。
- 在安全的临时环境中测试数据库更改,而不影响生产环境。
AWS Database Migration Service (AWS DMS)
- 支持多种数据库引擎之间的迁移,包括关系型数据库和非关系型数据库。
- 支持单个数据库或整个数据库实例的迁移,并且可以进行增量迁移,确保在迁移期间对源数据库的操作和更改都能同步到目标数据库中。
- 以处理大规模的数据迁移,支持并行迁移和分布式数据复制,以满足各种规模和需求的迁移任务。
准备工作
创建一个数据库
连接数据库
写入一些数据
查看binlog格式
DMS迁移需要将binlog文件转换为ROW格式
通过蓝绿部署转换文件格式
进入RDS控制台,点击创建参数组
选中刚刚创建的参数组,点击编辑
找到binlog_format,将允许的值修改为 ROW。点击保存更改。
进入RDS控制台,点击左侧导航条数据库,选中创建的数据库,点击创建蓝绿部署。
等待蓝绿部署完成,连接绿数据库,查看数据是否一致
绿数据库与源数据库数据一致
格式转换为ROW
使用DMS工具进行迁移(同AWS平台,跨账号迁移)
前提:跨账户VPC对等连接
打开AWS VPC控制台,左侧导航栏选择对等连接,点击创建对等连接
点击创建对等连接后,将会发送一则消息给到接收方,需要接收方接受请求
打开AWS VPC控制台,左侧导航栏中选择对等连接,选中对等连接请求,点击接受
配置对等连接之后,需要配置路由表,以便源端数据库和目标端数据库可以互通
左侧导航栏选择路由表,选择源数据库所在的子网,在路由选项卡下,点击编辑路由
切换到目标端账号。打开AWS VPC控制台,左侧导航栏选择路由表,选择源数据库所在的子网,
在路由选项卡下,点击编辑路由
使用DMS进行数据迁移
在目标端,打开AWS DMS控制台,左侧导航栏选择子网组,点击创建子网组
左侧导航栏选择复制实例,点击创建复制实例
左侧导航栏选择端点,点击创建端点
再点击创建端点,创建目标端点
左侧导航栏选择数据库迁移任务,点击创建数据库迁移任务
等待数据迁移任务完成
连接目标数据库检验是否迁移完成。数据一致成功迁移。
测试往蓝绿部署的蓝数据库写入数据
这时蓝绿部署会实时更新数据库数据给绿数据库
再通过DMS迁移复制新更新的数据
结论
- 蓝绿部署创建时会占用源库部分性能,源库测试环境数据量大致90MB情况下,性能占用时长大致4分钟,客户生产环境实际测试没有业务上影响
- 蓝绿部署中绿库修改参数组,重启生效等操作不影响主库
- DMS数据迁移连接绿裤和目标库进行运行,不影响源库性能
- 搭建完成后,目标库的变动同步源库