MySQL Cluster 是一種技術(shù),該技術(shù)允許在無共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫的 Cluster 。通過無共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內(nèi)存和磁盤,不存在單點故障。
MySQL Cluster 由一組計算機(jī)構(gòu)成,每臺計算機(jī)上均運行著多種進(jìn)程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點,管理服務(wù)器,以及(可能)專門的數(shù)據(jù)訪問程序。
MySQL集群是一種分布式設(shè)計,目標(biāo)是要達(dá)到?jīng)]有任何單點故障點。因此,任何組成部分都應(yīng)該擁有自己的內(nèi)存和磁盤。任何共享存儲方案如網(wǎng)絡(luò)共享,網(wǎng)絡(luò)文件系統(tǒng)和SAN設(shè)備是不推薦或不支持的。通過這種冗余設(shè)計,MySQL聲稱數(shù)據(jù)的可用度可以達(dá)到99.999%。
MySQL Cluster 7.3 新特性:
性能和擴(kuò)展能力
自動分片 數(shù)據(jù)庫自動、透明地分布于低成本的商用服務(wù)器上,這樣無需更改應(yīng)用程序即可以向外擴(kuò)展的方式增加讀寫查詢的能量。
多主復(fù)制 每個數(shù)據(jù)節(jié)點都可以接受寫操作。這項功能與自動分片功能相結(jié)合,提供了非常高的寫操作擴(kuò)展能力。
分布式跨分片 JOIN 適應(yīng)性查詢本地化將 JOIN 操作下放到數(shù)據(jù)節(jié)點,這樣它們就可以并行地在多個本地數(shù)據(jù)副本上執(zhí)行。
實時響應(yīng) 內(nèi)存中的表和索引異步刷新到磁盤并綁定到 CPU 線程,低延遲。
開發(fā)人員 API 和數(shù)據(jù)模型
SQL MySQL Server 針對集群提供一個標(biāo)準(zhǔn)的 SQL 接口,可通過所有標(biāo)準(zhǔn) MySQL 連接器(如 JDBC、ODBC.NET 等)連接各種 Web 開發(fā)語言和框架。
使用 Memcached 的 NoSQL 原生鍵值訪問,繞過 SQL 層訪問 存於數(shù)據(jù)節(jié)點中的數(shù)據(jù),用于結(jié)構(gòu)和非結(jié)構(gòu)的數(shù)據(jù)存儲。
使用 JavaScript 和 node.js 的 NoSQL 支持通過服務(wù)器端JavaScript繞過 SQL 層直接訪問存于數(shù)據(jù)節(jié)點中的數(shù)據(jù),以加速數(shù)據(jù)的查詢和維護(hù)
使用 C++ 的 NoSQL 原生 C++ 訪問,繞過 SQL 層可獲得極低的延遲
使用 Java 和 JPA 的 NoSQL 原生 Java 和 JPA 訪問,繞過 SQL 層訪問企業(yè)、Web 和電信服務(wù)
使用 REST 的 NoSQL 原生 HTTP/REST 訪問,使用 Apache mod_ndb 繞過 SQL 層
結(jié)構(gòu)和非結(jié)構(gòu)式的數(shù)據(jù)模型 默認(rèn)使用完全結(jié)構(gòu)化的關(guān)系數(shù)據(jù)模型。使用 Memcached API,每個鍵值都寫入相同的表中,每個鍵值對默認(rèn)存儲在一行中,也可以配置為寫入多個現(xiàn)有表中。
99.999% 的可用性和數(shù)據(jù)完整性
符合 ACID 要求、事務(wù)型 MySQL Cluster 全面支持 ACID(獨立性、一致性、隔離性、持久性)事務(wù)。
外鍵約束(Constraint) MySQL Cluster 自動在表間實施參照完整性。
分布式、無共享架構(gòu) 集群中的每個節(jié)點都是冗余的,可以放在單獨的主機(jī)上,從而確保在發(fā)生進(jìn)程、硬件或網(wǎng)絡(luò)故障時的持續(xù)可用性。
無單點故障 每個節(jié)點都有自己的磁盤和內(nèi)存,因此消除了共享組件(如存儲)帶來的故障風(fēng)險。
同步復(fù)制 每個數(shù)據(jù)節(jié)點內(nèi)的數(shù)據(jù)都同步復(fù)制到至少一個其他節(jié)點上。如果某個節(jié)點發(fā)生故障,至少有另一個數(shù)據(jù)節(jié)點存儲著相同的信息。
亞秒級自動故障切換 MySQL Cluster 的心跳機(jī)制可立即檢測到任何故障,并自動故障切換到集群中的其他節(jié)點,通常在一秒鐘內(nèi)完成,不會中斷提供給客戶端的服務(wù)。
自我修復(fù)式恢復(fù) 故障節(jié)點能自動重新啟動并在重新加入集群前與其他節(jié)點重新同步,從而實現(xiàn)自我修復(fù),此過程對應(yīng)用程序完全透明。
跨地域復(fù)制 將一個集群從一個數(shù)據(jù)中心復(fù)制到另一個數(shù)據(jù)中心,從而實現(xiàn)災(zāi)難恢復(fù)并降低網(wǎng)絡(luò)延遲的影響。每個集群都能接受寫操作,并在內(nèi)部處理沖突,從而確保集群間的一致性。
多站點集群 數(shù)據(jù)節(jié)點可以分散到多個數(shù)據(jù)中心,因此發(fā)生節(jié)點故障時可以在不同站點之間同步復(fù)制并進(jìn)行自動故障切換。
聯(lián)機(jī)操作
聯(lián)機(jī)模式更新 支持聯(lián)機(jī)添加列和表,以及聯(lián)機(jī)添加和刪除索引。
聯(lián)機(jī)擴(kuò)展 可以按需向正在運行的集群添加節(jié)點以提高性能和容量�?梢韵蚣褐袆討B(tài)添加應(yīng)用節(jié)點,也可以從集群中動態(tài)刪除應(yīng)用節(jié)點,非常靈活。
聯(lián)機(jī)維護(hù) 支持在線對底層硬件、操作系統(tǒng)和 MySQL Cluster 進(jìn)程的升級和補丁安裝。
聯(lián)機(jī)備份 備份文件是數(shù)據(jù)庫的一致的集群范圍快照,可以存檔并復(fù)制到安全的遠(yuǎn)程位置。
部署靈活性
虛擬機(jī)部署 可以在內(nèi)部平臺和云平臺上部署虛擬機(jī)環(huán)境。
內(nèi)存中和基于磁盤的表 表可以配置為只能在內(nèi)存中管理(完全記錄并刷新到到持久存儲中)或存儲在磁盤上。
商用硬件 可以用本地存儲在商用硬件間擴(kuò)展 MySQL Cluster。無需共享磁盤。
安全和審計
MySQL 企業(yè)級安全性* 為連接到集群的 MySQL Server 提供了隨時可用的外部身份驗證模塊,使其可以輕松集成到現(xiàn)有安全基礎(chǔ)架構(gòu)中。
MySQL 企業(yè)級審計* 提供了一個簡單易用、基于策略的審計解決方案,可幫助組織實施更加嚴(yán)格的安全控制和滿足法規(guī)要求。
管理和監(jiān)視
MySQL Cluster Manager* MySQL Cluster Manager 可自動完成常見管理任務(wù),從而簡化了 MySQL Cluster 數(shù)據(jù)庫的創(chuàng)建和管理。
MySQL Enterprise Monitor* 使您能夠了解集群運行狀況的概況,在潛在問題對系統(tǒng)造成影響前發(fā)出警報。