Mysql的全同步复制

一、全同步复制((Fully synchronous replication)原理

1、逻辑上

指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。

2、技术上

当主库提交事务之后,所有的从库节点必须收到、APPLY并且提交这些事务,然后主库线程才能继续做后续操作。但缺点是,主库完成一个事务的时间会被拉长,性能降低。

3、全同步是主从同步的增强。

因为主从同步虽可以实现一主多从,但它的局限在于只有在主数据库上写的时候从数据库才会做数据备份,而在从数据库做出改变时,主数据库不会记录相应的改变。

然而,全同步出现了,它可以是只要在一个数据库做出改变,所以其它在同组的数据库也会改变,同组的数据库没有等级之分。可以理解为“同组数据库之间数据相等”。

 

二、全同步复制的实现

1、实验环境

172.25.7.2       server2       

172.25.7.3       server3

172.25.7.4       server4

2、在server2上:

1)将数据库停掉并且设置成开机不自启,删除原来生成的文件

/etc/init.d/mysqld stop

chkconfig mysqld off

cd /var/lib/mysql

rm -fr *

2)修改mysql的配置文件

server_id=2                     #id对应的组中编号

gtid_mode=ON                #打开gtid模式

enforce_gtid_consistency=ON

master_info_repository=TABLE

relay_log_info_repository=TABLE

binlog_checksum=NONE

log_slave_updates=ON

log_bin=binlog

binlog_format=ROW

 

transaction_write_set_extraction=XXHASH64

loose-group_replication_group_name="08b8df85-3ba2-4e3c-b2bb-630b85c7f6ee"  #所属组的名称,必须是有效的uuid格式,可以用uuidgen来生成uuid

loose-group_replication_start_on_boot=off          

loose-group_replication_local_address= "172.25.7.2:24901"      #本机地址

loose-group_replication_group_seeds="172.25.7.2:24901,172.25.7.3:24901,172.25.7.4:24901"       #组内其他成员的地址列表,以逗号分隔开

loose-group_replication_bootstrap_group=off

loose-group_replication_ip_whitelist="172.25.7.0/24"

loose-group_replication_enforce_update_everywhere_checks=on

loose-group_replication_single_primary_mode=off

3)修改配置文件后,重启mysql使其生效

4)grep password /var/log/mysqld.log     #查找原始密码

5)修改数据库密码(用原始密码虽可以进入数据库,但不能对数据库进行操作的。需修改密码之后才可以)

6)登陆数据库看是否成功

7)对数据库进行配置

3、在server3上:

1)和server2上一样,停掉数据库,并且设置成开机不自启,删除原来生成的文件

2)修改mysql的配置文件,重启mysql使其生效

3)grep password /var/log/mysqld.log     #查找原始密码

4)修改数据库密码

5)登陆数据库,对数据库进行配置

4、在server4上对数据库的配置和server3完全相同

     只需要改变配置文件的

     server_id=4

    loose-group_replication_local_address= "172.25.7.4:24901"即可

5、测试:

在server2中创建新的数据库并写入数据,看server2和server3是否都同步有相同的数据。

在server3上查看同步到了server1上的数据

在server4上查看同步到了server1上的数据

在server3中创建新的数据库并写入数据,看server2和server4是否都同步有相同的数据。

在server2上查看同步到了server3上的数据

在server4上查看同步到了server3上的数据

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值