青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 數(shù)據(jù)庫 Mysql 查看內(nèi)容

無損復(fù)制 mysql5.7

2023-3-16 15:48| 查看: 1690 |來源: 互聯(lián)網(wǎng)

介紹無損復(fù)制之前,首先介紹一下半同步復(fù)制半同步復(fù)制:無損復(fù)制屬于半同步復(fù)制的一種。一、半同步復(fù)制介紹1,兩個插件實(shí)現(xiàn)半同步復(fù)制功能。主庫有一個插件,從 ...

介紹無損復(fù)制之前,首先介紹一下半同步復(fù)制

半同步復(fù)制:

無損復(fù)制屬于半同步復(fù)制的一種。

一、半同步復(fù)制介紹

1,兩個插件實(shí)現(xiàn)半同步復(fù)制功能。主庫有一個插件,從庫有一個插件。

2,系統(tǒng)變量控制插件特性。幾個列子

參數(shù):

1)rpl_semi_sync_master_enabled

      控制是否在主庫上啟用半同步復(fù)制。要啟用或禁用插件,請分別將此變量設(shè)置為1或0。默認(rèn)值是0(關(guān)閉)。

2)rpl_semi_sync_master_timeout

      一個以毫秒為單位的值,用于控制主服務(wù)器等待來自從服務(wù)器的確認(rèn)提交并恢復(fù)到異步復(fù)制的時間,超過這個值就是超時。 默認(rèn)值是10000(10秒)。超時之后,就從半同步復(fù)制,返回到異步復(fù)制。

3)rpl_semi_sync_slave_enabled

     作用和參數(shù) rpl_semi_sync_master_enabled相似,但是控制的是從庫的插件。

3,啟用半同步復(fù)制監(jiān)視的狀態(tài)變量。一些例子:

參數(shù):

1)Rpl_semi_sync_master_clients

半同步從庫的數(shù)量。

2)Rpl_semi_sync_master_status

當(dāng)前是否在主服務(wù)器上運(yùn)行半同步復(fù)制。如果插件已啟用并且未提交確認(rèn),則值為1。如果插件未啟用,或者由于提交確認(rèn)超時,主服務(wù)器已回退到異步復(fù)制,則為0。

3)Rpl_semi_sync_master_yes_tx

從庫成功確認(rèn)的提交數(shù)量。

4)Rpl_semi_sync_master_no_tx

從庫未成功確認(rèn)的提交數(shù)量。

5)Rpl_semi_sync_slave_status

當(dāng)前是否在從站上運(yùn)行半同步復(fù)制。如果插件已啟用且從屬I/O線程正在運(yùn)行,則為1,否則為0。

二、半同步復(fù)制安裝和配置

半同步復(fù)制是使用插件實(shí)現(xiàn)的,因此必須將插件安裝到數(shù)據(jù)庫中以使其可用。插件安裝完成后,通過與其關(guān)聯(lián)的系統(tǒng)變量來控制插件。直有關(guān)聯(lián)的插件安裝完成后,這些系統(tǒng)變量才可用。

要使用半同步復(fù)制,必須滿足以下要求:

1)必須安裝MySQL 5.5或更高版本。

2)安裝插件的功能需要一個支持動態(tài)加載的MySQL服務(wù)器。要驗(yàn)證這一點(diǎn),請檢查have_dynamic_loading系統(tǒng)變量的值是否為YES。

3)復(fù)制必須已經(jīng)在工作。

4)不能有多個復(fù)制通道配置。半同步復(fù)制僅與默認(rèn)復(fù)制通道兼容。

要設(shè)置半同步復(fù)制,請使用以下說明。

這里提到的INSTALL PLUGIN,SET GLOBAL,STOP SLAVE和START SLAVE語句需要SUPER權(quán)限。

MySQL發(fā)布包括主端和從端的半同步復(fù)制插件文件。

