更新時間:2021-01-13 17:03:29 來源:動力節(jié)點 瀏覽1421次
MySQL復(fù)制是指從一個mysql服務(wù)器(MASTER)將數(shù)據(jù)通過日志的方式經(jīng)過網(wǎng)絡(luò)傳送到另一臺或多臺mysql服務(wù)器(SLAVE),然后在slave上重放(replay或redo)傳送過來的日志,以達(dá)到和master數(shù)據(jù)同步的目的。MySQL復(fù)制屬于比較成熟的技術(shù),在MySQL數(shù)據(jù)庫中得到廣泛使用,下面我們一起來了解一下MySQL復(fù)制的優(yōu)點。
MySQL 內(nèi)建的復(fù)制功能是構(gòu)建大型、高性能應(yīng)用程序的基礎(chǔ)。將 MySQL 的數(shù)據(jù)分布到多個系統(tǒng)上去,這種分布的機(jī)制是通過將 MySQL 的某一臺主機(jī)的數(shù)據(jù)復(fù)制到其他主機(jī)(Slaves)上,并重新執(zhí)行一遍來實現(xiàn)的。在復(fù)制過程中,一臺服務(wù)器充當(dāng)主服務(wù)器,而另一臺或多臺其他服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個從服務(wù)器連接主服務(wù)器時,它通知主服務(wù)器,從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。
結(jié)合上述的MySQL復(fù)制的基本原理,總結(jié)出下面5個MySQL復(fù)制的優(yōu)點:
1.提供了讀寫分離的能力。
MySQL復(fù)制讓所有的slave都和master保持?jǐn)?shù)據(jù)一致,因此外界客戶端可以從各個slave中讀取數(shù)據(jù),而寫數(shù)據(jù)則從master上操作。也就是實現(xiàn)了讀寫分離。
需要注意的是,為了保證數(shù)據(jù)一致性,寫操作必須在master上進(jìn)行。
通常說到讀寫分離這個詞,立刻就能意識到它會分散壓力、提高性能。
2.為MySQL服務(wù)器提供了良好的伸縮(scale-out)能力。
由于各個slave服務(wù)器上只提供數(shù)據(jù)檢索而沒有寫操作,因此"隨意地"增加slave服務(wù)器數(shù)量來提升整個MySQL群的性能,而不會對當(dāng)前業(yè)務(wù)產(chǎn)生任何影響。
之所以"隨意地"要加上雙引號,是因為每個slave都要和master建立連接,傳輸數(shù)據(jù)。如果slave數(shù)量巨多,master的壓力就會增大,網(wǎng)絡(luò)帶寬的壓力也會增大。
3.數(shù)據(jù)庫備份時,對業(yè)務(wù)影響降到最低。
由于MySQL服務(wù)器群中所有數(shù)據(jù)都是一致的(至少幾乎是一致的),所以在需要備份數(shù)據(jù)庫的時候可以任意停止某一臺slave的復(fù)制功能(甚至停止整個mysql服務(wù)),然后從這臺主機(jī)上進(jìn)行備份,這樣幾乎不會影響整個業(yè)務(wù)(除非只有一臺slave,但既然只有一臺slave,說明業(yè)務(wù)壓力并不大,短期內(nèi)將這個壓力分配給master也不會有什么影響)。
4.能提升數(shù)據(jù)的安全性。
這是顯然的,任意一臺MySQL服務(wù)器斷開,都不會丟失數(shù)據(jù)。即使是master宕機(jī),也只是丟失了那部分還沒有傳送的數(shù)據(jù)(異步復(fù)制時才會丟失這部分?jǐn)?shù)據(jù))。
5.數(shù)據(jù)分析不再影響業(yè)務(wù)。
需要進(jìn)行數(shù)據(jù)分析的時候,直接劃分一臺或多臺slave出來專門用于數(shù)據(jù)分析。這樣OLTP和OLAP可以共存,且?guī)缀醪粫绊憳I(yè)務(wù)處理性能。
MySQL復(fù)制的優(yōu)點決定了MySQL數(shù)據(jù)庫中復(fù)制技術(shù)存在的必然性,MySQL復(fù)制不僅僅對數(shù)據(jù)安全和業(yè)務(wù)提升有很大幫助,同時也為MySQL數(shù)據(jù)庫的發(fā)展提供了更多的可能。想要學(xué)好MySQL數(shù)據(jù)庫,我們必須掌握MySQL中的許多核心技術(shù),在本站的MySQL教程中對這些MySQL核心技術(shù)都有很好的剖析,小伙伴們不要錯過哦!