国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql 半同步復(fù)制

2024-07-24 12:34:30
字體:
供稿:網(wǎng)友
        mysql 半同步復(fù)制:

  一.半同步復(fù)制
  半同步復(fù)制特點(diǎn)
  1. 與傳統(tǒng)的異步復(fù)制相比,半同步復(fù)制在多個(gè)Slave節(jié)點(diǎn)中會(huì)選取一個(gè)節(jié)點(diǎn)進(jìn)行半同步復(fù)制。也就是說,當(dāng)Master提交一個(gè)事務(wù)的時(shí)候,在這個(gè)半同步復(fù)制的Slave端返回一個(gè)同步完成的Ack包之后,服務(wù)器才會(huì)向用戶返回事務(wù)提交成功,而其他的節(jié)點(diǎn)則是采用傳統(tǒng)的異步復(fù)制方式進(jìn)行同步。
  2. 半同步是復(fù)制是基于異步復(fù)制之上進(jìn)行的,也就是說配置半同步復(fù)制之前需要先配置到異步復(fù)制。
  3. 半同步復(fù)制可以保證在主節(jié)點(diǎn)發(fā)生故障的時(shí)候,總有一個(gè)節(jié)點(diǎn)的數(shù)據(jù)與主節(jié)點(diǎn)一樣。這樣在進(jìn)行切換的時(shí)候,可以更加快速地把這個(gè)Slave節(jié)點(diǎn)設(shè)置成主節(jié)點(diǎn)來使用。
 
  5.6
 
  半同步復(fù)制性能
  - 半同步復(fù)制比異步復(fù)制性能低1/3
  - 模式after_sync 比 after_commit性能要高
 
  二.半同步復(fù)制安裝條件
  1.必須是MySQL5.5或者以上
  2.MySQL必須有自動(dòng)加載功能,即have_dynamic_loading變量為YES
  mysql> show variables like 'have_dynamic_loading';
  +----------------------+-------+
  | Variable_name        | Value |
  +----------------------+-------+
  | have_dynamic_loading | YES   |
  +----------------------+-------+
  3.主從復(fù)制已經(jīng)配置好(異步復(fù)制)
 
  三.配置
  1.設(shè)置半同步模式(主庫(kù),5.7為默認(rèn)值)
  SET rpl_semi_sync_master_wait_point= AFTER_SYNC;
 
  2.加載插件
  INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';(主庫(kù))
  INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';(從庫(kù))
 
  show plugins;(確認(rèn)查看)
 
  3.啟動(dòng)半同步復(fù)制
  主庫(kù)
  SET GLOBAL rpl_semi_sync_master_enabled = 1;
  從庫(kù)
  SET GLOBAL rpl_semi_sync_slave_enabled = 1;
  以上的啟動(dòng)方式是在命令行操作,也可寫在配置文件中。
  plugin_dir=/usr/local/mysql/lib/plugin
  plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
  loose_rpl_semi_sync_master_enabled = 1
  loose_rpl_semi_sync_slave_enabled = 1
  loose_rpl_semi_sync_master_timeout = 5000
  rpl_semi_sync_master_wait_point = AFTER_SYNC or AFTER_COMMIT
  rpl_semi_sync_master_wait_for_slave_count = 1
 
  重啟從服務(wù)器IO線程,手動(dòng)將異步模式切換為半同步模式。重啟后,slave會(huì)在master上注冊(cè)為半同步復(fù)制的slave角色。
  STOP SLAVE IO_THREAD;
  START SLAVE IO_THREAD;
 
  4.確認(rèn)半同步復(fù)制運(yùn)行狀態(tài)
  主庫(kù)
  mysql> show status like 'Rpl_semi_sync_master_status';
  +-----------------------------+-------+
  | Variable_name               | Value |
  +-----------------------------+-------+
  | Rpl_semi_sync_master_status | ON    |
  +-----------------------------+-------+
  從庫(kù)
  mysql> show status like 'Rpl_semi_sync_slave_status';
  +----------------------------+-------+
  | Variable_name              | Value |
  +----------------------------+-------+
  | Rpl_semi_sync_slave_status | ON    |
  +----------------------------+-------+
 
  5.半同步復(fù)制相關(guān)參數(shù)
  主庫(kù)
  Rpl_semi_sync_master_status:指示主服務(wù)器使用的是異步復(fù)制模式,還是半同步復(fù)制模式。
  Rpl_semi_sync_master_clients:顯示有多少個(gè)從服務(wù)器配置成了半同步復(fù)制模式。
  Rpl_semi_sync_master_yes_tx:顯示從服務(wù)器確認(rèn)的成功提交數(shù)量。
  Rpl_semi_sync_master_no_tx:顯示從服務(wù)器確認(rèn)的不成功提交數(shù)量。
  Rpl_semi_sync_master_timeout=1000默認(rèn)1000毫秒,即10秒超時(shí),將切換為異步復(fù)制
  從庫(kù)
  Rpl_semi_sync_slave_status表示從服務(wù)器開啟半同步復(fù)制
 
  6.測(cè)試
  模擬半同步復(fù)制slave server宕機(jī)
  - 關(guān)閉半同步slave server
  - 關(guān)閉后主庫(kù)進(jìn)行查看未發(fā)生變化
  mysql> show status like '%semi%';
  +--------------------------------------------+-------+
  | 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             | 2     |
  | 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      | 5754  |
  | Rpl_semi_sync_master_tx_wait_time          | 11509 |
  | Rpl_semi_sync_master_tx_waits              | 2     |
  | Rpl_semi_sync_master_wait_pos_backtraverse | 0     |
  | Rpl_semi_sync_master_wait_sessions         | 0     |
  | Rpl_semi_sync_master_yes_tx                | 2     |
  +--------------------------------------------+-------+
  - 主庫(kù)執(zhí)行事務(wù),等待10秒
  mysql> delete from wwj.t3 where idt3=2;
  Query OK, 1 row affected (10.03 sec)
  - 再次查看
  mysql> show status like '%semi%';
  +--------------------------------------------+-------+
  | 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             | 3     |
  | Rpl_semi_sync_master_no_times              | 1     |
  | Rpl_semi_sync_master_no_tx                 | 1     |
  | Rpl_semi_sync_master_status                | OFF   |
  | Rpl_semi_sync_master_timefunc_failures     | 0     |
  | Rpl_semi_sync_master_tx_avg_wait_time      | 5754  |
  | Rpl_semi_sync_master_tx_wait_time          | 11509 |
  | Rpl_semi_sync_master_tx_waits              | 2     |
  | Rpl_semi_sync_master_wait_pos_backtraverse | 0     |
  | Rpl_semi_sync_master_wait_sessions         | 0     |
  | Rpl_semi_sync_master_yes_tx                | 2     |
  +--------------------------------------------+-------+
  - 重新開啟semi slave,半同步重新開啟。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄龙县| 岑溪市| 铜梁县| 广昌县| 张北县| 剑河县| 清镇市| 昭苏县| 大厂| 垫江县| 淮南市| 古田县| 太谷县| 婺源县| 天气| 永康市| 封开县| 甘孜| 三门峡市| 专栏| 原平市| 康保县| 襄垣县| 旌德县| 泸水县| 鹤庆县| 麻栗坡县| 叙永县| 弋阳县| 油尖旺区| 平陆县| 玉林市| 阜阳市| 宣威市| 土默特右旗| 安徽省| 行唐县| 聂拉木县| 潮州市| 钦州市| 长海县|