在實(shí)際生產(chǎn)環(huán)境中,部署和實(shí)現(xiàn)具有一定負(fù)載均衡功能的 MySQL服務(wù)器集群,對(duì)于提高用戶數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能、速度和穩(wěn)定性具有明顯的作用。本文簡(jiǎn)要介紹了在 FreeBSD 7.0-Release系統(tǒng)上部署實(shí)現(xiàn)MySQL服務(wù)器集群的方案,并對(duì)可能出現(xiàn)的問題提供了相應(yīng)的解決方法。
1. 引言
MySQL是一個(gè)高速度、高性能、多線程、開放源代碼,建立在客戶/服務(wù)器(Client /Server)結(jié)構(gòu)上的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。它始于1979年,最初是Michael Widenius為瑞典TcX公司創(chuàng)建的UNIREG數(shù)據(jù)庫系統(tǒng),當(dāng)時(shí)的UNIREG沒有SQL(Structured Query Language結(jié)構(gòu)化查詢語言)接口,限制了它的應(yīng)用。1996年5月,Widenius開發(fā)出了MySQL的最初版本,開始在Internet上公開發(fā)行。MySQL的開發(fā)人員從一開始就一直關(guān)注它的性能,為此不惜特性集,直到今天,MySQL依然保持本色,以高速度高性能為首要原則。隨著時(shí)間的推移,MySQL也加入了大型數(shù)據(jù)庫產(chǎn)品的高級(jí)特性,如存儲(chǔ)過程、視圖、觸發(fā)器等,使其在企業(yè)級(jí)數(shù)據(jù)庫系統(tǒng)中開始被部署應(yīng)用[1]。2008年10 月,SUN公司收購了MySQL AB公司,開始進(jìn)入開源領(lǐng)域。隨著重量級(jí)操作系統(tǒng)Solaris的開源,SUN MySQL在數(shù)據(jù)庫市場(chǎng)占有的份額將會(huì)進(jìn)一步提高。因此,在生產(chǎn)環(huán)境中部署具有負(fù)載均衡功能的MySQL服務(wù)器集群,對(duì)于提高企業(yè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的速度、穩(wěn)定性及可伸縮性具有很大的現(xiàn)實(shí)意義,也可以有效降低應(yīng)用系統(tǒng)的投資成本。本文將以FreeBSD 7.0-Release操作系統(tǒng)為例,利用MySQL數(shù)據(jù)庫的復(fù)制(Replication)特性,簡(jiǎn)要介紹部署MySQL服務(wù)器集群的實(shí)現(xiàn)方法和相關(guān)注意事項(xiàng)。
2. 系統(tǒng)模型
本集群的結(jié)構(gòu)為一個(gè)主MySQL服務(wù)器(Master)服務(wù)器與多個(gè)從屬 MySQL服務(wù)器(Slave)建立復(fù)制(replication)連接,主服務(wù)器與從屬服務(wù)器實(shí)現(xiàn)一定程度上的數(shù)據(jù)同步,多個(gè)從屬服務(wù)器存儲(chǔ)相同的數(shù)據(jù)副本,實(shí)現(xiàn)數(shù)據(jù)冗余,提供容錯(cuò)功能。部署開發(fā)應(yīng)用系統(tǒng)時(shí),對(duì)數(shù)據(jù)庫操作代碼進(jìn)行優(yōu)化,將寫操作(如UPDATE、INSERT)定向到主服務(wù)器,把大量的查詢操作(SELECT)定向到從屬服務(wù)器,實(shí)現(xiàn)集群的負(fù)載均衡功能。如果主服務(wù)器發(fā)生故障,從屬服務(wù)器將轉(zhuǎn)換角色成為主服務(wù)器,使應(yīng)用系統(tǒng)為終端用戶提供不間斷的網(wǎng)絡(luò)服務(wù);主服務(wù)器恢復(fù)運(yùn)行后,將其轉(zhuǎn)換為從屬服務(wù)器,存儲(chǔ)數(shù)據(jù)庫副本,繼續(xù)對(duì)終端用戶提供數(shù)據(jù)查詢檢索服務(wù)。
3. 部署實(shí)現(xiàn)
本文以一臺(tái)主服務(wù)器帶三臺(tái)從屬服務(wù)器為例,簡(jiǎn)要介紹MySQL服務(wù)器集群的實(shí)現(xiàn)方案和具體方法步驟。
3.1 系統(tǒng)部署
由于FreeBSD系統(tǒng)對(duì)機(jī)器硬件要求較低,出于降低系統(tǒng)部署成本考慮,主服務(wù)器和從屬服務(wù)器操作系統(tǒng)均采用FreeBSD 7.0-Release,并采用最小化定制安裝,完成以后系統(tǒng)占用磁盤空間僅為254M(不計(jì)swap分區(qū)所占空間,它隨具體機(jī)器內(nèi)存容量的變化而變化)。為充分發(fā)揮系統(tǒng)硬件性能,MySQL數(shù)據(jù)庫采用源代碼編譯安裝。
3.1.1 安裝FreeBSD系統(tǒng)
在主服務(wù)器和從屬服務(wù)器上安裝FreeBSD 7.0-Release,具體安裝方法步驟不是本文主要內(nèi)容,在此略過,如有疑問可以參考FreeBSD系統(tǒng)手冊(cè)。需要說明的是為方便用戶系統(tǒng)運(yùn)行期間的維護(hù)管理,要打開系統(tǒng)的SSH服務(wù)功能,系統(tǒng)安裝配置期間允許root用戶遠(yuǎn)程登錄,正常運(yùn)行以后要關(guān)閉root用戶的遠(yuǎn)程登錄功能。在/etc/ssh /sshd_config配置文件中對(duì)PermitRootLogin設(shè)置為yes為允許root用戶遠(yuǎn)程登錄到系統(tǒng),設(shè)置為no即為不允許。修改保存文件后執(zhí)行kill
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com