有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

使用 gh-ost、 pt-online-schema-change(下文简称 pt-osc )等工具对源库中的表做 Online DDL,需要将 Online DDL 变更产生的临时表同步到目标库。 DTS 支持在选择同步对象时,提前关联对象表的临时表名,在后续源库产生临时表时一并进行同步。
使用 gh-ost 工具对表 表名 做 Online DDL,DTS 支持同步临时表 _表名_ghc_表名_gho_表名_del 到目标库。
使用 pt-osc 工具对表 表名 做 Online DDL,DTS 支持同步临时表 _表名_new_表名_old 到目标库。

适用范围

同步 Online DDL 临时表支持的链路范围如下:
MySQL/MariaDB/Percona/TDSQL-C MySQL > MySQL
MySQL/MariaDB/Percona > MariaDB
MySQL/MariaDB/TDSQL-C MySQL > TDSQL-C MySQL
MySQL/MariaDB/Percona/TDSQL-C MySQL > Kafka
MySQL/MariaDB/Percona > TDSQL TDStore

约束限制

表映射(表重命名)功能与迁移 Online DDL 临时表功能冲突,只能选择一个功能使用。

操作步骤

1. 登录 DTS 控制台,在左侧导航选择数据同步页,创建同步任务。
2. 在“设置同步选项和同步对象”步骤中,勾选是否同步 Online DDL 临时表,和 Online DDL 工具
勾选 gh-ost,DTS 会将 gh-ost 工具产生的临时表名(_表名_ghc_表名_gho_表名_del)迁移到目标库。
勾选 pt-osc, DTS 会将 pt-osc 工具产生的临时表名(_表名_new_表名_old)迁移到目标库。
说明
右方已选对象中,需要勾选指定的表对象,下面才会显示“是否同步 Online DDL 临时表”的按钮,勾选库名,或者勾选 Tables,无法显示“是否同步 Online DDL 临时表”的按钮。
如果源库中已存在与临时表名 _表名_new_表名_old 相同的表名,则 pt-osc 会产生其他临时表,由于 pt-osc 产生的其他临时表名并非固定,DTS 无法同步其他临时表。这种情况同步对象不能仅选择这个表,需要选择这个表所在的整个库(或者整个实例),否则无法同步 Online DDL 变更产生的临时表数据到目标数据库。