mysql主从等步机制原理
发布时间:2022-01-19 14:02:01 所属栏目:MySql教程 来源:互联网
导读:本篇内容主要讲解mysql主从同步机制原理,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习mysql主从同步机制原理吧! 1、binlog+pos同步(默认为异步) 从服务器通过IO进程读取主库的binlog,写入到relay_log中,
本篇内容主要讲解“mysql主从同步机制原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql主从同步机制原理”吧! 1、binlog+pos同步(默认为异步) 从服务器通过IO进程读取主库的binlog,写入到relay_log中, 从服务器通过sql running进程读取从库的relay_log,并写入到从库的bin_Log实现同步 我们生产一般使用row模式,因为有些函数在使用mix和state模式可能会报错。 2、半同步(5.5开始) 半同步就是就是用户向mysql写入数据,先写入到主库,然后生成binlog日志。主库等待从库来取binlog日志,如果从库超过10秒没有来获取binlog日志。主库自动转换为异步,以后用户写入数据生成binlog日志,等待用户自己来取,没有取到主库也不在管理。 介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。 在没有指明的情况下,默认都是异步复制。 3、GTID同步(5.6.10开始) 使用UUID+事务ID作为全局事物标识,UUID为每台机器的标识符,事务ID记录最新的事务,不在使用binlog+pos开启复制。而是使用master_auto_postion=1的方式自动匹配GTID断点进行复制。 4、group replication(5.7.17开始) 基于传统异步复制和半同步复制的缺陷——数据的一致性问题无法保证,MySQL官方在5.7.17版本正式推出组复制,也就是MGR。 由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点(N / 2 + 1)决议并通过,才能得以提交。由3个节点组成一个复制组,Consensus层为一致性协议层,在事务提交过程中,发生组间通讯,由2个节点决议(certify)通过这个事务,事务才能够最终得以提交并响应。 半同步的开启方法和前提条件: 要想使用半同步复制,必须满足以下几个条件: 1. MySQL 5.5及以上版本 2. 变量have_dynamic_loading为YES 3. 异步复制已经存在 1、首先加载插件,主从分别安装插件 INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 2、查看插件是否安装成功。 1、show plugins; rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL 2、mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%'; +----------------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +----------------------+---------------+ | rpl_semi_sync_master | ACTIVE | +----------------------+---------------+ 1 row in set (0.00 sec) 3、启动半同步复制(也可以写在配置文件中) SET GLOBAL rpl_semi_sync_master_enabled = 1; SET GLOBAL rpl_semi_sync_slave_enabled = 1; 4、重启从上的IO线程 mysql> STOP SLAVE IO_THREAD; mysql> START SLAVE IO_THREAD; 5、检查半同步是否正确运行 mysql> show status like 'Rpl_semi_sync_master_status'; mysql> show status like 'Rpl_semi_sync_slave_status'; 均显示为ON则正常启动。 到此,相信大家对“mysql主从同步机制原理”有了更深的了解,不妨来实际操作一番吧! (编辑:洛阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