slave-parallel-type=LOGICAL_CLOCK ##默认database ,logical_clock可能还存在bug,5.7.19修复主从不一致bug
* Replication: In certain cases, the master could write to the binary log a last_committed value which was smaller than it should have been. This could cause the slave to execute in parallel transactions which should not have been, leading to inconsistencies or other errors. (Bug #84471, Bug #25379659) MySQL 5.7.19版本修复
slave-parallel-workers=4 # 根据并发度设置,如果不需要并发,设置为0,不要设置为1. 1的性能比0差。
以前的sql单线程变成4个线程 Waiting for an event from Coordinator
mysql> show processlist; +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ | 18 | system user | | NULL | Connect | 606530 | Slave has read all relay log; waiting for more updates | NULL | | 19 | system user | | NULL | Connect | 606593 | Waiting for an event from Coordinator | NULL | | 20 | system user | | NULL | Connect | 838818 | Waiting for an event from Coordinator | NULL | | 21 | system user | | NULL | Connect | 841404 | Waiting for an event from Coordinator | NULL | | 22 | system user | | NULL | Connect | 841404 | Waiting for an event from Coordinator | NULL | | 31 | system user | | NULL | Connect | 862799 | Waiting for master to send event | NULL | | 40 | root | localhost | NULL | Query | 0 | starting | show processlist | +----+-------------+-----------+------+---------+--------+--------------------------------------------------------+------------------+ 7 rows in set (0.06 sec)
并不是严格要求所有同时进入Prepare阶段的事务都在备库并发执行,因此一组提交的事务中可能存在不同的seq no
可以发现较之原来的二进制日志内容多了last_committed和sequence_number,last_committed表示事务提交的时候,
上次事务提交的编号,如果事务具有相同的last_committed,表示这些事务都在一组内,可以进行并行的回放。
#170623 22:27:43 server id 45 end_log_pos 2781491 CRC32 0x1dcd41fa GTID last_committed=816 sequence_number=817 #170623 22:27:43 server id 45 end_log_pos 2785022 CRC32 0x2d28e1b7 GTID last_committed=816 sequence_number=818
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
时间: 2024-10-03 13:44:59