最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql主從復(fù)制作用和工作原理詳解

 更新時(shí)間:2019年07月18日 10:08:36   作者:荊襄鐵衛(wèi)  
這篇文章主要介紹了Mysql主從復(fù)制作用和工作原理詳解,主從復(fù)制,是用來建立一個(gè)和主數(shù)據(jù)庫完全一樣的數(shù)據(jù)庫環(huán)境,稱為從數(shù)據(jù)庫,主數(shù)據(jù)庫一般是準(zhǔn)實(shí)時(shí)的業(yè)務(wù)數(shù)據(jù)庫,需要的朋友可以參考下

一、什么是主從復(fù)制

主從復(fù)制,是用來建立一個(gè)和主數(shù)據(jù)庫完全一樣的數(shù)據(jù)庫環(huán)境,稱為從數(shù)據(jù)庫,主數(shù)據(jù)庫一般是準(zhǔn)實(shí)時(shí)的業(yè)務(wù)數(shù)據(jù)庫。在最常用的mysql數(shù)據(jù)庫中,支持單項(xiàng)、異步賦值。在賦值過程中,一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而另外一臺(tái)服務(wù)器充當(dāng)從服務(wù)器;此時(shí)主服務(wù)器會(huì)將更新信息寫入到一個(gè)特定的二進(jìn)制文件中。

并會(huì)維護(hù)文件的一個(gè)索引用來跟蹤日志循環(huán)。這個(gè)日志可以記錄并發(fā)送到從服務(wù)器的更新中去。當(dāng)一臺(tái)從服務(wù)器連接到主服務(wù)器時(shí),從服務(wù)器會(huì)通知主服務(wù)器從服務(wù)器的日志文件中讀取最后一次成功更新的位置。然后從服務(wù)器會(huì)接收從哪個(gè)時(shí)刻起發(fā)生的任何更新,然后鎖住并等到主服務(wù)器通知新的更新。

二、主從復(fù)制的作用

一是確保數(shù)據(jù)安全;做數(shù)據(jù)的熱備,作為后備數(shù)據(jù)庫,主數(shù)據(jù)庫服務(wù)器故障后,可切換到從數(shù)據(jù)庫繼續(xù)工作,避免數(shù)據(jù)的丟失。

二是提升I/O性能;隨著日常生產(chǎn)中業(yè)務(wù)量越來越大,I/O訪問頻率越來越高,單機(jī)無法滿足,此時(shí)做多庫的存儲(chǔ),有效降低磁盤I/O訪問的頻率,提高了單個(gè)設(shè)備的I/O性能。

三是讀寫分離,使數(shù)據(jù)庫能支持更大的并發(fā);在報(bào)表中尤其重要。由于部分報(bào)表sql語句非常的慢,導(dǎo)致鎖表,影響前臺(tái)服務(wù)。如果前臺(tái)使用master,報(bào)表使用slave,那么報(bào)表sql將不會(huì)造成前臺(tái)鎖,保證了前臺(tái)速度。

三、主從復(fù)制的原理

主從復(fù)制中涉及的文件

主庫: binlog

從庫:

  • relaylog 中繼日志
  • master.info 主庫信息文件
  • relaylog.info relaylog應(yīng)用的信息

主從復(fù)制中涉及的三個(gè)線程

主庫:

Binlog_Dump Thread :

從庫:

SLAVE_IO_THREAD

SLAVE_SQL_THREAD

具體原理如圖所示:

1.從數(shù)據(jù)庫執(zhí)行change master to 命令(主數(shù)據(jù)庫的連接信息+復(fù)制的起點(diǎn))
2.從數(shù)據(jù)庫會(huì)將以上信息,記錄到master.info文件
3.從數(shù)據(jù)庫執(zhí)行 start slave 命令,立即開啟SLAVE_IO_THREAD 和SLAVE_SQL_THREAD這兩個(gè)線程

4.從數(shù)據(jù)庫 SLAVE_SQL_THREAD,讀取master.info文件中的信息獲取到IP,PORT,User,Pass,binlog的位置信息

5.從數(shù)據(jù)庫SLAVE_IO_THREAD請(qǐng)求連接主數(shù)據(jù)庫,主數(shù)據(jù)庫專門提供一個(gè)SLAVE_IO_THREAD,負(fù)責(zé)和SLAVE_SQL_THREAD交互

6.SLAVE_IO_THREAD根據(jù)binlog的位置信息,請(qǐng)求主數(shù)據(jù)庫新的binlog

7.主數(shù)據(jù)庫通過Binlog_DUMP_Thread將最新的binlog,通過網(wǎng)絡(luò)TP給從數(shù)據(jù)庫的SALVE_IO_THREAD

