這篇文章主要從基本情況、成本、優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)合等方面對(duì)5種MySQL的可靠性方案進(jìn)行了詳細(xì)的分析和比較,另外,本文對(duì)MySQL數(shù)據(jù)庫(kù)的開(kāi)發(fā)和管理有一定的借鑒作用。詳細(xì)內(nèi)容請(qǐng)大家參考下文:
1.MySQL Clustering(ndb-cluster stogare)
簡(jiǎn)介:
MySQL公司以存儲(chǔ)引擎方式提供的高可靠性方案,是事務(wù)安全的,實(shí)時(shí)復(fù)制數(shù)據(jù),可用于需要高可靠性及負(fù)載均衡的場(chǎng)合。該方案至少需要三個(gè)節(jié)點(diǎn)服務(wù)器才能達(dá)到較好的效果。
成本:
節(jié)點(diǎn)服務(wù)器對(duì)RAM的需求很大,與數(shù)據(jù)庫(kù)大小呈線性比例;
最好使用千兆以太網(wǎng)絡(luò);
還需要使用Dolphin公司提供的昂貴的SCI卡。
優(yōu)點(diǎn):
可用于負(fù)載均衡場(chǎng)合;
可用于高可靠性場(chǎng)合;
高伸縮性;
真正的數(shù)據(jù)庫(kù)冗余;
容易維護(hù)。
缺點(diǎn):
隨著數(shù)據(jù)庫(kù)的變大,對(duì)RAM的需求變得更大,因此成本很高;
速度:
幾乎 比典型的單獨(dú)服務(wù)器(無(wú)千兆以太網(wǎng),無(wú)SCI卡,存儲(chǔ)引擎相關(guān)的限制少)慢10倍。
應(yīng)用場(chǎng)合:
冗余,高可靠性,負(fù)載均衡
2. MySQL / GFS-GNBD/ HA (Active/Passive)
簡(jiǎn)介:
如果多個(gè)MySQL服務(wù)器使用共享硬盤作為數(shù)據(jù)存儲(chǔ),此方案如何?
GFS/GNBD可以提供所需的共享硬盤。
GFS是事務(wù)安全的文件系統(tǒng)。同一時(shí)刻你可以讓一個(gè)MySQL使用共享數(shù)據(jù)。
成本:
最多n臺(tái)高性能服務(wù)器的成本,其中一個(gè)激活的,其他作為備份服務(wù)器。
優(yōu)點(diǎn):
高可靠性
某種程度的冗余
按照高可靠性進(jìn)行伸縮
缺點(diǎn):
沒(méi)有負(fù)載均衡
沒(méi)有保證的冗余
無(wú)法對(duì)寫操作進(jìn)行伸縮
速度
單獨(dú)服務(wù)器的2倍。對(duì)讀操作支持得較好。
應(yīng)用場(chǎng)合
需要高可靠性的、讀操作密集型的應(yīng)用
3. MySQL / DRBD / HA (Active/Passive)
簡(jiǎn)介:
如果多個(gè)MySQL服務(wù)器使用共享硬盤作為數(shù)據(jù)存儲(chǔ),此方案如何?
DRBD可以提供這樣的共享硬盤。DRBD可以被設(shè)置成事務(wù)安全的。
同一時(shí)刻你可以讓一個(gè)MySQL使用共享數(shù)據(jù)。
成本:
最多n臺(tái)高性能服務(wù)器的成本,其中一個(gè)激活的,而其他則作為備份服務(wù)器。
優(yōu)點(diǎn):
高可靠性;
一定程度的冗余;
以高可靠性名義來(lái)看是可伸縮的。
缺點(diǎn):
沒(méi)有負(fù)載均衡
沒(méi)有保證的冗余
在寫負(fù)載方面沒(méi)有伸縮性
速度:
在讀寫方面相當(dāng)于單獨(dú)服務(wù)器
應(yīng)用場(chǎng)合
需要高可靠性、讀操作密集型的應(yīng)用
4. MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)
簡(jiǎn)介:
考慮不同的讀、寫DB數(shù)據(jù)庫(kù)連接的情況?梢允褂靡慌_(tái)主服務(wù)器用于寫操作,而采用n臺(tái)從服務(wù)器用于讀操作。
成本:
最多1臺(tái)高性能寫服務(wù)器,n臺(tái)讀服務(wù)器的成本
優(yōu)點(diǎn):
讀操作的高可靠性;
讀操作的負(fù)載均衡;
在讀操作負(fù)載均衡方面是可伸縮的。
缺點(diǎn):
無(wú)寫操作的高可靠性;
無(wú)寫操作的負(fù)載均衡;
在寫操作方面無(wú)伸縮性;
速度:
同單獨(dú)服務(wù)器;在讀操作方面支持得較好
應(yīng)用場(chǎng)合
讀操作密集型的、需要高可靠性和負(fù)載均衡的應(yīng)用。
5. Standalone MySQL Servers(Functionally separated) (Active)
多臺(tái)功能分離的單獨(dú)服務(wù)器,沒(méi)有高可靠性、負(fù)載均衡能力,明顯缺點(diǎn)太多,不予考慮。
總結(jié):
MySQL官方網(wǎng)站推薦的HA方案是結(jié)合DRBD (本文中的方案3) 和 Replication (本文中的方案4)。假如再加上Linux Heartbeat還可實(shí)現(xiàn)Auto-failover功能,在此種情況下,我們會(huì)發(fā)現(xiàn),down機(jī)時(shí)間會(huì)大大減少。