开发者社区 问答 正文

源表DMS_ONLINE_DDL过程中是否复制临时表到目标库的配置的说明是什么?

源表DMS_ONLINE_DDL过程中是否复制临时表到目标库的配置的说明是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-12 21:43:25 386 分享 版权
阿里云 AI 助理回答

在配置阿里云DTS(数据传输服务)时,关于源表Online DDL过程中是否复制临时表到目标库的控制,可以通过以下参数进行设置:

  • 参数名称whitelist.dms.online.ddl.enable
  • 配置条件:当目标数据库类型为MySQL(包括RDS MySQL、自建MySQL)、PolarDB MySQL版、AnalyticDB MySQL版或AnalyticDB PostgreSQL版,并且任务是同步或迁移实例时。
  • 配置选项及说明

    • 复制临时表数据:若希望同步过程中包含由在线DDL工具(如DMS或gh-ost)产生的临时表数据,需设置whitelist.dms.online.ddl.enabletrue,同时确保其他相关参数如sqlparser.dms.original.ddlfalse,以及whitelist.ghost.online.ddl.enabletrue。这表示会将源库中因Online DDL操作而产生的临时表结构及数据一并复制到目标库中。

    • 不复制临时表数据:如果不需要复制临时表,而是仅同步源库执行的原始DDL语句,可以选择不同的配置组合:

    • 仅适配DMS Online DDL:设置whitelist.dms.online.ddl.enablefalse,并且sqlparser.dms.original.ddltrue,这样只会同步DMS执行的原始DDL操作到目标库,不会包括临时表数据。但请注意,此方案会导致目标库锁表。
    • 仅适配gh-ost:同样地,将whitelist.dms.online.ddl.enable设为false,同时sqlparser.ghost.original.ddl设为true,以同步gh-ost执行的原始DDL,此时也需要考虑配置影子表和无用表的正则表达式。此方案同样会导致目标库锁表。

综上所述,通过调整这些参数,您可以灵活控制DTS任务在处理源库Online DDL操作时,是否及如何处理临时表数据,以满足不同场景下的数据同步需求。

重要提醒:选择不复制临时表数据并仅同步原始DDL时,务必注意目标库可能发生的锁表情况,这对业务连续性有直接影响,请根据实际情况谨慎选择配置策略。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答