mysql5.5.9半同步複製功能部署
原創文章,轉載請註明出處:
1.mysql5.5.9 半同步複製功能:
mysql5.5 版本支援半同步複製功能(Semisynchronous Replication),但
還不是原生的支援,是透過plugin來支援的,並且預設是沒有安裝這個外掛的。
不論是二進位制釋出的,還是自己原始碼編譯的,都會預設生成這個外掛,
一個是針對master 的一個是針對slave的,在使用之前需要先安裝這倆plugins
首先先檢查 mysql是否支援動態新增外掛,
mysql.sock@mysql> select @@have_dynamic_loading ;
+------------------------+
| @@have_dynamic_loading |
+------------------------+
| YES |
+------------------------+
1 row in set (0.00 sec)
支援動態增減外掛,
新增外掛:
mysql.sock@(none)> install plugin rpl_semi_sync_master soname
'semisync_master.so' ;
Query OK, 0 rows affected (0.00 sec)
mysql.sock@(none)> install plugin rpl_semi_sync_slave soname
'semisync_slave.so';
Query OK, 0 rows affected (0.00 sec)
新增完外掛後,系統會預設的增加了幾個系統引數
mysql.sock@(none)> show global variables like 'rpl_semi_sync%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_slave_enabled | OFF |
| rpl_semi_sync_slave_trace_level | 32 |
+------------------------------------+-------+
6 rows in set (0.00 sec)
這些引數是可以動態修改的
rpl_semi_sync_master_enabled :
啟動master 支援半同步複製。
rpl_semi_sync_master_timeout :
主庫等待半同步複製資訊返回的超時間隔,預設10秒
rpl_semi_sync_master_trace_level :
監控等級:
1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit)
rpl_semi_sync_master_wait_no_slave :
是否允許master 每個事物提交後都要等待slave 的receipt訊號。
預設為on ,每一個事務都會等待,如果slave當掉後,當slave追趕上master的日誌時
,可以自動的切換為半同步方式,如果為off,則slave追趕上後,也不會彩玉半同步的
方式複製了,需要手工發動。
rpl_semi_sync_slave_enabled :
啟動slave 支援半同步複製。
rpl_semi_sync_slave_trace_level :
監控等級,同 上面的rpl_semi_sync_master_trace_leve。
相應的系統的狀態變數:
mysql.sock@mysql> show global status like 'rpl_semi_sync%';
+--------------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients | 1 |
| Rpl_semi_sync_master_net_avg_wait_time | 902 |
| Rpl_semi_sync_master_net_wait_time | 902 |
| 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 | 501 |
| Rpl_semi_sync_master_tx_wait_time | 501 |
| 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 |
| Rpl_semi_sync_slave_status | OFF |
+--------------------------------------------+-------+
15 rows in set (0.00 sec)
Rpl_semi_sync_master_clients :
記錄支援半同步的slave的個數。
Rpl_semi_sync_master_net_avg_wait_time :
master 等待slave 回覆的平均等待時間。 單位毫秒.
| Rpl_semi_sync_master_net_wait_time :
master 總的等待時間。
Rpl_semi_sync_master_net_waits :
master 等待slave 回覆的的總的等待次數。
Rpl_semi_sync_master_no_times :
master 關閉半同步複製的次數。
Rpl_semi_sync_master_no_tx :
master 沒有收到slave的回覆而提交的次數,(應該可以理解為master 等待超時的次
數)
Rpl_semi_sync_master_status :
標記master現在是否是半同步複製狀態。
Rpl_semi_sync_master_timefunc_failures :
The number of times the master failed when calling time functions such as
gettimeofday().
Rpl_semi_sync_master_tx_avg_wait_time :
master 花在每個事務上的平均等待時間。
Rpl_semi_sync_master_tx_wait_time :
master 總的等待次數。
Rpl_semi_sync_master_wait_pos_backtraverse:
我理解的意思就是後來的先到了,而先來的還沒有到的次數。
The total number of times the master waited for an event with binary
coordinates lower than events waited for previously. This can occur when
the order in which transactions start waiting for a reply is different from
the order in which their binary log events are written.
Rpl_semi_sync_master_wait_sessions:
當前有多少個session 因為slave 的回覆而造成等待。
Rpl_semi_sync_master_yes_tx :
master 成功接收到slave的回覆的次數。
Rpl_semi_sync_slave_status :
標記slave 是否在半同步狀態。
========================================================
配置半同步的步驟就很簡單了:
1.先按照我們一般的配置非同步複製的方式 建立好複製。
2. 啟動非同步方式複製。
3.當slave追趕上master的狀態時,停止slave :
4. 修改主從庫的半同步的引數:
主庫執行:
set global rpl_semi_master_enabled=1;
set global rpl_semi_sync_master_timeout=1000;
從庫執行 ;
set global rpl_semi_slave_enabled=1;
5. 從庫啟動slave:
start slave;
6.檢視引數,根據複製的狀態調整global rpl_semi_sync_master_timeout的值。
1.mysql5.5.9 半同步複製功能:
mysql5.5 版本支援半同步複製功能(Semisynchronous Replication),但
還不是原生的支援,是透過plugin來支援的,並且預設是沒有安裝這個外掛的。
不論是二進位制釋出的,還是自己原始碼編譯的,都會預設生成這個外掛,
一個是針對master 的一個是針對slave的,在使用之前需要先安裝這倆plugins
首先先檢查 mysql是否支援動態新增外掛,
mysql.sock@mysql> select @@have_dynamic_loading ;
+------------------------+
| @@have_dynamic_loading |
+------------------------+
| YES |
+------------------------+
1 row in set (0.00 sec)
支援動態增減外掛,
新增外掛:
mysql.sock@(none)> install plugin rpl_semi_sync_master soname
'semisync_master.so' ;
Query OK, 0 rows affected (0.00 sec)
mysql.sock@(none)> install plugin rpl_semi_sync_slave soname
'semisync_slave.so';
Query OK, 0 rows affected (0.00 sec)
新增完外掛後,系統會預設的增加了幾個系統引數
mysql.sock@(none)> show global variables like 'rpl_semi_sync%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_slave_enabled | OFF |
| rpl_semi_sync_slave_trace_level | 32 |
+------------------------------------+-------+
6 rows in set (0.00 sec)
這些引數是可以動態修改的
rpl_semi_sync_master_enabled :
啟動master 支援半同步複製。
rpl_semi_sync_master_timeout :
主庫等待半同步複製資訊返回的超時間隔,預設10秒
rpl_semi_sync_master_trace_level :
監控等級:
1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit)
rpl_semi_sync_master_wait_no_slave :
是否允許master 每個事物提交後都要等待slave 的receipt訊號。
預設為on ,每一個事務都會等待,如果slave當掉後,當slave追趕上master的日誌時
,可以自動的切換為半同步方式,如果為off,則slave追趕上後,也不會彩玉半同步的
方式複製了,需要手工發動。
rpl_semi_sync_slave_enabled :
啟動slave 支援半同步複製。
rpl_semi_sync_slave_trace_level :
監控等級,同 上面的rpl_semi_sync_master_trace_leve。
相應的系統的狀態變數:
mysql.sock@mysql> show global status like 'rpl_semi_sync%';
+--------------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients | 1 |
| Rpl_semi_sync_master_net_avg_wait_time | 902 |
| Rpl_semi_sync_master_net_wait_time | 902 |
| 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 | 501 |
| Rpl_semi_sync_master_tx_wait_time | 501 |
| 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 |
| Rpl_semi_sync_slave_status | OFF |
+--------------------------------------------+-------+
15 rows in set (0.00 sec)
Rpl_semi_sync_master_clients :
記錄支援半同步的slave的個數。
Rpl_semi_sync_master_net_avg_wait_time :
master 等待slave 回覆的平均等待時間。 單位毫秒.
| Rpl_semi_sync_master_net_wait_time :
master 總的等待時間。
Rpl_semi_sync_master_net_waits :
master 等待slave 回覆的的總的等待次數。
Rpl_semi_sync_master_no_times :
master 關閉半同步複製的次數。
Rpl_semi_sync_master_no_tx :
master 沒有收到slave的回覆而提交的次數,(應該可以理解為master 等待超時的次
數)
Rpl_semi_sync_master_status :
標記master現在是否是半同步複製狀態。
Rpl_semi_sync_master_timefunc_failures :
The number of times the master failed when calling time functions such as
gettimeofday().
Rpl_semi_sync_master_tx_avg_wait_time :
master 花在每個事務上的平均等待時間。
Rpl_semi_sync_master_tx_wait_time :
master 總的等待次數。
Rpl_semi_sync_master_wait_pos_backtraverse:
我理解的意思就是後來的先到了,而先來的還沒有到的次數。
The total number of times the master waited for an event with binary
coordinates lower than events waited for previously. This can occur when
the order in which transactions start waiting for a reply is different from
the order in which their binary log events are written.
Rpl_semi_sync_master_wait_sessions:
當前有多少個session 因為slave 的回覆而造成等待。
Rpl_semi_sync_master_yes_tx :
master 成功接收到slave的回覆的次數。
Rpl_semi_sync_slave_status :
標記slave 是否在半同步狀態。
========================================================
配置半同步的步驟就很簡單了:
1.先按照我們一般的配置非同步複製的方式 建立好複製。
2. 啟動非同步方式複製。
3.當slave追趕上master的狀態時,停止slave :
4. 修改主從庫的半同步的引數:
主庫執行:
set global rpl_semi_master_enabled=1;
set global rpl_semi_sync_master_timeout=1000;
從庫執行 ;
set global rpl_semi_slave_enabled=1;
5. 從庫啟動slave:
start slave;
6.檢視引數,根據複製的狀態調整global rpl_semi_sync_master_timeout的值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-687487/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 8 複製(二)——半同步複製MySql
- mysql 5.7半同步複製MySql
- MySQL主從複製之半同步複製MySql
- Mysql5.7半同步複製MySql
- MySQL5.7主從複製-半同步複製搭建MySql
- mysql半同步複製的設定MySql
- Mariadb之半同步複製叢集配置
- 半同步複製報錯mysql8.0.25MySql
- MySQL增強(Loss-less)半同步複製MySql
- MySQL5.7半同步複製報錯案例分析MySql
- #MySQL# mysql5.7新特性之半同步複製MySql
- 多從庫時半同步複製不工作的BUG分析
- MySQL 8 複製(一)——非同步複製MySql非同步
- Mysql半同步複製模式說明及配置示例 - 運維小結MySql模式運維
- MySQL主從複製之非同步複製MySql非同步
- 鐳速檔案同步功能,讓你告別手工複製!
- js複製功能JS
- MySQL半同步複製資料最終一致性驗證MySql
- MySQL 8 複製(八)——組複製安裝部署MySql
- 小程式複製功能
- MongoDB 重新同步複製整合員MongoDB
- 主從複製--非同步篇非同步
- GreatSQL 非同步複製及搭建SQL非同步
- js複製黏貼功能JS
- 前端實現複製功能前端
- Windows Mysql主從複製部署WindowsMySql
- MongoDB複製集資料同步流程MongoDB
- PostgreSQL 13 同步流複製(#2.4)-202104SQL
- 微信小程式複製功能微信小程式
- 【PG流複製】Postgresql流複製部署過程及效能測試SQL
- Mysql MHA部署-02主從複製MySql
- mysql主從複製詳細部署MySql
- MySQL主從複製環境部署MySql
- PostgreSQL 13 非同步流複製(#2.1)-202103SQL非同步
- PostgreSQL 13 同步流複製+failover(#2.6)-202104SQLAI
- JS如何實現點選複製功能,JS點選複製文字JS
- js 呼叫瀏覽器複製功能JS瀏覽器
- MySQL 主從複製安裝部署配置MySql
- MySQL 同步複製及高可用方案總結MySql