要被主庫或從庫使用,相應(yīng)的插件庫文件必須位于MySQL插件目錄(由plugin_dir系統(tǒng)變量命名的目錄)中。如有必要,請在服務(wù)器啟動時設(shè)置plugin_dir的值,以告知服務(wù)器插件目錄位置。

插件庫文件基名是semisync_master和semisync_slave。 每個平臺的文件名后綴都不相同(例如,用于Unix和類Unix系統(tǒng)的.so,用于Windows的.dll)

主插件庫文件必須存在于主服務(wù)器的插件目錄中。從插件庫文件必須存在于每個從服務(wù)器的插件目錄中

要加載插件,請在主站和每個要半同步的從站上使用INSTALL PLUGIN語句(根據(jù)需要為您的平臺調(diào)整.so后綴)。

MySQL發(fā)布包括主端和從端的半同步復(fù)制插件文件。

要被主庫或從庫使用,相應(yīng)的插件庫文件必須位于MySQL插件目錄(由plugin_dir系統(tǒng)變量命名的目錄)中。如有必要,請在服務(wù)器啟動時設(shè)置plugin_dir的值,以告知服務(wù)器插件目錄位置。

插件庫文件基名是semisync_master和semisync_slave。 每個平臺的文件名后綴都不相同(例如,用于Unix和類Unix系統(tǒng)的.so,用于Windows的.dll)

主插件庫文件必須存在于主服務(wù)器的插件目錄中。從插件庫文件必須存在于每個從服務(wù)器的插件目錄中

要加載插件,請在主站和每個要半同步的從站上使用INSTALL PLUGIN語句(根據(jù)需要為您的平臺調(diào)整.so后綴)。

1,安裝插件

On the master:

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

On each slave:

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

如果嘗試安裝插件會導(dǎo)致類似于此處顯示的錯誤,則必須安裝libimf:

2,查看安裝了哪些插件

要查看哪些插件已安裝,請使用SHOW PLUGINS語句,或者查詢INFORMATION_SCHEMA.PLUGINS表。

例如:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS

       FROM INFORMATION_SCHEMA.PLUGINS

       WHERE PLUGIN_NAME LIKE '%semi%';

在安裝半同步復(fù)制插件之后,默認(rèn)情況下它是禁用的。主庫和從庫都必須啟用插件才能啟用半同步復(fù)制。 如果只啟用了一方,復(fù)制將是異步的。

要控制是否啟用已安裝的插件,請設(shè)置適當(dāng)?shù)南到y(tǒng)變量。可以在運(yùn)行時使用SET GLOBAL或在服務(wù)器啟動時在命令行或選項文件中設(shè)置這些變量。

在運(yùn)行時,這些主庫端系統(tǒng)變量是可用的:

         SET GLOBAL rpl_semi_sync_master_enabled = {0|1};

         SET GLOBAL rpl_semi_sync_master_timeout = N;

在從庫方面,這個系統(tǒng)變量是可用的:

         SET GLOBAL rpl_semi_sync_slave_enabled = {0|1};

對于rpl_semi_sync_master_enabled或rpl_semi_sync_slave_enabled,值應(yīng)該為1以啟用半同步復(fù)制,或者使用0來禁用它。 默認(rèn)情況下,這些變量設(shè)置為0。

對于rpl_semi_sync_master_timeout,值N以毫秒為單位給出。 默認(rèn)值是10000(10秒)。

3,如果在運(yùn)行時在從庫上啟用半同步復(fù)制,則還必須啟動從庫I/O線程(如果它已在運(yùn)行,則首先停止),以使從庫連接到主庫并注冊為半同步從庫:

STOP SLAVE IO_THREAD;

START SLAVE IO_THREAD;

如果I/O線程已經(jīng)在運(yùn)行,并且不重新啟動,則從庫設(shè)備將繼續(xù)使用異步復(fù)制

在服務(wù)器啟動時,可以將控制半同步復(fù)制的變量設(shè)置為命令行選項或選項文件。每次服務(wù)器啟動時,選項文件中列出的設(shè)置都會生效。例如,您可以按如下方式設(shè)置主站和從站的my.cnf文件中的變量。

