Mysql semi-synchronous replication and fully synchronous replication

1.mysql semi-synchronous multiplex

Semi-synchronous replication installation of plug-in on server1 and server2

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';安装半同步模块

Check the plug on server1 and server2

SELECT PLUGIN_NAME, PLUGIN_STATUS设置
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE '%semi%';

Activation plug-in on server1 and server2, open semi-synchronous

SET GLOBAL rpl_semi_sync_master_enabled = 1

See server1 server2 value and the main library of variables, the delay time can be viewed (refer 10000 10000 milliseconds)

SHOW VARIABLES LIKE 'rpl_semi_sync%';
show status like '%rpl%'      

On server2, closed test from the library

STOP SLAVE IO_THREAD;

On server1

use westos
insert into usertb values ('user4','123');

Waiting for 10s, ack request has not been received the slave automatically converted into asynchronous replication, a node needs to wait for the completion of copying of all
i

nsert into usertb values ('user5','123');(发现特别快,已经变成异步了)
show status like '%rpl%';(发现半同步已经关闭)

Open from the library on server2

START SLAVE IO_THREAD;
show processlist;
use westos
select * from usertb;

Found that all the data is synchronized
off server2 above slave, then inserts data server1 above
sever1 (master) wait 10s found server2 (slave) does not send an ACK message, the automatic synchronization becomes asynchronous,
and then turn on server2 slave above, It will be read before the data

2.mysql full synchronous replication (replicon)
is set in the above-server1

vim /etc/mysql.cnf #加入下面的东西
server_id=1第一个节点
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE #关闭binlog校验
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW#组复制依赖基于行的复制格式

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="查出来的uuid"##查看/var/lib/mysql/auto.cnf
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "172.25.12.1:33061"当前节点的ip
loose-group_replication_group_seeds="172.25.12.1:33061,172.25.12.2:33061,172.25.12.3:33061"
loose-group_replication_bootstrap_group=off
loose-group_replication_ip_whitelist="127.0.0.1,172.25.12.0/24"
loose-group_replication_enforce_update_everywhere_checks=ON
loose-group_replication_single_primary_mode=OFF#后两行是开启多主模式的参数

 systemctl restart mysqld#重启服务
 mysql -uroot -pWestos+123登录数据库
show databases;查看数据库
SET SQL_LOG_BIN=0;关闭二进制日志
CREATE USER rpl_user@'%' IDENTIFIED BY 'Westos+123';创建用户
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';用户授权
FLUSH PRIVILEGES;刷新用户授权表
SET SQL_LOG_BIN=1;开启二进制日志
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Westos+123' FOR CHANNEL 'group_replication_recovery';配置用户
INSTALL PLUGIN group_replication SONAME 'group_replication.so';安装组复制插件
SET GLOBAL group_replication_bootstrap_group=ON;在第一个节点上要先打开一次
START GROUP_REPLICATION;开启组复制
SET GLOBAL group_replication_bootstrap_group=OFF; 关闭组复制激活
SELECT * FROM performance_schema.replication_group_members;查看组的状态,当前只有一个节点在线
CREATE DATABASE test; 创建库
USE test;进入库
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);创建表
INSERT INTO t1 VALUES (1, 'Harry');插入数据
SELECT * FROM t1;查看数据

On repeating the above configuration server2,3 group to complete the synchronization.

Published 56 original articles · won praise 1 · views 963

Guess you like

Origin blog.csdn.net/Dead_LS/article/details/104252241