You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symmetric DS能否将MySQL企业节点的删表操作同步至门店节点?

解决MySQL双向同步场景下DROP TABLE同步失效问题

排查同步失效原因

  • 检查企业节点binlog是否记录DROP TABLE事件:
    执行SHOW BINLOG EVENTS IN 'mysql-bin.xxxxxx' LIMIT 100;(替换为实际binlog文件名),确认是否存在对应DROP TABLE的事务记录。
  • 检查门店节点复制状态:
    执行SHOW SLAVE STATUS\G,查看Slave_IO_Running、Slave_SQL_Running是否均为Yes,同时检查Last_SQL_Error是否有报错信息,确认是否存在事务跳过的情况。
  • 检查同步过滤规则:
    确认双向同步配置中是否存在replicate_do_db、replicate_ignore_db等规则,导致DROP TABLE语句被过滤;部分第三方同步工具会默认忽略DDL,需确认是否开启DDL同步开关。

强制同步DROP TABLE的可行操作

  1. 手动执行DDL并恢复同步
    • 暂停门店节点复制:STOP SLAVE;
    • 手动执行删除表语句:DROP TABLE IF EXISTS customers;
    • 恢复复制:START SLAVE;
    • 再次执行SHOW SLAVE STATUS\G确认同步正常,无报错。
  2. 修正同步工具命令执行方式
    • 若使用send-sql命令,需确保指定正确目标节点及完整语法,例如:send-sql --target=store_node "DROP TABLE IF EXISTS customers;"(需根据工具实际参数调整)
    • 执行命令后查看同步工具的本地日志,确认命令已被目标节点接收并执行。
  3. 重新同步触发器
    • 完成表删除后,执行sync-triggers命令重新同步双向同步的触发器规则,避免后续数据同步出现异常。

可行性说明

双向同步场景下同步DROP TABLE操作完全可行,但需注意:

  • 执行前需确保两个节点的customers表数据已完全同步,避免数据丢失;
  • 基于GTID的复制需确认企业节点的DROP TABLE事务GTID已被门店节点执行,可通过SELECT @@GLOBAL.GTID_EXECUTED;对比两个节点的GTID集合;
  • 部分同步工具会对DDL做循环复制防护,需确认工具配置是否允许DDL跨节点同步,避免规则拦截。

内容的提问来源于stack exchange,提问作者realSequence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:08:27