On the master:

         [mysqld]

         rpl_semi_sync_master_enabled=1

         rpl_semi_sync_master_timeout=1000 # 1 second

On each slave:

         [mysqld]

         rpl_semi_sync_slave_enabled=1

三,半同步復(fù)制監(jiān)控

半同步復(fù)制功能的插件公開了可以檢查的幾個系統(tǒng)和狀態(tài)變量,以確定其配置和操作狀態(tài)。

系統(tǒng)變量反映了如何配置半同步復(fù)制。要檢查它們的值,使用SHOW VARIABLES:

mysql> SHOW VARIABLES LIKE 'rpl_semi_sync%';

狀態(tài)變量使您能夠監(jiān)視半同步復(fù)制的操作。要檢查它們的值,使用SHOW STATUS:

mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

當(dāng)由于提交阻塞超時或從站追趕而導(dǎo)致主站在異步或半同步復(fù)制之間切換時,它會適當(dāng)?shù)卦O(shè)置Rpl_semi_sync_master_status狀態(tài)變量的值。

從主機(jī)上的半同步復(fù)制到異步復(fù)制的自動回退意味著,即使在此時半同步復(fù)制實(shí)際上不可操作的情況下,rpl_semi_sync_master_enabled系統(tǒng)變量也可能在主端具有值1。 可以監(jiān)視Rpl_semi_sync_master_status狀態(tài)變量,以確定當(dāng)前主服務(wù)器是使用異步還是半同步復(fù)制。

要查看連接了多少個半同步從站,請檢查狀態(tài)參數(shù)Rpl_semi_sync_master_clients。

show status like '%rpl_semi_sync_master_clients%';

Rpl_semi_sync_master_yes_tx和Rpl_semi_sync_master_no_tx變量指示已成功確認(rèn)或從屬失敗的提交數(shù)。

show status like '%Rpl_semi_sync_master_yes_tx%';

show status like '%Rpl_semi_sync_master_no_tx%';

在從屬方面,Rpl_semi_sync_slave_status指示當(dāng)前是否正在運(yùn)行半同步復(fù)制。

mysql> SHOW STATUS LIKE 'Rpl_semi_sync_slave_status%';

四:具體實(shí)驗(yàn)步驟

1)查看是否支持動態(tài)加載的MySQL服務(wù)器

mysql> show variables like '%dynamic%';

+----------------------+-------+

| Variable_name        | Value |

+----------------------+-------+

| have_dynamic_loading | YES   |

+----------------------+-------+

2)主庫安裝semisync_master插件

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

Query OK, 0 rows affected (0.05 sec)

3)備庫安裝semisync_slave插件

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

Query OK, 0 rows affected (0.07 sec)

4)主庫查看關(guān)于半同步復(fù)制的一些參數(shù)值

mysql> show variables like '%semi%';

+-------------------------------------------+------------+

| 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_for_slave_count | 1          |

| rpl_semi_sync_master_wait_no_slave        | ON         |

| rpl_semi_sync_master_wait_point           | AFTER_SYNC |

+-------------------------------------------+------------+

6 rows in set (0.00 sec)

5)主庫重新設(shè)置

mysql> SET GLOBAL rpl_semi_sync_master_enabled =1;

Query OK, 0 rows affected (0.00 sec)

6)備庫查看本同步復(fù)制的參數(shù)值

mysql> show variables like '%rpl_semi%';

+---------------------------------+-------+

| Variable_name                   | Value |

+---------------------------------+-------+

| rpl_semi_sync_slave_enabled     | OFF   |

| rpl_semi_sync_slave_trace_level | 32    |

7)備庫重新設(shè)置參數(shù)

mysql> SET GLOBAL rpl_semi_sync_slave_enabled =1;

Query OK, 0 rows affected (0.00 sec)

8)從庫重新關(guān)閉,再開啟IO_THREAD線程

mysql> STOP SLAVE IO_THREAD;

