日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql5.6配置semi_sync

發(fā)布時(shí)間:2025/7/25 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.6配置semi_sync 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

測試環(huán)境:
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Server version: 5.6.22-log MySQL Community Server (GPL)

mysql的replication協(xié)議是異步的,雖然異步效率、性能很好,但是卻無法保證主從數(shù)據(jù)一致性,
如果master crash,已經(jīng)commit的事務(wù)不會被傳送到任何的slave上,
從mysql5.5之后,mysql為了保證主從庫數(shù)據(jù)一致性,引進(jìn)了semi-sync功能,
semi-sync意思是MASTER只需要接收到其中一臺SLAVE的返回信息,就會commit;否則需等待直至切換成異步再提交。

優(yōu)點(diǎn):
當(dāng)事務(wù)返回客戶端成功后,則日志一定在至少兩臺主機(jī)上存在。
MySQL的Semi-sync適合小事務(wù),且兩臺主機(jī)的延遲又較小,則Semi-sync可以實(shí)現(xiàn)在性能很小損失的情況下的零數(shù)據(jù)丟失。

缺點(diǎn):
完成單個(gè)事務(wù)增加了額外的等待延遲,延遲的大小取決于網(wǎng)絡(luò)的好壞。

配置方法:
在主庫安裝semisync_master插件:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; //linux
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.dll'; //windows

在備庫安裝semisync_slave插件
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; //linux
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';//windows


主庫上,新增如下參數(shù):
$vi /etc/my.cnf

[mysqld]
...
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
...

備庫上新增:

$vi /etc/my.cnf

[mysqld]
...
rpl_semi_sync_slave_enabled=1

重啟master和slave,semi_sync插件會自動加載

重啟后,master顯示如下:
mysql> show variables like '%rpl_semi%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_master_timeout | 1000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON | #表示即使沒有SLAVE也會等待過期時(shí)間結(jié)束,是默認(rèn)值
+------------------------------------+-------+
4 rows in set (0.00 sec)

mysql> show status like '%semi%';
+--------------------------------------------+----------+
| Variable_name | Value |
+--------------------------------------------+----------+
| Rpl_semi_sync_master_clients | 3 | #有多少個(gè)Semi-sync的備庫,我配置了3個(gè)
| Rpl_semi_sync_master_net_avg_wait_time | 2525 | #事務(wù)提交后,等待備庫響應(yīng)的平均時(shí)間
| Rpl_semi_sync_master_net_wait_time | 45892342 | #總的網(wǎng)絡(luò)等待時(shí)間
| Rpl_semi_sync_master_net_waits | 18174 | #等待網(wǎng)絡(luò)響應(yīng)的總次數(shù)
| Rpl_semi_sync_master_no_times | 0 | #一共有幾次從Semi-sync跌回普通狀態(tài)
| Rpl_semi_sync_master_no_tx | 0 | #備庫未及時(shí)響應(yīng)的事務(wù)數(shù)
| Rpl_semi_sync_master_status | ON | #主庫上Semi-sync是否正常開啟
| Rpl_semi_sync_master_timefunc_failures | 0 | #時(shí)間函數(shù)未正常工作的次數(shù)
| Rpl_semi_sync_master_tx_avg_wait_time | 1196 | #開啟Semi-sync,事務(wù)返回需要等待的平均時(shí)間
| Rpl_semi_sync_master_tx_wait_time | 7918635 | #事務(wù)等待備庫響應(yīng)的總時(shí)間
| Rpl_semi_sync_master_tx_waits | 6620 | #事務(wù)等待備庫響應(yīng)的總次數(shù)
| Rpl_semi_sync_master_wait_pos_backtraverse | 0 | #改變當(dāng)前等待最小二進(jìn)制日志的次數(shù)
| Rpl_semi_sync_master_wait_sessions | 0 | #當(dāng)前有幾個(gè)線程在等備庫響應(yīng)
| Rpl_semi_sync_master_yes_tx | 6549 | #Semi-sync模式下,成功的事務(wù)數(shù)
+--------------------------------------------+----------+
14 rows in set (0.00 sec)

slave上顯示如下:
mysql> show variables like '%rpl_semi%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled | ON |
| rpl_semi_sync_slave_trace_level | 32 |
+---------------------------------+-------+
2 rows in set (0.01 sec)

mysql> show status like '%semi%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON |
+----------------------------+-------+
1 row in set (0.00 sec)

轉(zhuǎn)載于:https://www.cnblogs.com/caibird2005/p/4311544.html

總結(jié)

以上是生活随笔為你收集整理的mysql5.6配置semi_sync的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。