mysql 星 拓扑,高性能MySQL:复制拓扑
可以在任意個主庫和備庫之間建立復(fù)制,只有一個限制:每一個備庫只能有一個主庫,有很多復(fù)雜的拓?fù)浣Y(jié)構(gòu),但即使是最簡單的也可能會非常靈活。一種拓?fù)淇梢杂卸喾N用途。關(guān)于使用復(fù)制的不同方式可以很輕易地寫一本書。
我們已經(jīng)討論了如何為主庫設(shè)置一個 備庫,本節(jié)我們討論其他比較普遍的拓?fù)浣Y(jié)構(gòu)以及它們的優(yōu)缺點(diǎn)。記住下面的基本原則:
●一個MySQL 備庫實(shí)例只能有一個主庫。
●每個備庫必須有一個唯一的服務(wù)器ID。
●一個主庫可以有多個備庫(或者相應(yīng)的,一個備庫可以有多個兄弟備庫)。
●如果打開了log. slave_ updates 選項(xiàng),一個備庫可以把其主庫上的數(shù)據(jù)變化傳播到其他備庫。
一主庫多備庫
除了我們已經(jīng)提過的兩臺服務(wù)器的主備結(jié)構(gòu)外,這是最簡單的拓?fù)浣Y(jié)構(gòu)。事實(shí)上一主多備的結(jié)構(gòu)和基本配置差不多簡單,因?yàn)閭鋷熘g根本沒有交互,它們僅僅是連接到同一個主庫上。在有少量寫和大量讀時,這種配置是非常有用的。可以把讀分?jǐn)偟蕉鄠€備庫上,直到備庫給主庫造成了太大的負(fù)擔(dān),或者主備之間的帶寬成為瓶頸為止。你可以按照之前介紹的方法一次性設(shè)置多個備庫,或者根據(jù)需要增加備庫。
一主多備結(jié)構(gòu)
盡管這是非常簡單的拓?fù)浣Y(jié)構(gòu),但它非常靈話,能滿足多種需求。下面是它的些用途:
●為不同的角色使用 不同的備庫(例如添加不同的索引或使用不同的存儲引擎)。
●把一臺備庫當(dāng)作待用的主庫, 除了復(fù)制沒有其他數(shù)據(jù)傳輸。
●將一臺備庫放到遠(yuǎn)程數(shù)據(jù)中心,用作災(zāi)難恢復(fù)。
●延遲一個或多個備庫,以備災(zāi)難恢復(fù)。
●使用其中一個備庫,作為備份、 培訓(xùn)、開發(fā)或者測試使用
這種結(jié)構(gòu)流行的原因是它避免了很多其他拓?fù)浣Y(jié)構(gòu)的復(fù)雜性。例如:可以方便地比較不同備庫重放的事件在主庫二進(jìn)制日志中的位置。換句話說,如果在同一個邏輯點(diǎn)停止所有備庫的復(fù)制,它們正在讀取的是主庫上同一個日志文件的相同物理位置。這是個很好的特性,可以減輕管理員許多工作,例如把備庫提升為主庫。
這種特性只存在于兄弟備庫之間。在沒有直接的主備或者兄弟關(guān)系的服務(wù)器上去比較日志文件的位置要復(fù)雜很多。之后我們會提到的許多拓?fù)浣Y(jié)構(gòu),例如樹形復(fù)制或分布式主庫,很難計(jì)算出復(fù)制的事件的邏輯順序。
總結(jié)
以上是生活随笔為你收集整理的mysql 星 拓扑,高性能MySQL:复制拓扑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ceph集群多服务器离线部署
- 下一篇: H5版俄罗斯方块(5)---需求演进和产