Query OK, 0 rows affected (0.00 sec)

mysql> START SLAVE IO_THREAD;

Query OK, 0 rows affected (0.00 sec)

9)備庫查看半同步復(fù)制狀態(tài),

mysql> SHOW STATUS LIKE 'Rpl_semi_sync_slave_status%';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| Rpl_semi_sync_slave_status | ON    |

+----------------------------+-------+

無損復(fù)制

普通的半同步復(fù)制

測試1,半同步復(fù)制

1,主庫設(shè)置超時時間為10000秒,備庫停掉復(fù)制,模擬timeout

mysql> set global rpl_semi_sync_master_timeout=100000000;

Query OK, 0 rows affected (0.00 sec)

mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

2,主庫修改參數(shù)pl_semi_sync_master_wait_point,修改成普通的半同步復(fù)制

mysql> set global rpl_semi_sync_master_wait_point=AFTER_COMMIT;

Query OK, 0 rows affected (0.00 sec)

3,主庫開窗口1,向表中插入一條數(shù)據(jù)

發(fā)現(xiàn)窗口1,卡住

主庫開窗口2 ,查詢這張表

發(fā)現(xiàn)數(shù)據(jù)已經(jīng)有了。

故得出結(jié)論,普通的半同步復(fù)制是在commit binlog之后。再需要得到備庫的確認(rèn)。所以這時候主庫宕機(jī),最后的一個事物的數(shù)據(jù),備庫是沒有的,會發(fā)生丟數(shù)據(jù)。

測試2,無損的半同步復(fù)制

1,主庫修改參數(shù)rpl_semi_sync_master_wait_point,為無損復(fù)制

mysql> set global rpl_semi_sync_master_wait_point=AFTER_SYNC;

Query OK, 0 rows affected (0.00 sec)

2,主庫開窗口1,向表中插入一條數(shù)據(jù)

發(fā)現(xiàn)窗口1,卡住

主庫開窗口2 ,查詢這張表

發(fā)現(xiàn)數(shù)據(jù)還沒有。

故得出結(jié)論,無損的半同步復(fù)制是再write binlog之后。在需要得到備庫的確認(rèn)。所以這時候主庫宕機(jī),不會發(fā)生丟數(shù)據(jù)。

本文最后更新于 2023-3-16 15:48,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號:w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 暖暖视频在线高清播放 | 国产亚洲色婷婷久久精品99 | 久久久亚洲国产精品主播 | 国产亚洲人成在线视频 | 日本高清不卡一区久久精品 | 一个人的免费完整在线观看HD | 中文字幕亚洲第一页 | 特黄大片aaaaa毛片 | 97在线观看成人免费视频 | 九九免费精品视频 | 国产三级在线精品男人的天堂 | 成年免费三级视频 | 国产亚洲精品久久精品6 | 国产精品成人久久久久A伋 国产精品成人观看视频免费 | 飘雪韩国在线观看免费高清完整版 | 国产成人国产在线观看入口 | 一个人的视频全免费在线观看www | 国产亚洲精品99一区二区 | 亚洲精品久久久WWW游戏好玩 | 色综合伊人色综合网站下载 | 亚洲日韩成人 | 在线亚洲中文精品第1页 | 3d无遮挡h肉动漫在线播放 | 亚洲一级毛片免费在线观看 | 中文国产乱码在线人妻一区二区 | 狠狠色狠狠色综合系列 | 色戒西瓜视频 | 川师 最美老师 | YIN荡的老师系列第6部分视频 | 九九热在线免费观看 | 一本道久在线综合色色 | 亚洲黄色在线视频 | 国产精品18久久久久网站 | 极品美女久久久久久久久久久 | 中国农村妇女真实BBWBBWBBW | 亲胸揉胸膜下刺激视频网站APP | 肉多的小说腐小说 | 免费在线看视频 | 耻辱诊察室1一4集动漫在线观看 | 国产欧美一区二区三区在线看 | 国产在线观看成人 |