京东云RDS数据迁移常见场景攻略
字数 1787 2025-08-11 08:35:57
京东云RDS数据迁移常见场景攻略详解
一、数据迁移上云
1.1 迁移工具介绍
京东云提供两种DTS(Data Transformation Service)迁移工具:
- 数据迁移:适合传统迁移场景
- 数据同步:适合高效同步需求
1.2 迁移原理详解(以MySQL为例)
迁移三阶段
-
全量迁移阶段
- 数据迁移工具:
- 使用
mysqldump --single-transaction获取一致性快照 - 无法保证非事务引擎表的数据一致性
- 串行操作
- 使用
- 数据同步工具:
- 多表并行select方式
- 根据主键顺序分批获取记录(无主键则全表查询)
- 不加锁、不开启事务,全量期间数据不一致
- 只提供"全量+增量"和"增量"选项
- 数据迁移工具:
-
增量迁移阶段
- 两种工具都通过记录的gtid点位抓取binlog同步到目标端
- 区别:
- 数据迁移:串行执行
- 数据同步:合并同表事务后一次提交(效率更高)
-
数据校验阶段
- 源库数据分块计算crc
- 校验信息存储在目标库
_jdts_check前缀的库下checksum表 - 目标库同步完成后进行相同算法计算比较
1.3 常见问题解答
-
迁移速度调整
- 数据迁移:不可调整
- 数据同步:可选择更大迁移实例和增加并发(基于表粒度)
-
迁移进度显示超过100%
- 原因:基于数据字典记录数估算,不完全准确
-
迁移延时问题
- 可能原因:
- 源库写操作压力大
- 目标库读写压力大
- 迁移实例压力大
- 可能原因:
-
目标库读写建议
- 理论上可读写但不建议
- 弊端:
- 可能导致校验不一致
- 增加目标库压力,减缓同步速度
-
同名库表处理
- 目标库有数据:预检报错
- 目标库为空:直接写入
-
网络不通问题
- 检查源库和目标库白名单
- 需添加dts迁移实例IP
-
_jdts前缀库处理- 迁移完成后可删除
-
只读实例同步
- 支持,只要源实例是gtid方式复制
-
内网迁移格式限制
- 数据迁移:只能使用json格式(迁移实例未创建无法判断连通性)
- 数据同步:已改进,内外网均可图形化选择库表
-
源实例影响
- 两种工具都会产生读IO压力
- 建议:
- 业务低峰期同步
- 从只读实例同步
- 数据同步可通过控制台暂停/启动
-
MySQL系统库迁移
- 不支持迁移MySQL库
- 建议:
- 目标库提前创建用户和权限
- 使用mysqldump等工具导入
-
Got fatal error 1236报错
- 原因:增量需要的binlog在源端被删除
- 解决方案:
- 迁移期间保留较长时间binlog
- 无法找回则需重新迁移
-
版本一致性要求
- 数据迁移:要求版本一致
- 数据同步:支持低→高版本迁移
二、异地灾备方案
2.1 跨地域备份同步
- 特点:
- 定期同步最新备份到异地
- 简单免费
- 缺点:
- 数据非实时
- 灾备恢复会有数据丢失
2.2 灾备同步(仅支持MySQL)
- 实现方式:
- 创建异地灾备实例
- 使用DTS数据同步功能
- 同步方式选择"灾备同步"
- 特点:
- 利用MySQL原生复制
- 灾备实例与源实例完全一致(相当于异地只读实例)
2.3 灾备实例注意事项
-
源端限制:
- 仅支持京东云MySQL
- 不支持自建或第三方云实例
-
操作限制:
- 无法进行变配/重启/主从切换
- 需提前选好规格
-
实例特性:
- 主从架构
- 可读不可写(类似异地只读实例)
- 可手工提升为主备实例
-
同步终止:
- 手工结束同步后,灾备实例自动提升为普通主备实例
三、数据订阅服务
3.1 适用场景
- 订阅数据到ES扩展搜索
- 上下游订阅价格变更/服务通知
- 多业务库数据合并/构建宽表
3.2 支持情况
- 源端:MySQL/Percona/MariaDB/PostgreSQL
- 目标端:仅支持Kafka
3.3 数据格式示例
{
"operation": "update",
"data": {
"before": {"id":1,"price":100},
"after": {"id":1,"price":120}
}
}
3.4 注意事项
-
消息长度限制:
- 超过中间件最大长度时消息将被丢弃
- 存在丢失数据风险
-
订阅起点:
- 默认从订阅实时时间点开始
- 需要全量订阅需联系京东云技术支持
四、自建MySQL与云上MySQL相互复制
4.1 复制方向限制
-
云上MySQL作为自建MySQL从库:
- 不支持(京东云账号无super权限,无法执行change master)
-
自建MySQL作为云上MySQL从库:
- 技术上可行(自建MySQL有super权限)
- 但不建议使用(非标准操作)
4.2 潜在问题
- 复制中断风险:
- 云上MySQL主从切换时
- 自建从库有复制延迟时
- 可能导致binlog缺失,报错1236
4.3 缓解方案
- 扩容时选择延迟切换
- 避开业务高峰