趙 博(河北省氣象信息中心,河北石家莊,050011)
基于GoldenGate實(shí)現(xiàn)省市級(jí)氣象資料的同步
趙 博
(河北省氣象信息中心,河北石家莊,050011)
通過(guò)分析省市級(jí)結(jié)構(gòu)化氣象資料的存儲(chǔ)及使用特點(diǎn),利用GoldenGate技術(shù)實(shí)現(xiàn)了一種高效可靠的異構(gòu)數(shù)據(jù)庫(kù)同步方案,以滿足省市氣象業(yè)務(wù)部門對(duì)氣象資料共享訪問(wèn)的實(shí)際需求。
氣象資料;異構(gòu)數(shù)據(jù)庫(kù)同步;GoldenGate
隨著我國(guó)氣象業(yè)務(wù)現(xiàn)代化的不斷發(fā)展,對(duì)氣象資料的共享能力提出了更高的要求。如何有效的提供氣象數(shù)據(jù)共享服務(wù),更好的支撐省市級(jí)氣象業(yè)務(wù)可靠運(yùn)行,已經(jīng)成為氣象業(yè)務(wù)發(fā)展中亟需解決的問(wèn)題。
氣象資料按照存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)分類,可劃分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。一些常見(jiàn)氣象資料數(shù)據(jù)例如地面、高空、大氣成分等,主要是由結(jié)構(gòu)化數(shù)據(jù)組成。而這些數(shù)據(jù)存儲(chǔ)頻度密集,資料查詢時(shí)間跨度長(zhǎng),對(duì)業(yè)務(wù)單位制作臨近預(yù)報(bào)、提供優(yōu)良?xì)庀蠓?wù)的具有決定性作用。因此需要實(shí)現(xiàn)一種為省市級(jí)氣象業(yè)務(wù)部門提供結(jié)構(gòu)化數(shù)據(jù)共享服務(wù)的有效方式,以滿足兩級(jí)氣象業(yè)務(wù)部門的業(yè)務(wù)需求。
省氣象信息中心擔(dān)任著為全省氣象部門提供信息共享服務(wù)的職責(zé),針對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn),主要使用關(guān)系型數(shù)據(jù)庫(kù)對(duì)其進(jìn)行存儲(chǔ)與共享。目前我省使用雙機(jī)搭建Oracle RAC集群數(shù)據(jù)存儲(chǔ)環(huán)境,提供主要的信息共享服務(wù)。
現(xiàn)有省級(jí)使用的氣象資料是通過(guò)國(guó)家局衛(wèi)星下發(fā)、省際共享等多種傳輸方式進(jìn)行收集,再經(jīng)通信系統(tǒng)的分發(fā),進(jìn)入加工處理主機(jī)將原始傳輸報(bào)文進(jìn)行解碼并寫(xiě)入數(shù)據(jù)庫(kù),省市級(jí)用戶通過(guò)編寫(xiě)sql語(yǔ)句的方式進(jìn)行直接查詢?cè)L問(wèn),但在一段業(yè)務(wù)時(shí)間運(yùn)行后,發(fā)現(xiàn)這種訪問(wèn)方式存在著以下若干問(wèn)題:
(1)結(jié)構(gòu)化氣象資料種類多,數(shù)據(jù)量大,入庫(kù)寫(xiě)入十分頻繁。同時(shí)用戶訪問(wèn)頻率高,并發(fā)數(shù)量大,寫(xiě)入與訪問(wèn)時(shí)有沖突,實(shí)際讀寫(xiě)過(guò)程并未分離。
(2)市級(jí)開(kāi)發(fā)人員更傾向使用微軟體系的SQL Server產(chǎn)品進(jìn)行編程開(kāi)發(fā)。其具有市級(jí)特色的訪問(wèn)業(yè)務(wù)規(guī)則十分靈活,開(kāi)發(fā)編寫(xiě)的sql語(yǔ)句水平不一,缺乏性能設(shè)計(jì)與優(yōu)化,不定期發(fā)生占用資源過(guò)多情況,降低數(shù)據(jù)庫(kù)整體性能,最終影響到其它用戶的訪問(wèn)效率。
(3)市級(jí)業(yè)務(wù)人員在調(diào)用省局?jǐn)?shù)據(jù)庫(kù)的同時(shí),希望市級(jí)獨(dú)立擁有一套基于Windows操作系統(tǒng),可完全控制的數(shù)據(jù)庫(kù)。能夠做到簡(jiǎn)單易用,免維護(hù),同時(shí)確保與省局的數(shù)據(jù)保持一致性。
本文利用異構(gòu)數(shù)據(jù)庫(kù)同步方法,在市級(jí)利用SQL Server搭建與省級(jí)結(jié)構(gòu)一致的數(shù)據(jù)庫(kù),再將源端省級(jí)Oracle數(shù)據(jù)實(shí)時(shí)的同步到市級(jí)目的端,能有效的解決上述問(wèn)題。
2.1GoldenGate介紹。GoldenGate軟件是一種基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制軟件,它通過(guò)解析源數(shù)據(jù)庫(kù)在線日志或歸檔日志獲得數(shù)據(jù)的增量變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)源數(shù)據(jù)庫(kù)與目標(biāo)數(shù)據(jù)庫(kù)同步。
GoldenGate可以根據(jù)用戶的需要,應(yīng)用在不同的場(chǎng)景:?jiǎn)蜗驈?fù)制,備份或查詢的場(chǎng)景;雙向復(fù)制,災(zāi)備或雙業(yè)務(wù)中心的場(chǎng)景;點(diǎn)對(duì)點(diǎn)復(fù)制,有三個(gè)以上多業(yè)務(wù)中心的場(chǎng)景;廣播復(fù)制,數(shù)據(jù)分發(fā)的場(chǎng)景;集中復(fù)制,數(shù)據(jù)倉(cāng)庫(kù)或 N+1 災(zāi)備的場(chǎng)景;多級(jí)復(fù)制,層次化的企業(yè)數(shù)據(jù)復(fù)制。
2.2架構(gòu)設(shè)計(jì)。結(jié)合氣象業(yè)務(wù)分析數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)操作語(yǔ)言特點(diǎn),絕大部分資料首次入庫(kù)后的內(nèi)容無(wú)需修正,以單獨(dú)insert語(yǔ)句為主。當(dāng)發(fā)生臺(tái)站傳輸CCx更正報(bào)問(wèn),或資料審核人員進(jìn)行質(zhì)控修正后會(huì)進(jìn)行更正碼及要素修正,此時(shí)會(huì)發(fā)生少量的update語(yǔ)句,極少有delete操作。針對(duì)這類DML特點(diǎn),可以看到采用廣播復(fù)制的方式是十分適合的氣象結(jié)構(gòu)化資料使用的。
以省局信息中心為主節(jié)點(diǎn)(源端),為十一個(gè)地市級(jí)氣象業(yè)務(wù)單位(目的端)提供一致的數(shù)據(jù)同步服務(wù),從場(chǎng)景來(lái)說(shuō),具有廣播復(fù)制的特性。同時(shí),以往大部分利用該產(chǎn)品做同步的應(yīng)用與方案,往往是Oracle之間的同構(gòu)數(shù)據(jù)庫(kù)的同步,而本文針對(duì)我省氣象業(yè)務(wù)現(xiàn)狀及特點(diǎn),在省級(jí)使用Oracle,市級(jí)要求使用SQL Server的現(xiàn)狀前提下,充分發(fā)揮了GoldenGate可進(jìn)行異構(gòu)數(shù)據(jù)庫(kù)同步的優(yōu)良特性,實(shí)現(xiàn)了大量數(shù)據(jù)亞秒級(jí)的實(shí)時(shí)復(fù)制。
對(duì)GoldenGate進(jìn)行日常簡(jiǎn)單維護(hù)的工作內(nèi)容,定期檢查監(jiān)控源端的進(jìn)程狀態(tài),保證數(shù)據(jù)同步正確性。與此同時(shí),同步流程搭建完畢后,市級(jí)人員只需關(guān)注自身SQL Server運(yùn)行狀態(tài),由于GoldenGate軟件自身非常成熟,具有十分高的可靠性,能顯著減少市級(jí)人員的維護(hù)量。
因市級(jí)數(shù)據(jù)庫(kù)為全新建設(shè),只獲取同步后的數(shù)據(jù),需提前補(bǔ)足之前未同步的數(shù)據(jù)。所以可將首次同步開(kāi)始的時(shí)間記錄為T時(shí),在T時(shí)之前的數(shù)據(jù)定義為初始化數(shù)據(jù),T時(shí)之后的數(shù)據(jù)定義為增量同步數(shù)據(jù)。市級(jí)SQL Server在首次同步前,需要分析Oracle源表結(jié)構(gòu)及字段,動(dòng)編寫(xiě)DDL語(yǔ)句生成SQL Server的表結(jié)構(gòu),這個(gè)過(guò)程中應(yīng)注意確保Oracle到SQL Server異構(gòu)字段可以相互轉(zhuǎn)換,確保異構(gòu)數(shù)據(jù)庫(kù)的字段及表名的一致。目的端經(jīng)一次性的獲取初始化數(shù)據(jù)后,方可實(shí)時(shí)進(jìn)行增量同步,以達(dá)到省-市數(shù)據(jù)完全一致。
3.1源端系統(tǒng)實(shí)施步驟。省局Oracle為RAC雙機(jī)集群架構(gòu),基于Linux紅帽操作系統(tǒng),在安裝GoldenGate前為防止單節(jié)點(diǎn)故障,利用EMC磁盤(pán)陣列提供100G共享存儲(chǔ)空間,用以保存7-10天的隊(duì)列文件。由于GoldenGate是利用歸檔日志機(jī)制進(jìn)行數(shù)據(jù)同步,所以必需確保源端Oracle數(shù)據(jù)庫(kù)已設(shè)置為歸檔模式。同時(shí)注意Oracle的recycle功能在開(kāi)啟狀態(tài)下會(huì)影響同步,需要關(guān)閉回收站。
安裝時(shí)可以利用oracle用戶運(yùn)行GoldenGate,無(wú)需建立新的操作系統(tǒng)用戶。首先解壓安裝該軟件,并通過(guò)ftp上傳許可文件pw,在安裝目錄下執(zhí)行./ggsci命令進(jìn)入命令行界面,如能順利進(jìn)入,則證明許可有效,之后在ggsci環(huán)境下執(zhí)行create subdirs創(chuàng)建程序所需的子目錄。
以抽取省局?jǐn)?shù)據(jù)源userorcl下所有表為例,向某市局投遞存有國(guó)家級(jí)地面自動(dòng)站資料數(shù)據(jù)的TAB_ZIDONGZHAN_DATA單表。需添加和配置一個(gè)管理進(jìn)程mgr,一個(gè)抽取進(jìn)程ex_zdz,一個(gè)投遞進(jìn)程dp_zdz。中間消息文件命名為zd。
3.2目的端系統(tǒng)實(shí)施步驟。市級(jí)的目的端主機(jī)均安裝Windows操作系統(tǒng),使用NTFS分區(qū)格式,軟件安裝目錄預(yù)留磁盤(pán)空間應(yīng)大于100G。源與目的端主機(jī)之間的時(shí)鐘應(yīng)保證嚴(yán)格一致,必須設(shè)置同一個(gè)時(shí)鐘同步服務(wù)器對(duì)其精確授時(shí)。同時(shí)為保證網(wǎng)絡(luò)暢通,GoldenGate使用的端口不被屏蔽,需關(guān)閉操作系統(tǒng)自帶防火墻。對(duì)于省級(jí)的SQL Server數(shù)據(jù)庫(kù),還需配置相應(yīng)的ODBC數(shù)據(jù)源。最后,根據(jù)Windows版本及操作系統(tǒng)是64或32位的實(shí)際情況,安裝對(duì)應(yīng)的Oracle客戶端軟件。
添加和配置一個(gè)管理進(jìn)程mgr,在操作系統(tǒng)服務(wù)中設(shè)置為自動(dòng)啟動(dòng),最后,添加和配置一個(gè)復(fù)制進(jìn)程rp_zdz完成同步流程。
本文根據(jù)氣象結(jié)構(gòu)化資料存儲(chǔ)及使用的特點(diǎn),利用GoldenGate數(shù)據(jù)庫(kù)同步軟件,在省市兩級(jí)氣象部門之間,針對(duì)異構(gòu)數(shù)據(jù)庫(kù)進(jìn)行了廣播復(fù)制的嘗試,經(jīng)業(yè)務(wù)運(yùn)行一段時(shí)間后,可以達(dá)省市級(jí)氣象部門對(duì)于數(shù)據(jù)庫(kù)訪問(wèn)時(shí)效性,準(zhǔn)確性,便捷性的要求。
[1]戴冠平.叱詫風(fēng)云:GoldenGate企業(yè)級(jí)運(yùn)維實(shí)戰(zhàn)[M].清華大學(xué)出版社.2011
[2]俞凱晟.GoldenGate軟件在數(shù)據(jù)遷移中的應(yīng)用[J].微型電腦應(yīng)用.2014
Based on GoldenGate to achieve the provincial municipal meteorological data synchronization
Zhao Bo
(Hebei Meteorological Information Center,Shijiazhuang Hebei,050011)
Through the analysis of meteorological data for the provincial and municipal structured storage and use characteristics,using GoldenGate technology to achieve a highly efficient and reliable heterogeneous database synchronization scheme,satisfying the provincial meteorological department of meteorological data sharing access to actual needs.
meteorological data; heterogeneous database synchronization; GoldenGate
趙博(1983-),男,漢族,河北石家莊人,河北省氣象信息中心,研究方向:氣象資料存儲(chǔ)與應(yīng)用。