您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關mysql集群和主從有什么區別的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
之前一直用oracle數據庫,而且只是用,沒有關心過數據庫的架構,現在的項目使用mysql數據庫,而且要了解設計數據存儲架構。所以研究了一下mysql的集群(cluster)和主從(master/slave)這兩個概念。兩者非常容易混淆,特別是對于新手來講。
Mysql cluster: share-nothing,分布式節點架構的存儲方案,以便于提供容錯性和高性能。
需要用到mysql cluster安裝包,在集群中的每一個機器上安裝。
有三個關鍵概念:Sql節點(多個),數據節點(多個),管理節點(一個),數據節點之間采用的是同步復制來保證各節點之間的數據一致性。
同步復制:
a) Master執行提交語句時,事務被發送到slave,slave開始準備事務的提交。
b) 每個slave都要準備事務,然后向master發送OK(或ABORT)消息,表明事務已經準備好(或者無法準備該事務)。
c) Master等待所有Slave發送OK或ABORT消息,如果Master收到所有 Slave的OK消息,它就會向所有Slave發送提交消息,告訴Slave提交該事務;如果 Master收到來自任何一個Slave的ABORT消息,它就向所有 Slave發送ABORT消息,告訴Slave去中止事務。
e) 每個Slave等待來自Master的OK或ABORT消息。如果Slave收到提交請求,它們就會提交事務,并向Master發送事務已提交 的確認;如果Slave收到取消請求,它們就會撤銷所有改變并釋放所占有的資源,從而中止事務,然后向Masterv送事務已中止的確認。
f) Master收到來自所有Slave的確認后,就會報告該事務被提交(或中止),然后繼續進行下一個事務處理。
由于同步復制一共需要4次消息傳遞,故mysql cluster的數據更新速度比單機mysql要慢。所以mysql cluster要求運行在千兆以上的局域網內,節點可以采用雙網卡,節點組之間采用直連方式。
主從(Master-Slave): 主從機器上安裝mysql community(普通版)就可以。
主從之間是通過mysql的replication來保證數據的一致性。相對mysql cluster的數據同步方式來講是異步的。
Replication:主節點要開啟binlog,設置一個唯一的服務器id(局域網內唯一);從節點設置服務器id,binlog記錄了master上的所有操作,會被復制到從節點的relaylog并在從節點上回放。
感謝各位的閱讀!關于mysql集群和主從有什么區別就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。