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