Skip to main content

MySQL

支持的对端数据源及功能

请选择对端数据源,文档相关内容会根据对端数据源不同而调整。

选择对端:

核心能力

功能MySQL
结构迁移

全量数据迁移

增量实时同步

数据校验

数据订正

DDL实时同步
  • 增/减列
  • 增/减索引
  • 修改列
  • 重命名列
  • 表分区操作
  • 重命名表
  • 创建表

使用限制与注意点

说明
有限的存储引擎支持

不支持除InnoDB以外的存储引擎

地理信息类型兼容

不支持地理信息类型

数据迁移与同步
  • utf8、utf8mb4、latin以外的字符集未验证
  • 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据,例如无主键表的迁移与同步
  • 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。
  • 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。
  • 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。

字段类型与映射

MySQLMySQL
BIGINTBIGINT
BINARYBINARY
BITBIT
BLOBBLOB
CHARCHAR
DATEDATE
DATETIMEDATETIME
DECIMALDECIMAL
DOUBLEDOUBLE
ENUMENUM
FLOATFLOAT
GEOMCOLLECTIONGEOMCOLLECTION
GEOMETRYGEOMETRY
GEOMETRYCOLLECTIONGEOMETRYCOLLECTION
INTINT
JSONJSON
LINESTRINGLINESTRING
LONGBLOBLONGBLOB
LONGTEXTLONGTEXT
MEDIUMBLOBMEDIUMBLOB
MEDIUMINTMEDIUMINT
MEDIUMTEXTMEDIUMTEXT
MULTILINESTRINGMULTILINESTRING
MULTIPOINTMULTIPOINT
MULTIPOLYGONMULTIPOLYGON
POINTPOINT
POLYGONPOLYGON
SETSET
SMALLINTSMALLINT
TEXTTEXT
TIMETIME
TIMESTAMPTIMESTAMP
TINYBLOBTINYBLOB
TINYINTTINYINT
TINYTEXTTINYTEXT
VARBINARYVARBINARY
VARCHARVARCHAR
YEARYEAR

必要条件

必要条件说明
账号权限见:MySQL需要的权限
开启binnlogCloudCanal订阅源端MySQL增量强依赖binlog file和ROW模式,请确保MySQL数据库开启binlog模式

[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式

常用源端任务参数

参数名称说明
dbHeartbeatEnable默认为false,设置为true允许CloudCanal定时向源端执行dbHeartbeatOp参数指定的SQL,从而避免源端实例没有任何变更时,增量任务会延迟的问题。
filterDDL设置为true时将不会同步源端产生的DDL SQL
srcTimeZone支持自定义时区处理。如果该值不为空则会在接受到的时间对象上按照设置的值增加或者减少x个小时,其中x范围是-12~+12
needJsonEscape如果源端json类型的字段值中包含特殊字符导致写入对端失败,可以开启json转义功能对特殊字符进行转义

Tips: 所有数据源均有的通用参数配置请参考 通用参数及功能

数据源添加参数说明

项名称说明
网络地址类型分为内网地址和外网地址。一个数据源可以包含一个内网地址和一个外网地址。网络地址格式为ip地址和port。默认添加的为内网地址,需要添加外网地址可以点击右侧+号
账号数据库服务端账号
密码数据库服务端密码
描述非必填项,填写描述信息,方便管理数据源
物理位置物理位置仅仅是一个标记,在管理多地域数据库时方便识别

高级功能

MySQL->MySQL双向同步

MySQL到MySQL之间的数据迁移同步支持双向同步,具体请参考:双向数据同步(进阶)

支持gh-ost和pt DDL在线变更工具

当前以下链路支持gh-ost和pt的在线DDL变更。具体说明参考文章:Online DDL 工具 GH-OST 和 PT-OSC 的支持

  • MySQL -> MySQL
  • MySQL -> PostgreSQL
  • MySQL -> Greenplum
  • MySQL -> Kafka
  • MySQL -> RocketMQ
  • MySQL -> RabbitMQ

参考资料

链路创建示例

相关FAQ

相关案例