8.SLAVE_IO_THREAD接收到新的binlog日志,存儲(chǔ)到TCP/IP緩存,立即返回ACK給主庫,并更新master.info

9.SLAVE_IO_THREAD將TCP/IP緩存中數(shù)據(jù),轉(zhuǎn)儲(chǔ)到磁盤relaylog中.

10.SLAVE_SQL_THREAD讀取relay.info中的信息,獲取到上次已經(jīng)應(yīng)用過的relaylog的位置信息

11.SLAVE_SQL_THREAD會(huì)按照上次的位置點(diǎn)回放最新的relaylog,再次更新relay.info信息

12.從數(shù)據(jù)庫會(huì)自動(dòng)purge應(yīng)用過relay進(jìn)行定期清理

一旦主從復(fù)制構(gòu)建成功,主數(shù)據(jù)庫當(dāng)中發(fā)生了新的變化,都會(huì)通過 slave_dump_THREAD發(fā)送信號(hào)給SLAVE_IO_THREAD,增強(qiáng)了主從復(fù)制的實(shí)時(shí)性.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL報(bào)錯(cuò)1118,數(shù)據(jù)類型長(zhǎng)度過長(zhǎng)問題及解決

    MySQL報(bào)錯(cuò)1118,數(shù)據(jù)類型長(zhǎng)度過長(zhǎng)問題及解決

    在使用MySQL過程中,常見的一個(gè)問題是報(bào)錯(cuò)1118,這通常發(fā)生在創(chuàng)建表時(shí),錯(cuò)誤提示為“Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual
    2024-10-10
  • SQL查詢執(zhí)行順序分析

    SQL查詢執(zhí)行順序分析

    這篇文章主要為大家介紹了SQL查詢執(zhí)行順序分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決

    MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決

    本文主要介紹了MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • MySQL數(shù)據(jù)庫中Interval關(guān)鍵字的使用看這一篇就夠了

    MySQL數(shù)據(jù)庫中Interval關(guān)鍵字的使用看這一篇就夠了

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中Interval關(guān)鍵字使用的相關(guān)資料,interval作為一個(gè)關(guān)鍵字時(shí),表示為時(shí)間間隔,常用在date_add()、date_sub()、subdate(),函數(shù)中,常用于時(shí)間的加減法,需要的朋友可以參考下
    2024-08-08
  • MySQL表中添加數(shù)據(jù)的方法

    MySQL表中添加數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL表中添加數(shù)據(jù)的方法,本文通過sql語句給大家詳細(xì)講解,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • MySQL一勞永逸永久支持輸入中文的方法實(shí)例

    MySQL一勞永逸永久支持輸入中文的方法實(shí)例

    相信大家在使用MySQL數(shù)據(jù)庫的過程中,或多或少都遇到報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于MySQL一勞永逸永久支持輸入中文的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

    MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

    在使用FlinkSQL的mysql-cdc連接器來監(jiān)聽MySQL數(shù)據(jù)庫時(shí),通常需要將MySQL的binlog模式設(shè)置為ROW模式,當(dāng)我們將MySQL主庫的binlog模式從STATEMENT切換為ROW并重啟MySQL服務(wù)后,MySQL從庫在同步時(shí)可能會(huì)報(bào)錯(cuò),所以本文介紹了MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案
    2024-08-08
  • MySQL中的distinct與group by比較使用方法

    MySQL中的distinct與group by比較使用方法

    今天無意中聽到有同事在討論,distinct和group by有什么區(qū)別,下面這篇文章主要給大家介紹了關(guān)于MySQL去重中distinct和group by區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫

    這篇文章主要介紹了如何把本地mysql遷移到服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 兩個(gè)MySql服務(wù)的應(yīng)用

    兩個(gè)MySql服務(wù)的應(yīng)用

    兩個(gè)MySql服務(wù)的應(yīng)用兼容方法。
    2009-10-10

最新評(píng)論

平定县| 汽车| 巴彦淖尔市| 进贤县| 大姚县| 行唐县| 河南省| 云和县| 手机| 翁牛特旗| 伊金霍洛旗| 客服| 朝阳市| 壶关县| 平果县| 金堂县| 嵊泗县| 横峰县| 宜州市| 新平| 台江县| 绥江县| 抚宁县| 乌审旗| 抚松县| 正定县| 莎车县| 湘乡市| 新化县| 西乌珠穆沁旗| 曲靖市| 徐闻县| 铜鼓县| 绿春县| 报价| 连山| 彭泽县| 乐陵市| 阳山县| 隆昌县| 阳原县|