MySQL实例的双向同步
更新时间:2023-10-12
概览
本文主要介绍通过DTS数据迁移功能进行MySQL实例间的双向同步。
需求场景
适用于异地多活或异地容灾场景,用户可使用百度智能云数据传输服务DTS,将云数据库 MySQL 实例或者自建 MySQL 数据库实例的数据,迁移到云数据库 MySQL 实例或者自建 MySQL 数据库实例中。
方案概述
前置条件
- 已创建源端和目标端RDS MySQL实例。
- binlog_format已经开启ROW模式。
- 双向同步任务仅支持有主键表迁移。
-
双向同步支持所有DML(Insert/Update/Delete)和部分DDL语法的同步。支持的DDL语句如下:
- CREATE DATABASE、CREATE INDEX、CREATE TABLE、CREATE PROCEDURE、CREATE FUNCTION、CREATE VIEW
- ALTER TABLE、ALTER VIEW、ALTER FUNCTION、ALTER PROCEDURE
- DROP FUNCTION、DROP INDEX、DROP PROCEDURE、DROP TABLE、DROP VIEW
- RENAME TABLE、TRUNCATE TABLE
为了保证双向同步链路的稳定性,所有表的DDL更新只能在其中一个同步方向进行。
迁移要求
实例要求
源端和目标端MySQL实例应为不同实例,不支持同实例间的迁移。
版本要求
建议源端和目标端数据库版本保持一致,避免可能存在的数据库兼容性问题。
迁移限制
- 若为增量同步任务,DTS要求源库的本地Binlog日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的本地Binlog日志至少保留7天以上,以避免DTS因无法获取Binlog而导致任务失败的可能,极端情况下甚至出现数据不一致或丢失。
- 为保障同步数据的一致性,业务需要确保同一个主键、业务主键或唯一键的记录只在双向同步的一个节点进行更新。
- 不支持在源端和目标端使用触发器。
操作步骤
- 登录百度智能云访问控制台,购买数据迁移实例。
- 点击「配置任务」按钮,开始对实例进行迁移任务的配置。
-
根据需要填写「任务名称」;在「源库信息」和「目标库信息」中,选择不同MySQL实例作为源端和目标端。

- 点击「授权白名单进入下一步」按钮,继续配置迁移类型及库表。
- 设置完成后,点击「保存并预检查」开始预检查,稍等片刻,页面显示任务校验成功。
- 点击「立即开启任务」按钮或者返回列表点击操作列「启动」按钮即可启动任务。

若正向子任务包含了结构和全量迁移,那么启动主任务时只能启动正向子任务;待正向任务运行到增量阶段,用户才可启动反向子任务。
相关产品
云数据库 RDS:专业、高性能、高可靠的关系型数据库