MySQL
MySQL主从复制
摘要总结:
MySQL的主从复制是一种数据同步技术,允许从库复制主库的数据更改,确保主从库之间的数据一致性。实现主从复制的前提包括:两台或多台数据库实例、主库开启二进制日志、主库创建复制用户、主库和从库具有不同的server_id、从库在开启复制前需获取主库数据并记录binlog位置、从库需知主库信息(IP、端口、用户、密码、日志文件和位置)并开启IO和SQL线程。主从复制涉及主库的binlog、从库的中继日志、master.info文件和IO、SQL线程。
主从复制的原理涉及change master to语句和start slave命令的使用,从库通过IO线程从主库接收binlog,并存储至中继日志中,SQL线程读取中继日志并执行。
对于半同步复制,MySQL从5.5版本开始支持,其基本原理是主库提交事务后,等待至少一个从库确认接收并写入中继日志后再返回客户端。半同步复制有两种模式:AFTER_SYNC和AFTER_COMMIT,主库在收到从库确认后决定是否提交事务。
为启用半同步复制,需要在主从库安装相关插件并设置全局参数。主库需设置`rpl_semi_sync_master_enabled`为1,从库需设置`rpl_semi_sync_slave_enabled`为1,并重启MySQL服务。
主从复制的参数监控和调试涉及查看`rpl_semi_sync_master_clients`、`Rpl_semi_sync_master_net_avg_wait_time`等状态变量,以监控半同步复制的运行情况。
主从复制和半同步复制提供了数据一致性和高可用性,但也可能带来性能影响。在实际应用中,需根据业务需求和性能考虑选择合适的复制策略。
Hanjy发布于 May 15,2022