MysqlAB复制

什么是AB复制?

AB复制也叫主从复制,主(master)从(slave),最少是两台机器,一台主服务器,一台从服务器,为了简单所以叫AB复制。一个A一个B复制数据。

主服务器

当做读写数据的服务器,读数据可以往主里边读,写数据也可以往主里面写。

从服务器

看主服务器上面是不是有数据更新,一旦有数据更新,从服务器会同步到自己的机器上。

要是有两台从服务器会更好一点,从服务器平时做备份,主服务器坏了,客户端可以访问从服务器,如果从服务器同时也坏了。这时可以用一主双从。从服务器肯定越多越好。

主服务器和从服务器不是一个共生关系,是主从关系,因为我们平时写数据,读数据都是主服务器,平时不给从服务器写数据,因为从服务器就算写了数据,它也不会往主服务器里边同步数据,它是一个主从关系。

一般情况下,到了公司做一个最简单的主从架构是单主单从,稍微复杂点一主双从。

主服务器一旦挂掉了客户端可以瞬间切到从服务器。怎么切?

方法一  高可用  (有点高级,越高级越复杂的东西越容易出错)

现在有两台机器都能用,平时客户端访问第一台,一旦第一台坏了,它自动访问第二台(第二台是做冗余的)不需要监控,它也是自动切过去。对于主从服务器来讲,用高可用,得用双主,或者叫互为主从。

互为主从?

主  从

现在左边是右边的主,做完这个配置之后,再给它加一层配置,把右边的也做成主,左边做成从。左边变成了右边主的从,左边同时还是右边的主。

为什么会有互为主从?

客户端写数据的时候,只能往主的服务器上写,因为给主服务器上写了之后,主服务器会同步到从服务器上,但是往从服务器上写了之后,数据同步不到主上去。如果要是互为主从就不一样了,谁都是主,都可以接收数据的写入,写完之后都可以同步到从上。可以互相同步,这就是互为主从。

做互为主从,可以用高可用,软件是需要两台机器是一模一样的角色。但不管是什么机器,什么架构都需要被监控,用了高可用,还得监控。监控免不了。要随时知道整个架构每一台服务器是不是正常使用。更别说平时cpu,内存,硬盘,网络。这都是需要被监控的。高可用方式是不用去修改客户端hosts文件的,监控的方式得去做这一步。其实还能让这个架构更一点,双主多从,但是没必要,越简单越好,只要能保证数据的安全,有数据的备份就可以了。

方法二  监控+脚本(推荐)

因为监控是必做的,架构里每一台机器都需要被监控。脚本修改个配置文件就修改一行,不难瞬间就修改完了,所以监控+脚本我个人觉得好一点。

客户端为什么要把服务器的ip地址换成从服务器的ip?

因为它平时一直访问主服务器的ip,主服务器突然间坏了,一旦被监控到不能访问了,监控去远程执行脚本,在客户端把hosts(主机解析)文件的内容修改一下就完了。原来一个主机名对应的ip地址是主的它去访问主,我把它修改成从的,它就访问从了。

AB复制的工作原理:  在原来的基础上加了一个数字,就是id号

1 master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。

2、slave端的i/o 线程将变更的binlog,写入到本地的relay log中。

3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。  (获取新数据前本来就有记录的gtid号,现在拿了新的数据,看看新来的数据里边的id号和现在记录的id号是不是有一样的,如果一样说明已经同步过了,不一样就是新数据。

4、如果有记录,说明该GTID的事务已经执行,slave会忽略。

5、如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。

从服务器怎么从主服务器拿数据?

主从服务器上,尤其是主服务器上面得有binlog日志(记录每一个主服务器上的写操作)这边写一个数据我就把binlog日志拿到从服务器上来,从服务器去读一下binlog日志,我照写就完了,传统的ab复制就这样干的。涉及到两个进程(专门的进程干这件事)一个io进程(负责主从之间的通信,专门负责把主服务器传到从服务器,传过去之后sql进程负责读binlog日志写数据),一个sql进程两个互相配合就把事干了。

传统的AB复制每次那边有新的数据我就得拿过来开始写,但是从哪开始写,得有位置点,时间点。位置点容易对不准。所以在这一方面,做了改进,有了GTID的方式,gtid方式只是原本方式的改进,并不是一个全新的方式,只是让过程稍微复杂了一点,但是结果,更准确了。

传统的主从没有做比对,再主服务器,送的时候觉得没问题,结果弄过去发现变了位置点变了,它也没确认这是不是在主的时候确认的位置点,就比如在主的时候位置点是152,去了从得确认一下是不是152。这才准确无误,传统的AB复制是没这个确认的。

猜你喜欢

转载自blog.csdn.net/weixin_53150440/article/details/127192563