外观
Mysql 集群是如何进行主从同步的?
MySQL
的主从同步是一种数据复制技术,用于将主数据库上的数据同步到一个或多个从数据库中去。
具体步骤:
- 主库记录二进制日志(
Binary Log
):主库(Master
)在事务提交时,会将数据变更记录到二进制日志中。这些记录称为二进制日志事件(Binary Log Events
)。 - 从库读取并写入中继日志(
Relay Log
):从库(Slave
)启动I/O
线程,连接到主库的二进制日志转储线程(Binlog Dump Thread
),读取主库的二进制日志,并将其写入本地的中继日志(Relay Log
)。 - 从库执行中继日志中的事件:从库的
SQL
线程读取中继日志中的事件,并在本地数据库中执行这些事件,从而实现数据同步
扩展:
MySQL
主从同步支持以下几种复制方式:
- 异步复制:默认情况下,
MySQL
主从复制是异步的,即主库在记录二进制日志后,不会等待从库完成同步操作。这种方式的延迟较低,但可能会导致数据一致性问题。 - 同步复制:在同步复制中,主库会在收到全部从库的确认后,才继续接收客户端的写操作。这种方式可以数据一致性高,但会大大增加延迟。
- 半同步复制:在半同步复制中,主库会在收到至少一个从库的确认后,才继续接收客户端的写操作。这种方式可以提高数据一致性,但会增加延迟。