Mysql集群binlog复制顺序
Mysql Cluster binlog replication order
我们的 mysql 复制堆栈面临一个问题:我们实际上有一个 mysql ndb 集群 (7.6.11) 作为主节点和一个 innoDB(5.7) 作为从节点。一切似乎都在正常工作,直到我们意识到某些语句没有被执行到从站中。
长话短说:master binlog 中的一些语句被写入顺序切换(执行顺序!= log 顺序)并且当 slave 试图复制它时,它面临 foreign_key 约束错误。
我们检查了配置,一切正常:
master(集群)配置:
-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
slave(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
我们是不是毁了什么东西?
对于那些到达此 post 并遇到相同问题的人,我设法完成了正确的顺序设置:
- TimeBetweenEpochs=0
我实际上正在评估此更改的影响,但至少复制按预期工作。
我们的 mysql 复制堆栈面临一个问题:我们实际上有一个 mysql ndb 集群 (7.6.11) 作为主节点和一个 innoDB(5.7) 作为从节点。一切似乎都在正常工作,直到我们意识到某些语句没有被执行到从站中。
长话短说:master binlog 中的一些语句被写入顺序切换(执行顺序!= log 顺序)并且当 slave 试图复制它时,它面临 foreign_key 约束错误。
我们检查了配置,一切正常:
master(集群)配置:
-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
slave(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
我们是不是毁了什么东西?
对于那些到达此 post 并遇到相同问题的人,我设法完成了正确的顺序设置:
- TimeBetweenEpochs=0
我实际上正在评估此更改的影响,但至少复制按预期工作。