梁 冰,梁卓然
(1. 遼寧省水文局,遼寧 沈陽 110003;
2. 河海大學(xué)水利水電學(xué)院,江蘇 南京 210098)
遼寧省水情數(shù)據(jù)庫中集群技術(shù)的探討與應(yīng)用
梁 冰1,梁卓然2
(1. 遼寧省水文局,遼寧 沈陽 110003;
2. 河海大學(xué)水利水電學(xué)院,江蘇 南京 210098)
集群技術(shù)是當(dāng)今數(shù)據(jù)庫領(lǐng)域的研究熱點(diǎn)之一。以遼寧省水情數(shù)據(jù)庫為例,深入討論集群技術(shù)的理論與應(yīng)用,詳細(xì)介紹 Share-Disk 與 Share-Nothing 2 種集群構(gòu)架,并在此基礎(chǔ)上著重探討 Moebius 技術(shù)在遼寧省水情數(shù)據(jù)庫 SOL Server 中的應(yīng)用。應(yīng)用結(jié)果表明:集群技術(shù)可保證遼寧省水情數(shù)據(jù)庫的高可用、數(shù)據(jù)安全、擴(kuò)展性及負(fù)載均衡。
水情;數(shù)據(jù)庫;集群;架構(gòu)
當(dāng)今水文是一個(gè)信息化的水文,水情報(bào)汛、傳輸、發(fā)布等系統(tǒng)都離不開信息系統(tǒng)的支撐,信息系統(tǒng)用于保存和處理最終結(jié)果的地方是數(shù)據(jù)庫。因此數(shù)據(jù)庫系統(tǒng)就變得尤為重要,如果數(shù)據(jù)庫出現(xiàn)問題,則整個(gè)應(yīng)用系統(tǒng)都會(huì)癱瘓,防汛信息報(bào)不出查不到,給防汛工作帶來嚴(yán)重的損失和后果,因此保證數(shù)據(jù)庫穩(wěn)定可用是做好水情工作的關(guān)鍵點(diǎn)[1]。
遼寧省水情數(shù)據(jù)庫自建成以來幾經(jīng)完善,先后使用了 VisualFoxPro,Access,SQL Server 等 3 個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),并依據(jù)國家相關(guān)標(biāo)準(zhǔn)進(jìn)行了多次升級(jí)?,F(xiàn)階段,遼寧省水情數(shù)據(jù)庫依據(jù)國家最新水情數(shù)據(jù)庫標(biāo)準(zhǔn) SL323-2011《實(shí)時(shí)雨水情數(shù)據(jù)庫表結(jié)構(gòu)與標(biāo)識(shí)符》構(gòu)建,包括基本、實(shí)時(shí)、預(yù)報(bào)、統(tǒng)計(jì)、交換和字典等 6 大類信息。
隨著遼寧省水文報(bào)汛站網(wǎng)數(shù)量和報(bào)汛頻次的增加、移動(dòng)應(yīng)用的興起[2],數(shù)據(jù)量相比過去有了幾何級(jí)的提升,遼寧省報(bào)汛站網(wǎng)從最初的 342 站,經(jīng)過遙測(cè)雨量站建設(shè)增加到 648 站,中小河流建設(shè)增加到1 724 站,山洪災(zāi)害建設(shè)增加到現(xiàn)在總計(jì) 3 100 站,1 h 報(bào)汛頻次,數(shù)據(jù)庫中存儲(chǔ)了海量數(shù)據(jù),對(duì)數(shù)據(jù)的使用面臨著性能方面的瓶頸[3]。
針對(duì)遼寧省數(shù)據(jù)庫建設(shè)與維護(hù)使用過程中存在的問題[4],選用一種成熟有效的數(shù)據(jù)庫集群技術(shù)應(yīng)用到遼寧省水情數(shù)據(jù)庫中。將多個(gè)服務(wù)器組成 1 組集群,充分利用每臺(tái)服務(wù)器的資源,并將客戶端負(fù)載分發(fā)到不同服務(wù)器上,隨著應(yīng)用程序負(fù)載的增加,只需將新的服務(wù)器添加到集群,即可保證數(shù)據(jù)庫高效可靠使用。
集群技術(shù)是一組通過協(xié)同工作方式運(yùn)行同一套應(yīng)用程序,針對(duì)客戶端及應(yīng)用程序提供單一系統(tǒng)映像,使用特定的連接方式,將硬件設(shè)備結(jié)合起來,構(gòu)成的一種松散耦合的計(jì)算節(jié)點(diǎn)集合。集群系統(tǒng)具備性能、擴(kuò)展性和可靠性提升等優(yōu)勢(shì)。
簡單來說,有 n 臺(tái)服務(wù)器,每臺(tái)服務(wù)器上都有數(shù)據(jù)庫,數(shù)據(jù)是完全一樣的,相當(dāng)于 1 套數(shù)據(jù)有多個(gè)副本。集群的作用是使這些副本實(shí)時(shí)同步,如果對(duì) 1 臺(tái)服務(wù)器上的數(shù)據(jù)進(jìn)行了操作,集群系統(tǒng)要保證這個(gè)操作實(shí)時(shí)地應(yīng)用到所有的服務(wù)器上,實(shí)現(xiàn)數(shù)據(jù)同步。
數(shù)據(jù)庫集群中的關(guān)鍵技術(shù)為負(fù)載均衡,負(fù)載均衡是在集群系統(tǒng)遇到大的處理需求時(shí),能夠盡可能平均分配處理壓力,更好地利用集群內(nèi)的處理資源,主要解決訪問量大的問題。將對(duì)數(shù)據(jù)庫的訪問量均衡到集群中的每個(gè)服務(wù)器上,集群中的每一個(gè)服務(wù)器都可以提供服務(wù),從而達(dá)到更高的吞吐量、更好的資源利用率和更低的響應(yīng)時(shí)間,達(dá)到負(fù)載均衡的目的。
采用數(shù)據(jù)庫集群技術(shù)可以保證服務(wù)器 7×24 h 提供服務(wù)。數(shù)據(jù)庫數(shù)據(jù)量大,操作頻繁,而且需要實(shí)時(shí)訪問,如果有 1 臺(tái)或多臺(tái)服務(wù)器發(fā)生宕機(jī)情況,只要集群中還有 1 臺(tái)服務(wù)器在運(yùn)行,就可以保證服務(wù)繼續(xù)運(yùn)行下去。
主流的數(shù)據(jù)庫集群技術(shù)都是基于數(shù)據(jù)庫引擎的,要求數(shù)據(jù)庫引擎本身具有集群功能(一般只有企業(yè)版的數(shù)據(jù)庫才具有這種功能),比較成熟的數(shù)據(jù)庫集群產(chǎn)品有:甲骨文公司的 Oracle 和 MySQL,微軟公司的 SQL Server,IBM 公司的 DB2,Sybase公司的 ASE。由于遼寧省使用的是 SQL Server 數(shù)據(jù)庫,所以主要介紹 SQL 集群。
根據(jù)數(shù)據(jù)庫集群技術(shù)的形式和架構(gòu)特點(diǎn),考慮遼寧省水情數(shù)據(jù)庫的實(shí)際情況,選用不涉及到數(shù)據(jù)分片的架構(gòu) SQL Server 上的 Moebius。Moebius 是在SQL Server 數(shù)據(jù)庫平臺(tái)上開發(fā)的,用于實(shí)現(xiàn)數(shù)據(jù)庫的負(fù)載均衡,同時(shí)提高數(shù)據(jù)庫可用性,保證數(shù)據(jù)安全性的綜合集群方案。Moebius 集群基于每個(gè)數(shù)據(jù)庫實(shí)現(xiàn),粒度更小,應(yīng)用起來更加靈活方便;結(jié)構(gòu)上采用無共享磁盤架構(gòu),橫向擴(kuò)展,具有良好的伸縮性;設(shè)計(jì)上,采用與 SQL Server 高度集成的方式,將 Moebius 中間件宿主于 SQL Server 的引擎中,將 Moebius 集群的配置管理器集成到 SQL Server Management Studio 管理工具中,不論是管理還是開發(fā),都很方便。由于 Moebius 集群是和 SQL Server數(shù)據(jù)庫高度集成的,整個(gè)集群對(duì)外只映射 1 個(gè) IP 地址,因此使用 Moebius 集群不但不需要更改程序,而且不用改變使用習(xí)慣,透明性非常好。Moebius集群中采用以下 3 種連接數(shù)據(jù)庫的方法實(shí)現(xiàn)負(fù)載均衡:1)通過專門為數(shù)據(jù)庫集群定制的負(fù)載均衡軟件Loadbalancing Director 連接數(shù)據(jù)庫;2)通過負(fù)載均衡硬件連接數(shù)據(jù)庫,如 F5 等;3)通過其它的負(fù)載均衡軟件連接數(shù)據(jù)庫。Moebius 集群具體架構(gòu)如圖 1所示。
圖1 Moebius 集群
由圖 1 可以看到,水情信息應(yīng)用包括水情預(yù)報(bào)、信息發(fā)布等,都服務(wù)于防汛部門相關(guān)領(lǐng)導(dǎo)、水情專業(yè)人員及社會(huì)大眾,因此選擇 Moebius 集群技術(shù)應(yīng)用到遼寧省水情數(shù)據(jù)庫上是基于以下 3 點(diǎn)考慮的:
1)對(duì)信息的查詢和訪問速度要求必須快。即應(yīng)用程序?qū)?shù)據(jù)庫的訪問性能要求高,沒采用集群技術(shù)之前,計(jì)算一些數(shù)據(jù)或者打開 1 個(gè)網(wǎng)頁會(huì)很慢;選擇 Moebius 集群能夠?qū)崿F(xiàn)數(shù)據(jù)庫的負(fù)載均衡,同時(shí)提高數(shù)據(jù)庫性能,實(shí)際應(yīng)用結(jié)果表明應(yīng)用訪問速度快,效果明顯。
2)數(shù)據(jù)庫需要長期運(yùn)行。考慮數(shù)據(jù)庫系統(tǒng)的可靠性,要保證系統(tǒng)在 99.98% 的時(shí)間內(nèi)都能夠正常運(yùn)作。服務(wù)器需 7×24 h 連續(xù)運(yùn)行,因而要求其具有很高的安全可靠性。Moebius 集群技術(shù)能夠保證數(shù)據(jù)完整。
3)數(shù)據(jù)庫建設(shè)方面要求。目前已經(jīng)完成了國家基礎(chǔ)水文和實(shí)時(shí)雨水情數(shù)據(jù)庫的建設(shè),即將開展水資源和水質(zhì)數(shù)據(jù)庫的建設(shè)和完善,同時(shí)進(jìn)行遙測(cè)站原始數(shù)據(jù)庫建設(shè),對(duì)數(shù)據(jù)進(jìn)行整編,納入基礎(chǔ)水文數(shù)據(jù)庫。在這些數(shù)據(jù)庫建設(shè)完成后,將按計(jì)劃進(jìn)行數(shù)據(jù)庫整合工作,集成統(tǒng)一標(biāo)準(zhǔn)、數(shù)據(jù)源和算法的水文數(shù)據(jù)庫,這就需要選擇的集群技術(shù)有良好的擴(kuò)展性,Moebius 集群能夠滿足此要求。
Moebius 集群中的每個(gè)節(jié)點(diǎn)都會(huì)對(duì)外提供服務(wù),有以下優(yōu)點(diǎn):1)由于每一個(gè)節(jié)點(diǎn)都可以對(duì)外提供服務(wù),因此可以提升性能;2)擴(kuò)展性得到提升,可以通過向集群添加節(jié)點(diǎn)直接進(jìn)行 Scale-Out 擴(kuò)充;3)由于前端應(yīng)用通過代理連接到集群,而集群中的每一個(gè)節(jié)點(diǎn)都保持完整的數(shù)據(jù)集,不存在分片不到位造成性能下降的問題,因此對(duì)應(yīng)用程序端完全透明。
通過對(duì)數(shù)據(jù)庫集群技術(shù)的比較,選擇 SQL Server 數(shù)據(jù)庫上的 Moebius 集群技術(shù),應(yīng)用于遼寧省水情數(shù)據(jù)庫中。通過集群技術(shù)應(yīng)用前后對(duì)比,發(fā)現(xiàn)數(shù)據(jù)庫性能和可靠性均得到明顯提升,對(duì)于各地的數(shù)據(jù)中心建設(shè)有借鑒作用。應(yīng)用結(jié)果表明:
1)數(shù)據(jù)庫集群技術(shù)使得數(shù)據(jù)庫性能遇到問題時(shí),能夠橫向擴(kuò)展,通過添加服務(wù)器的方式達(dá)到更高的吞吐量,從而充分利用現(xiàn)有的硬件實(shí)現(xiàn)更好的投資回報(bào)率。
2)數(shù)據(jù)庫集群技術(shù)擁有實(shí)時(shí)同步的副本,當(dāng)數(shù)據(jù)庫面臨災(zāi)難時(shí),可以在短時(shí)間內(nèi)通過故障轉(zhuǎn)移的方式保證數(shù)據(jù)庫的可用性。此外,當(dāng)數(shù)據(jù)丟失或損壞時(shí),能通過實(shí)時(shí)副本(熱備)實(shí)現(xiàn)數(shù)據(jù)的零損失。
3)SQL Server 數(shù)據(jù)庫上的 Moebius 集群技術(shù),保證了遼寧省水情數(shù)據(jù)庫的高可用、數(shù)據(jù)安全、擴(kuò)展性及負(fù)載均衡。
[1] 安學(xué)軍. 山西省實(shí)時(shí)雨水情數(shù)據(jù)庫管理維護(hù)探討[J]. 山西水利科技,2008 (2): 27-29.
[2] 劉玉亮,徐學(xué)軍,袁艷斌,等. “清江流域水情分析與仿真系統(tǒng)”水情數(shù)據(jù)庫的建立[J]. 計(jì)算機(jī)仿真,2013 (10): 30-32.
[3] 郭海偉,周新志,趙成萍. 都江堰灌區(qū)水情數(shù)據(jù)庫存在的問題及解決方案[J]. 廣西水利水電,2008 (2): 52-54.
[4] 丁陽,呂樹龍,唐雷彬. 水情數(shù)據(jù)庫建設(shè)常見問題及對(duì)策[J]. 東北水利水電,2004 (5): 15-16.
Discussion and Application of Cluster Technology of Hydrologic Information Database in Liaoning Province
LIANG Bing1, LIANG Zhuoran2
(1. Hydrology and Water Resources Survey Bureau of Liaoning Province, Shenyang 110003, China;
2. College of Water Conservancy and Hydropower Engineering, Hohai University, Nanjing 210098, China)
Clustering technology is a hot spot of the study on database field. This paper discusses the theory and application of cluster technology systematically, with the hydrologic information database of Liaoning Province as an example. It introduces the schemas of Share-Disk and Share-Nothing, and discusses the application of clustering technology in SOL-Server of Liaoning Province hydrologic information database as a key issue. Results shows that: the technology could ensure the high availability, data security, expansion and load balancing of hydrologic information database in Liaoning Province
database; cluster; water; schema
TV697
A
1674-9405(2015)02-0024-03
2014-11-03
梁 冰(1979-),男,遼寧沈陽人,本科,從事水文情報(bào)預(yù)報(bào)工作。