溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql的復(fù)制原理以及過(guò)程是怎樣的

發(fā)布時(shí)間:2021-11-16 14:11:59 來(lái)源:億速云 閱讀:218 作者:柒染 欄目:MySQL數(shù)據(jù)庫(kù)

本篇文章為大家展示了Mysql的復(fù)制原理以及過(guò)程是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

Mysql的復(fù)制原理以及流程

(1)復(fù)制的基本原理流程,3個(gè)線程以及之間的關(guān)聯(lián)。

Mysql內(nèi)建的復(fù)制功能是構(gòu)建大型,高性能應(yīng)用程序的基礎(chǔ)。將Mysql的數(shù)據(jù)分布到多個(gè)系統(tǒng)上去,這種分布的機(jī)制,是通過(guò)將Mysql的某一臺(tái)主機(jī)的數(shù)據(jù)復(fù)制到其他主機(jī)(slave)上,并重新執(zhí)行一遍來(lái)實(shí)現(xiàn)的。復(fù)制過(guò)程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接到主服務(wù)器時(shí),它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。

3個(gè)線程:

首先,slave開始一個(gè)工作線程-----I/O線程。I/O線程在master上打開一個(gè)普通的連接,然后開始binlog dump process。binlog dump process 從master的二進(jìn)制日志中讀取事件,如果已經(jīng)跟上了master,它會(huì)睡眠并等待master產(chǎn)生新的事件。I/O線程將這些事件寫入中繼日志。

SQL slave thread(SQL從線程)處理該過(guò)程的最后一步。SQL線程從中繼日志讀取事件而更新slave的數(shù)據(jù),使其與master中的數(shù)據(jù)一致。只要該線程與I/O線程保持一致,中繼日志通常會(huì)位于OS的緩存中,所以中繼日志的開銷很小。

     此外,在master中也有一個(gè)工作線程:和其他Mysql的連接一樣,slave在master中打開一個(gè)連接也會(huì)使得master開始一個(gè)線程。復(fù)制過(guò)程有一個(gè)很重要的限制-----復(fù)制在slave上是串行化的,也就是說(shuō)master上的并行更新操作不能在slave上并行操作。 

上述內(nèi)容就是Mysql的復(fù)制原理以及過(guò)程是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI