MySQL集群原理詳解

2022-05-16 16:27:24 字數 2748 閱讀 8983

1. 為什麼需要分布式資料庫

2. mysql cluster原理

3. mysql cluster的優缺點

4. mysql cluster國內應用

5. 參考資料

隨著計算機和資訊科技的迅猛發展和普及,行業應用系統的規模迅速擴大,行業應用所產生的資料量量呈**式增長,動輒達到數百tb甚至數百pb規模,已遠遠超出現有的傳統計算技術和資訊系統的處理能力,而集中式資料庫面對大規模資料處理逐漸表現出其侷限性,因此,人們希望尋找一種能快速處理資料和及時響應使用者訪問的方法,也希望對資料進行集中分析、管理和維護。這已成為現實世界的迫切需求。

分布式資料庫是在集中式資料庫的基礎上發展起來的,是計算機技術和網路技術結合的產物。分布式資料庫是指資料在物理上分布而邏輯上集中管理的資料庫系統。物理上分布指的是分布式資料庫的資料分布在物理位置不同並由網路連線的節點或站點上;邏輯上集中是指各資料庫之間在邏輯上是乙個整體,並由統一的資料庫管理系統管理。不同的節點分布可以跨不同的機房、城市甚至國家。

分布式資料庫的主要特點如下:

透明性:使用者不必關心資料的邏輯分割槽和物理位置的分布細節,也不必關心重複副本(冗餘資料)的一致性問題,同時不必關心在區域性場地上資料庫支援哪種資料模型。對於系統開發工程師而言,當資料從乙個場地移到另乙個場地時不必改寫應用程式,使用起來如同乙個集中式資料庫。

資料冗餘性:分布式資料庫通過冗餘實現系統的可靠性、可用性,並改善其效能。多個節點儲存資料副本,當某一節點的資料遭到破壞時,冗餘的副本可保證資料的完整性;當工作的節點受損害時,可通過心跳等機制進行切換,系統整體不被破壞。還可以通過熱點資料的就近分析原則減少網路通訊的消耗,加快訪問速度,改善效能。

易於擴充套件性:在分布式資料庫中能夠方便地通過水平擴充套件提高系統的整體效能,也能通過垂直擴充套件來提供效能,擴充套件並不需要修改系統程式。

自治性:各節點上的資料由本地的dbms管理,具有自動處理能力,完成本場地的應用或區域性應用。

mysql

群集是 mysql 適合於分布式計算環境的高可用、高冗餘版本。它採用了 ndb cluster 儲存引擎,允許在 1 個群集中執行多個

mysql 伺服器。在 mysql 5.0 及以上的二進位制版本中,以及與最新的 linux 版本相容的 rpm 包中提供了該儲存引擎。

mysql

群集是一種技術,該技術允許在無共享的系統中部署「記憶體中」和「磁碟中」資料庫的 cluster

。通過無共享體系結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個元件有自己的記憶體和磁碟,不存在單點故障。mysql

cluster 由一組計算機構成,每台計算機上均執行著多種程序,包括 mysql 伺服器,ndb cluster

的資料節點,管理伺服器,以及(可能存在的)專門的資料訪問程式。

管理伺服器(mgm節點)負責管理 cluster 配置檔案和 cluster 日誌。cluster 中的每個節點從管理伺服器檢索配置資料。

當資料節點內出現新的事件時,節點將關於這類事件的資訊傳輸到管理伺服器,然後,將這類資訊寫入 cluster 日誌。

目前能夠執行 mysql cluster 的作業系統有 linux、mac os x 和 solaris,最新的版本已經支援 windows 作業系統。

mysql 群集的資料節點之間的通訊是不加密的,並且需要高速的頻寬,所以建議把群集建立在乙個高速區域網內,不建議跨網段、跨公網的部署這種系統體系。

mysql 群集分為三種節點:管理節點,資料節點和sql節點。

管理節點:主要用於管理各個節點,能夠通過命令對某個節點進行重啟、關閉、啟動等操作。也能夠監視全部節點的工作狀態。

資料節點:主要是對資料的儲存,不提供其他的服務。

sql節點:主要是對外提供sql功能,類似一台普通的 mysql server。

而sql節點和資料節點可以是同一臺機器,也就是說這台機器即是sql節點也是資料節點。它們只是邏輯關係上的劃分,實際部署時,甚至所有的階段都可以位於同一臺物理機器上,只是配置較複雜些。

優點:99.999 %的高可用性

快速的自動失效切換

靈活的分布式體系結構,沒有單點故障

高吞吐量和低延遲

缺點:存在很多限制,比如:不支援外來鍵,資料行不能超過8k(不包括blob和text中的資料)

部署、管理、配置很複雜

占用磁碟空間大,記憶體大

備份和恢復不方便

重啟的時候,資料節點將資料load到記憶體需要很長時間

中國電子科學研究院採用mysql cluster構建高可用測試系統 - mysql社群 - powered by discuz!

mysql cluster排錯經驗分享 - 飛鴻無痕 -  

為什麼說 mysql cluster 是 shared-nothing 架構的?如何理解 shared-nothing ?

mysql主從複製屬於集群技術還是負載均衡技術? 

mysql「集群」和」主從「兩者的區別 - 北風之神的部落格 - csdn部落格 

mysql集群 replication, 主從和雙主配置--驢子部落格 

mysql cluster純屬招搖撞騙(結貼) - chinaunix.net - powered by discuz!

mysql :: mysql cluster cge

mysql cluster 越來越完善,為什麼沒有在工業界大規模應用?和nosql資料庫(如cassandra)相比優劣勢在哪?

mysql-cluster-datasheet.zh.pdf

mysql 5.1 reference manual

mysql cluster 與 mongodb 複製及分片設計及原理

mysql集群解決方案mysql複製原理

一.mysql複製原理圖 1.應用程式對資料修改 insert update delete create table 主庫將修改的語句寫入到binglog日誌檔案中。2.從庫開啟乙個工作執行緒 io 向主庫發起請求。3.主庫 接收到從庫的請求後,開啟binlogdump執行緒根據請求的資訊讀取bin...

集群技術(二) MySQL集群簡介與配置詳解

when?why?用mysql集群?集群mysql中名稱概念 mysql群集需要有一組計算機,每台計算機的角色可能是不一樣的。mysql群集中有三種節點 管理節點 資料節點和sql節點。群集中的某計算機可能是某一種節點,也可能是兩種或三種節點的集合。這三種節點只是在邏輯上的劃分,所以它們不一定和物理...

mysql分布式集群實現原理

做mysql集群,例如 利用mysql cluster mysql proxy,mysql replication,drdb等等 有人會問mysql集群,根分表有什麼關係嗎?雖然它不是實際意義上的分表,但是它啟到了分表的作用,做集群的意義是什麼呢?為乙個資料庫減輕負擔,說白了就是減少sql排隊佇列中...