网站建设木马科技,网站制作可以询价么,人力社保网站建设的意义,凡科互动游戏作弊软件1.MySQL主从复制模式
1.1异步复制
异步复制为 MySQL 默认的复制模式#xff0c;指主库写 binlog、从库 I/O 线程读 binlog 并写入 relaylog、从库 SQL 线程重放事务这三步之间是异步的。 异步复制的主库不需要关心备库的状态#xff0c;主库不保证事务被传输到从库#xf…1.MySQL主从复制模式
1.1异步复制
异步复制为 MySQL 默认的复制模式指主库写 binlog、从库 I/O 线程读 binlog 并写入 relaylog、从库 SQL 线程重放事务这三步之间是异步的。 异步复制的主库不需要关心备库的状态主库不保证事务被传输到从库如果主库崩溃某些事务可能还未发送到从库切换后可能导致事务的丢失。 【优点】是可以有更高的吞吐量【缺点】是不能保持数据实时一致不适合要求主从数据一致性要求较高的应用场景。
1.2同步复制
同步复制的模式下主库在提交事务前必须确认事务在所有的备库上都已经完成提交。当主库执行完客户端提交的事务后需要等到所有从库也都执行完这一事务后才返回给客户端执行成功。因为要等到所有从库都执行完【缺点】执行过程中会被阻塞等待返回结果所以性能上会有很严重的影响其【优点】是任何时候主备库都是一致的主库的崩溃不会丢失事务。
1.3半同步复制
它结合了异步复制和同步复制的优点。在半同步复制中主服务器在确认从服务器已经接收并且记录了事件之后才继续执行其他事件从而减少了数据丢失。MySQL5.5开始通过插件的方式支持半同步复制。
与同步复制相比半同步复制速度快很多因为它只需要至少1个从库确认写入 relaylog并不需要完成在从库上的事务提交同时又比异步复制更安全因为主库在提交时事务至少已经存在2个地方主库的 binlog 和从库的 relaylog。
由于半同步复制在提交事务前需要从库返还确认信息所以这里涉及到网络的往返通信开销因此半同步复制只适合在网络条件较好且地理上距离不远的环境部署否则可能会因为网络延迟大幅降低主库性能。
2.MySQL半同步复制
MySQL官方提供的半同步复制插件semisync_master.so和semisync_slave.so登录MySQL服务器在MySQL命令行客户端中执行以下命令来安装插件 – 在主服务器上安装
INSTALL PLUGIN rpl_semi_sync_master SONAME semisync_master.so; – 在从服务器上安装
INSTALL PLUGIN rpl_semi_sync_slave SONAME semisync_slave.so;安装插件后可以通过执行SHOW PLUGINS;命令来验证插件是否成功安装在输出中查找rpl_semi_sync_master和rpl_semi_sync_slave插件并确保它们的Status列为ACTIVE。
如果需要卸载则执行UNINSTALL PLUGIN plugin_name语句其中plugin_name是要卸载的插件名称。
在主服务器的配置文件中添加
[mysqld]
rpl_semi_sync_master_enabled 1
rpl_semi_sync_master_timeout 10000 # 超时时间单位毫秒在从服务器的配置文件中添加
[mysqld]
rpl_semi_sync_slave_enabled 1rpl_semi_sync_master_enabled 作用于主库Master是否启用半同步复制功能开启后主服务器会等待至少一个从服务器确认它已经接收并记录了二进制日志事件中的事务然后才会向客户端报告事务已提交 如果在从库上尝试设置 rpl_semi_sync_master_enabled 为 ONMySQL 实际上会忽略这个设置。由于从库不是复制过程中的“主”节点因此设置该参数不会对复制过程产生任何积极影响。它不会改变从库的行为或性能。 rpl_semi_sync_slave_enabled 用于控制从库Slave是否启用半同步复制功能开启后从服务器会将其接收到的事务写入中继日志并应用这些事务后向主服务器发送一个确认消息。这个确认消息是半同步复制机制中主服务器等待的“至少一个确认”。
在某些情况下如果主库无法及时从从库接收到确认信息例如从库宕机或网络故障主库会根据 rpl_semi_sync_master_timeout 参数(单位毫秒行内基线为5000设置的超时时间来决定是否继续等待或降级为异步复制过短的超时时间可能导致频繁地切换到异步复制模式
【降级日志】 可以通过查看复制状态的相关变量如SHOW STATUS LIKE Rpl_semi_sync_master_status;来推断复制模式是否已更改 可以通过查看MySQL的错误日志Error Log来获取与降级相关的信息。
使用半同步复制的好处
提高数据一致性与异步复制相比半同步复制能够确保至少有一个从服务器已经接收到并记录了主服务器上的事务从而提高了数据的一致性。减少数据丢失的风险在发生故障转移时由于至少有一个从服务器已经接收到事务因此可以减少数据丢失的风险。性能适中虽然半同步复制可能会对主服务器的性能产生一定影响因为需要等待确认但这种影响通常小于同步复制并且比异步复制提供了更高的数据一致性保障。如果网络延迟较高或不稳定可能会影响事务的提交性能。