亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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ù)器,而另外一臺服務(wù)器充當(dāng)從服務(wù)器;此時(shí)主服務(wù)器會將更新信息寫入到一個(gè)特定的二進(jìn)制文件中。

并會維護(hù)文件的一個(gè)索引用來跟蹤日志循環(huán)。這個(gè)日志可以記錄并發(fā)送到從服務(wù)器的更新中去。當(dāng)一臺從服務(wù)器連接到主服務(wù)器時(shí),從服務(wù)器會通知主服務(wù)器從服務(wù)器的日志文件中讀取最后一次成功更新的位置。然后從服務(wù)器會接收從哪個(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í)做多庫的存儲,有效降低磁盤I/O訪問的頻率,提高了單個(gè)設(shè)備的I/O性能。

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

三、主從復(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ù)庫會將以上信息,記錄到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請求連接主數(shù)據(jù)庫,主數(shù)據(jù)庫專門提供一個(gè)SLAVE_IO_THREAD,負(fù)責(zé)和SLAVE_SQL_THREAD交互

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • Mysql空值處理函數(shù)詳解

    Mysql空值處理函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Mysql空值處理函數(shù)的相關(guān)資料,在MySQL數(shù)據(jù)庫中,空值問題是經(jīng)常遇到的一個(gè)問題,空值是指在某個(gè)字段中沒有數(shù)據(jù)或者數(shù)據(jù)為NULL,需要的朋友可以參考下
    2023-08-08
  • 詳細(xì)分析mysql視圖的原理及使用方法

    詳細(xì)分析mysql視圖的原理及使用方法

    這篇文章主要介紹了mysql視圖的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)

    MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫基礎(chǔ)入門之常用命令,結(jié)合實(shí)例形式分析了MySQL數(shù)據(jù)庫管理、備份、日志常用操作命令與使用注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • MySQL字符集中文亂碼解析

    MySQL字符集中文亂碼解析

    這篇文章主要給大家解析了MySQL字符集中文亂碼的問題,文章通過代碼示例講解的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • mysql通配符的具體使用

    mysql通配符的具體使用

    通配符用于替換字符串中的一個(gè)或多個(gè)字符,通配符與LIKE運(yùn)算符一起使用,本文就詳細(xì)的介紹了mysql通配符的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-05-05
  • MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結(jié)

    MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結(jié)

    這篇文章主要介紹了MySQL 數(shù)據(jù)庫 like 語句通配符模糊查詢小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • SQL函數(shù)將某個(gè)字段合并在一起的操作

    SQL函數(shù)將某個(gè)字段合并在一起的操作

    這篇文章主要介紹了SQL函數(shù)將某個(gè)字段合并在一起的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問題及解決辦法

    MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問題及解決辦法

    項(xiàng)目中查詢用到了concat()拼接函數(shù),本文主要介紹了MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問題及解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • CentOS系統(tǒng)下如何設(shè)置mysql每天自動備份

    CentOS系統(tǒng)下如何設(shè)置mysql每天自動備份

    備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程。本文將詳細(xì)介紹在CentOS系統(tǒng)下如何設(shè)置mysql每天自動備份,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • MySQL8.4實(shí)現(xiàn)RPM部署指南

    MySQL8.4實(shí)現(xiàn)RPM部署指南

    MySQL8.4是一個(gè)穩(wěn)定和高性能的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),本文主要介紹了MySQL8.4實(shí)現(xiàn)RPM部署指南,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06

最新評論