加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL主从复制的常见拓扑、道理说明以及怎样进步服从

发布时间:2018-12-20 15:37:02 所属栏目:编程 来源:刘弋
导读:一、主从复制搭建要领参考 MySQL5.6 数据库主从(Master/Slave)同步安装与设置详解 二、Mysql 主从复制的常用拓扑布局 2.1、一主一从 是最基本的复制布局,用来分管之前单台数据库处事器的压力,可以举办读写疏散。 2.2、一主多从 一台 Slave 遭受不住读

利益

  1. bin-log日记包括了描写数据库操纵的变乱,可是这些变乱包括的环境只是对数据库举办改变的操纵,譬喻 insert、update、create、delete等操纵。相阻挡付select、desc等相同的操纵并不会去记录,而且它记录的是语句,以是相对付Row-Based来嗣魅这样会占用更少的存储空间。
  2. 由于bin-log日记文件记录了全部的改变数据库的语句,以是此文件可以作为往后的数据库的考核依据

弱点

  1. 不安详,并不是全部的改变数据的语句城市被记录复制。任何的非确定性的举动都是很难被记录复制的。
  2. 譬喻:对付delete 可能update语句,假如行使了limit可是并没有 order by ,这就属于非确定性的语句,就不会被记录
  3. 对付没有索引前提的update语句,必需锁定更多的数据,低落了数据库的机能。
  4. insert……select 语句同样也必要锁定大量的数据,对数据库的机能有所消费。
  5. 获取更具体的信息可以参考官方文档——Statement-Based的利益和弱点。

4.2、Row-Based利益和弱点说明

利益

  1. 全部的改变城市被复制,这是最安详的复制方法
  2. 对付 update、insert……select等语句锁定更少的行
  3. 此种方法和大大都的数据库系同一样,以是相识其他的体系的职员可以很轻易的转到mysql

弱点

  1. 行使不利便,我们不能通过bin-log日记文件查察什么语句执行了,也无从知道在从处事器上吸取到什么语句,我们只能看到什么数据改变了
  2. 由于记录的是数据,以是说bin-log日记文件占用的存储空间要比Statement-based大。
  3. 对付数据量大的操纵其耗费的时刻有更长

获取更具体的信息可以参考官方文档——Row-Based的利益和弱点

bin-log日记文件默认的名目为Statement-Based,假如想改变其名目在开启处事的时辰行使—binlog-format选项,其详细呼吁如下

mysqld_safe –user=msyql –binlog-format=名目 &

四、主处事器流程说明

4.1、主处事器线程 Binlog dump thread

Binlog dump 线程是当有从处事器毗连的时辰由主处事器建设,其大抵事变进程经验如下几个阶段:

MySQL主从复制的常见拓扑、道理说明以及怎样进步服从

起首bin-log日记文件加锁,然后读取更新的操纵,读取完毕往后将锁开释掉,最后将读取的记录发送给从处事器。

我们可以行使如下的呼吁来查察该线程的信息

  1. mysql> SHOW PROCESSLISTG 

以我的体系为例,由于我这体系中是一台主处事器和两台从处事器,以是会列出两条Binlog dump线程的信息

  1. *************************** 1. row ***************************  
  2. Id: 2  
  3. User: repuser  
  4. Host: 192.168.144.131:41544  
  5. db: NULL  
  6. Command: Binlog Dump  
  7. Time: 54  
  8. State: Master has sent all binlog to slave; waiting for binlog to be updated  
  9. Info: NULL  
  10. *************************** 2. row ***************************  
  11. Id: 3  
  12. User: repuser  
  13. Host: 192.168.144.132:40888 
  14. db: NULL  
  15. Command: Binlog Dump  
  16. Time: 31  
  17. State: Master has sent all binlog to slave; waiting for binlog to be updated  
  18. Info: NULL  

上述字段中的state字段会有以下几种状态:

1. Sending binlog event to slave

暗示Binlog dump 线程已经读取完binlog日记中更新的event,此刻正在发送给从处事器

2. Finished reading one binlog; switching to next binlog

暗示Binlog dump 线程已经读取完一个binlog日记,此刻正在打开下一个binlog日记读取来发送给从处事器

3. Master has sent all binlog to slave; waiting for binlog to be updated

这就是上面我们看到的state的值,暗示Binlog dump 线程已经读取完全部的binlog日记文件,而且将其发送给了从处事器。此刻处于空闲状态,正在守候读取有新的操纵的binlog日记文件

4. Waiting to finalize termination

这个状态一连的很短暂,我们险些看不到。当线程遏制的时辰表现此状态。

上述几个状态就是一次主从复制进程中Binlog dump 线程所经验的状态,假如我们是在测试的情形中,上述1、2、4状态我们险些是看不到的,由于它执行的很快。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读