MySQLの半同期レプリケーションと完全に同期レプリケーション

1.mysql準同期マルチプレックス

server1とserver2の上でのプラグインの半同期レプリケーションのインストール

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

server1とserver2の上のプラグインをチェック

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

server1とServer2の活性化プラグイン、オープン準同期

SET GLOBAL rpl_semi_sync_master_enabled = 1

SERVER1 SERVER2値と変数の主なライブラリを参照してください、遅延時間を表示することができます(10000 10000ミリ秒を参照してください)

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

SERVER2で、ライブラリからテストを閉じました

STOP SLAVE IO_THREAD;

Server1で

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

10秒を待って、ACK要求が自動的に非同期レプリケーションに変換スレーブを受信されていない、ノードは、すべてのコピーが完了するのを待つ必要がある
I

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

server2の上のライブラリから開きます

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

すべてのデータが同期されることを見出した
スレーブ上記サーバ2から外れ、その後、上記のデータSERVER1を挿入
sever1(マスタ)待機10Sは、ACKメッセージを送信しないサーバ2(スレーブ)が見つかりました、自動同期が非同期となり、
そしてその後、上記サーバ2スレーブをオンにし、これは、データの前に読み込まれます

2.mysql完全同期レプリケーション(レプリコン)を
上記サーバ1に設定されています

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;查看数据

上記構成server2,3グループ繰り返しに同期を完了します。

公開された56元の記事 ウォンの賞賛1 ビュー963

おすすめ

転載: blog.csdn.net/Dead_LS/article/details/104252241