部署MySQL主从半同步复制

 

半同步复制:

 

而半同步复制是在协议中添加了一个同步步骤,主节点在发送完日志文件之后,等待来自从节点的回应,收到从节点的同步确认之后才去提交数据(保证数据一定被备份了) 

 

 

 


一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) —–>IO Thread (从) —–> SQL Thread(从)。

 

复制只能是单向的,从主节点(master)到从节点(slave)上. 
master用户写入数据,生成event记录到binary-log(二进制日志)中. 
slave接收master上传来的binlog,然后按顺序应用,重现master上的用户操作.

 

半同步复制支持多种插件:/usr/lib64/mysql/plugin/*

半同步复制插件:

 semisync_master.so

 semisync_slave.so

1.查看系统中是否存在插件

rpm -ql mariadb-server | grep semisync

/usr/lib64/mysql/plugin/semisync_master.so

/usr/lib64/mysql/plugin/semisync_slave.so

 

2.登录master1数据库安装插件

 

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

3.检查插件是否安装成功

 SHOW PLUGINS;

 

 

 大约有43条记录

4.启用插件步骤

 SHOW GLOBAL VARIABLES LIKE '%semi%'

 

 

 有4条记录

SET @@global.rpl_semi_sync_master_enabled=ON;

 

 

 

SHOW GLOBAL VARIABLES LIKE '%semi%';

 

 

 有4条记录

=============================

1.登录master2安装插件

 INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

 SHOW PLUGINS;

 

 

 也是43条记录

2.启动插件步骤:

 SHOW GLOBAL VARIABLES LIKE '%semi%';

 

 

 

SET @@global.rpl_semi_sync_slave_enabled=ON;

 

 

 

 SHOW GLOBAL VARIABLES LIKE '%semi%';

 

 

 =============================

查看master1信息

SHOW GLOBAL STATUS LIKE '%semi%';

 

 

 在maser2启动IO线程

 STOP SLAVE IO_THREAD;

START SLAVE IO_THREAD;

=======================

查看master1信息

SHOW GLOBAL STATUS LIKE '%semi%';

 

 

 ==================================

在主节点为事先创建的用户进行主从复制授权:

 

grant replication slave on *.* to 'myslave'@'192.168.200.%' identified by '123123';

重新加载授权表

 flush privileges;

查看服务信息

 show master status;

 

 =======================

master2指向master1

CHANGE MASTER TO  MASTER_HOST='192.168.200.111', MASTER_USER='myslave', MASTER_PASSWORD='123123', MASTER_LOG_FILE='mysql-binlog.000003', MASTER_LOG_POS=487;

与master1信息表相对应

实验测试:

在master1中创建库mydb

 CREATE DATABASE mydb CHARACTER SET 'utf8';

在master2中查看库信息

show databases;

 

 实现复制功能

 

posted @ 2019-10-17 11:44  Joshua¥A¥  阅读(237)  评论(0编辑  收藏  举报