MySQL Cluster binlog 复制顺序

MySQL Cluster binlog 复制顺序

我们的 MySQL 复制堆栈存在一个问题:我们实际上有一个 MySQL ndb 集群 (7.6.11) 作为主服务器,一个 innoDB(5.7) 作为从服务器。一切似乎都运行正常,直到我们意识到有些语句没有在从服务器上执行。

长话短说:主 binlog 中的一些语句的写入顺序被切换了(执行顺序 != 日志顺序),当从属服务器尝试复制它时,它面临着 foreign_key 约束错误。

我们已经检查了我们的配置并且一切看起来正确:

主(集群)配置:

-binlog_order_commits=ON
-innodb_api_enable_binlog=OFF
-innodb_flush_log_at_trx_commit=1
-log_bin=ON
-log_slave_updates=OFF
-slave_parallel_type=DATABASE
-slave_parallel_workers=0
-slave_preserve_commit_order=OFF
-sync_binlog=1
-ndb_log_binlog_index
-ndb_log_updated_only=ON
-ndb_log_update_as_write=OFF

从属(innodb)配置:

-binlog_order_commits=ON
-innodb_api_enable_binlog=OFF
-innodb_flush_log_at_trx_commit=1
-log-bin
-log_slave_updates=ON
-slave_parallel_type=DATABASE
-slave_parallel_workers=0
-slave_preserve_commit_order=OFF
-sync_binlog=1

我们是不是毁掉了什么东西?

答案1

对于那些遇到同样问题的人,我设法完成了正确的顺序设置:

  • 时间间隔=0

我实际上正在评估这一变化的影响,但至少复制正在按预期进行。

相关内容