溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql半同步配置

發(fā)布時(shí)間:2020-08-13 06:00:04 來(lái)源:ITPUB博客 閱讀:219 作者:stonebox1122 欄目:MySQL數(shù)據(jù)庫(kù)
Mysql半同步的原理是主庫(kù)只需要確認(rèn)從庫(kù)接收到了事物即可,無(wú)需等待從庫(kù)應(yīng)用,相比異步復(fù)制,半同步提高了數(shù)據(jù)完整性的保障,但會(huì)增加主庫(kù)的響應(yīng)時(shí)間。
1、安裝Mysql并配置主從
參考http://blog.itpub.net/28536251/viewspace-2138854/分別在兩節(jié)點(diǎn)安裝Mysql。
參考http://blog.itpub.net/28536251/viewspace-2138928/或者http://blog.itpub.net/28536251/viewspace-2139007/配置主從。

2、在master節(jié)點(diǎn)加載半同步插件
(root@localhost)[(none)] install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.16 sec)

3、在slave節(jié)點(diǎn)加載半同步插件
(root@localhost)[(none)] install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (0.45 sec)

4、在master節(jié)點(diǎn)設(shè)置以下變量
(root@localhost)[(none)] set global rpl_semi_sync_master_enabled=1;
Query OK, 0 rows affected (0.05 sec)
#rpl_semi_sync_master_enabled用于控制是否在master節(jié)點(diǎn)啟用半同步復(fù)制,為1表示啟動(dòng)。

(root@localhost)[(none)] set global rpl_semi_sync_master_timeout=3000;
Query OK, 0 rows affected (0.00 sec)
#rpl_semi_sync_master_timeout用于指定master節(jié)點(diǎn)等待slave響應(yīng)的事件,單位是毫秒,默認(rèn)是10000即10秒鐘,這里設(shè)置為3秒。若超出指定時(shí)間slave節(jié)點(diǎn)仍無(wú)響應(yīng),那么當(dāng)前復(fù)制環(huán)境就臨時(shí)被轉(zhuǎn)換為異步復(fù)制。

5、在slave節(jié)點(diǎn)設(shè)置以下變量
(root@localhost)[(none)] set global rpl_semi_sync_slave_enabled=1;
Query OK, 0 rows affected (0.09 sec)
#rpl_semi_sync_slave_enabled用來(lái)控制slave節(jié)點(diǎn)是否啟用半同步復(fù)制。

以上3個(gè)變量雖然可以動(dòng)態(tài)修改,但強(qiáng)烈建議將所有配置的變量都保存在初始化參數(shù)文件中,這樣在每次啟動(dòng)mysql服務(wù)時(shí)就無(wú)需再手動(dòng)配置了。

6、在slave節(jié)點(diǎn)重啟io_thread線程
slave節(jié)點(diǎn)重新連接master節(jié)點(diǎn),注冊(cè)為半同步身份。
(root@localhost)[(none)] stop slave io_thread;
Query OK, 0 rows affected (0.12 sec)

(root@localhost)[(none)] start slave io_thread;
Query OK, 0 rows affected (0.02 sec)

7、測(cè)試
主庫(kù)插入數(shù)據(jù):
(root@localhost)[(none)] use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
(root@localhost)[test] show tables;
+----------------+
| Tables_in_test |
+----------------+
| tb1            |
+----------------+
1 row in set (0.00 sec)

(root@localhost)[test] select * from tb1;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.03 sec)

(root@localhost)[test] insert into tb1 values(2);
Query OK, 1 row affected (0.10 sec)

(root@localhost)[test] select * from tb1;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.02 sec)

(root@localhost)[test] show status like 'rpl_semi_sync%';
+--------------------------------------------+-------+
| Variable_name                              | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients               | 1     |
| Rpl_semi_sync_master_net_avg_wait_time     | 0     |
| Rpl_semi_sync_master_net_wait_time         | 0     |
| Rpl_semi_sync_master_net_waits             | 1     |
| 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      | 52899 |
| Rpl_semi_sync_master_tx_wait_time          | 52899 |
| Rpl_semi_sync_master_tx_waits              | 1     |
| Rpl_semi_sync_master_wait_pos_backtraverse | 0     |
| Rpl_semi_sync_master_wait_sessions         | 0     |
| Rpl_semi_sync_master_yes_tx                | 1     |
+--------------------------------------------+-------+
14 rows in set (0.05 sec)

其中:
rpl_semi_sync_master_clients為1表示處于半同步模式的slave節(jié)點(diǎn)有1個(gè)。
rpl_semi_sync_master_status為ON表示master節(jié)點(diǎn)啟用了半同步模式。
rpl_semi_sync_master_no_tx為0表示還沒(méi)有未成功發(fā)送到slave節(jié)點(diǎn)的事物數(shù)量。
rpl_semi_sync_master_yes_tx為1表示已成功發(fā)送到slave節(jié)點(diǎn)的事物數(shù)量為1。

備庫(kù)查看:
(root@localhost)[test] select * from tb1;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI