部署MySQL主從半同步複製

 

半同步複製:

 

而半同步複製是在協議中添加了一個同步步驟,主節點在發送完日誌文件以後,等待來自從節點的迴應,收到從節點的同步確認以後纔去提交數據(保證數據必定被備份了) 

 

 

 


通常主從複製,有三個線程參與,都是單線程:Binlog Dump(主) —–>IO Thread (從) —–> SQL Thread(從)。

 

複製只能是單向的,從主節點(master)到從節點(slave)上. 
master用戶寫入數據,生成event記錄到binary-log(二進制日誌)中. 
slave接收master上傳來的binlog,而後按順序應用,重現master上的用戶操做.

 

半同步複製支持多種插件:/usr/lib64/mysql/plugin/*mysql

半同步複製插件:sql

 semisync_master.so數據庫

 semisync_slave.soide

1.查看系統中是否存在插件測試

rpm -ql mariadb-server | grep semisyncspa

/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';server

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;

 

 實現複製功能

相關文章
相關標籤/搜索