有奖捉虫:云通信与企业服务文档专题,速来> HOT
说明
旧版数据库同步服务不再可用,请使用 数据传输服务 DTS 进行数据同步。

数据同步要求

数据同步功能支持两个数据源之间的数据实时同步,可应用于本地数据灾备、查询与报表分流、商业智能分析(BI)及实时数据仓库等多种业务场景。
说明
数据库同步不支持 pt-osc 等第三方工具。
支持同步的实例类型
源实例类型
目标实例类型
【公有云】云数据库 MariaDB/MySQL
【公有云】云数据库 MariaDB/MySQL
【公有云】云数据库 PostgreSQL
【公有云】消息队列 Ckafka
【专有云】云数据库 MariaDB/MySQL
【公有云】分布式数据库
【公有云】分布式数据库
【公有云】消息队列 Ckafka
【专有云】分布式数据库
支持的同步拓扑 数据库同步功能支持“一对一单向同步、一对多单向同步、级联单向同步、多对一单向同步”的串行拓扑,不支持“双向环状同步”拓扑。
支持的实例版本
MariaDB 10.0、10.1
MySQL 5.6、5.7
PostgreSQL 9.6
Ckafka 所有版本
支持的同步语法
DML 操作:INSERT、UPDATE、DELETE。
DDL 操作:CREATE TABLE、ALTER TABLE、ADD COLUMN、DROP COLUMN、RENAME COLUMN。
数据库同步对象 同步对象支持精确匹配数据库、表;支持正则匹配数据库、表。暂不支持非数据表对象,如存储过程、视图、索引、触发器等,如需非数据表对象请在目标端手动创建。
数据库同步费用 数据库同步功能目前免费。
数据库同步网络 目前仅支持腾讯云同地域内数据库实例之间及专线内的数据库同步。跨地域的数据同步或灾备需 提交工单,工单请备注两地实例 ID 和同步需求,审批通过后方可开启。

数据同步功能

数据类型转换

MariaDB/MySQL 到 PostgreSQL 的同步

MariaDB/MySQL 与 PostgreSQL 的数据类型不同,数据库同步工具将按如下规则进行转换:
MariaDB/MySQL 数据类型
同步到 PostgreSQL 后的数据类型
tinyint/smallint
smallint
mediumint/int
integer
bigint
bigint
real/double
double precision
float
float
bit
bit
bool/boolean
boolean
char/varchar
char/varchar
binary/varbinary
text
year/date/time/datetime/timestamp
timestamp without time zone
tinyblob/mediumblob/blob/longblob/long
bytea
mediumtext/text/longtext
text
decimal/numeric
decimal/numeric
enum
integer
说明
表中所述类型的列在转换过程中数据长度保持不变,表中未列出类型在转换过程中保持不变。

MariaDB/MySQL 到分布式数据库的同步

MariaDB/MySQL 与分布式数据库的数据类型相同,不存在数据类型转换情况。

MariaDB/MySQL 到 CKafka 的同步

相关数据将转换为 JSON 格式,请参见 Binlog 日志消费格式

分布式数据库到 CKafka 的同步

相关数据将转换为 JSON 格式,请参见 Binlog 日志消费格式

数据订阅功能

数据同步到 Ckafka 已支持数据订阅,配置前需先购买 Ckafka,详细介绍请参见 消息队列 CKafka,配置建议如下:
规格 可通过计划同步的实例每日更新数据量、日均峰值或平均值、计划保留在 Ckafka 的时间来评估 Ckafka 实例规格。 例如,某实例每日更新1000万行,每行数据2KB,日均写入峰值为2万行每秒,期望 Ckafka 选用3副本,存储数据3天。 则该实例每日更新数据20GB,转换为 JSON 后约30GB,存储3天,3副本约需要空间270GB,数据库写入峰值带宽约39MB/s,Ckafka 选3副本的吞吐量约117MB/s,选择 Ckafka 的标准型即可基本满足需求。
网络 建议与源实例处于相同的 VPC 网络下。
topic 选择 一个同步任务需占用1个 topic,多个同步任务需分别选择多个且不同的 topic,否则可能导致数据混乱。
参数选择 以下建议仅供参考,具体请根据实际需求选择。
分区数(partition):1
副本数:3
cleanup.policy:删除
min.isync.replicas:2
unclean.leader.election.enable:false
数据一致性 由于网络中断或其他原因,数据库实例生产到 Ckafka 的消息可能重复,此时消费端重放数据时,可以采用幂等方式消除。
说明
幂等,即多次重复执行消息时,最终数据一致,当遇到主键冲突的记录时,先进行 delete 再 insert,如果 update 无法匹配到数据,会强行插入;delete 找不到数据,直接跳过。通过幂等方案即可以实现数据消费一致性。使用幂等时表必须要有主键或有不能为 NULL 值的唯一索引。