MySQL數據庫半同步複製

半同步複製,是有一個從節點或者一部分從節點與主節點之間是同步複製的,其餘的從節點還是異步複製mysql

半同步複製是谷歌公司貢獻給MySQL的一個插件,默認在MySQL中沒有此插件,因此要實現主從的版同步複製須要安裝此插件sql

rpm -ql mariadb-server| grep semi
#找到須要安裝的插件,以so結尾
SHOW PLUGINS;
#查看當前支持的插件,此處也能看到myisam和innodb也是插件類型

下面開始介紹如何配置主從版同步複製:數據庫


一、建立傳統的主從複製功能的mysql,請參考‘MySQL數據庫主從複製’一文(http://panpangao.blog.51cto.com/10624093/1981418  )bash

二、在主節點安裝半同步複製插件session

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master'; //格式都是固定的不可隨意修改
SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';    //查看主節點的半同步複製功能,此時還沒有開啓
SET GLOBAL rpl_semi_sync_master_enabled=ON;  //開啓


SHOW GLOBAL STATUS LIKE '%rpl%';            //查看狀態,關鍵是查看 Rpl_semi_sync_master_clients數量,此時還沒有配置從節點因此是0
+--------------------------------------------+-------------+
| Variable_name                              | Value       |
+--------------------------------------------+-------------+
| Rpl_semi_sync_master_clients               | 0           |
| Rpl_semi_sync_master_net_avg_wait_time     | 0           |
| Rpl_semi_sync_master_net_wait_time         | 0           |
| Rpl_semi_sync_master_net_waits             | 0           |
| Rpl_semi_sync_master_no_times              | 0           |
| Rpl_semi_sync_master_no_tx                 | 0           |
| Rpl_semi_sync_master_status                | ON          |
| Rpl_semi_sync_master_timefunc_failures     | 0           |
| Rpl_semi_sync_master_tx_avg_wait_time      | 0           |
| Rpl_semi_sync_master_tx_wait_time          | 0           |
| Rpl_semi_sync_master_tx_waits              | 0           |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0           |
| Rpl_semi_sync_master_wait_sessions         | 0           |
| Rpl_semi_sync_master_yes_tx                | 0           |
| Rpl_status                                 | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)


三、在從節點安裝半同步複製插件異步

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave';
SET GLOBAL rpl_semi_sync_slave_enabled=ON;
SHOW GLOBAL VARIABLES LIKE 'rpl_semisync%';    
SHOW GLOBAL VARIABLES LIKE '%rpl%';           //這時從的功能是開啓的

SHOW GLOBAL STATUS LIKE '%rpl%';   //但狀態是OFF,由於從節點此時的IO線程未重啓

STOP SLAVE IO_THREAD;
START SLAVE IO_THREAD;  //重啓從的IO線程

四、測試ide

此時在主節點查看clients的數量就會變成1了,由於已經加入了一個從節點;測試

在主節點建立數據庫、表,都會同步到從節點上插件

SHOW GLOBAL STATUS LIKE '%rpl%';  
//此時顯示的信息就會有變化,主節點等待時長、平均等待時長、等待次數等信息,具體均可以從字面意思看出


本實驗到此結束線程

相關文章
相關標籤/搜索