• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      JOPENS系統(tǒng)異構數(shù)據(jù)庫遷移整合

      2017-09-12 03:07:54于海英
      華北地震科學 2017年3期
      關鍵詞:測震中間件異構

      任 燁, 夏 波, 于海英

      (上海市地震局,上海 200062)

      JOPENS系統(tǒng)異構數(shù)據(jù)庫遷移整合

      任 燁, 夏 波, 于海英

      (上海市地震局,上海 200062)

      介紹了使用MetaMatrix中間件,通過建立虛擬數(shù)據(jù)庫實現(xiàn)JOPENS系統(tǒng)由MySQL數(shù)據(jù)庫遷移到Oracle數(shù)據(jù)庫的一種方法。解決了上海市地震局最新數(shù)據(jù)中心平臺與測震JOPENS系統(tǒng)整合,并保證了整個異構數(shù)據(jù)庫遷移的過程是無縫且平滑的。這樣的一次嘗試,為地震業(yè)務異構數(shù)據(jù)庫的遷移和整合提供了參考。

      異構數(shù)據(jù)庫;MySQL;Oracle;地震監(jiān)測;遷移

      0 引言

      隨著信息技術的不斷發(fā)展,上海市地震局的地震業(yè)務數(shù)據(jù)庫也面臨著改革。2014年上海市地震局部署了基于最新的一代數(shù)據(jù)中心平臺,其主要的技術特點就是在一個緊密結(jié)合的系統(tǒng)中整合了計算、網(wǎng)絡與虛擬化功能[1-2],使用刀片服務器集群取代了原有小型機和服務器,節(jié)約了空間,并大大降低了能耗,應用程序的資源也得到了合理的劃分,建立了最新的Oracle RAC,實現(xiàn)了服務器的虛擬化部署。

      新的數(shù)據(jù)中心和性能優(yōu)越的核心數(shù)據(jù)庫已經(jīng)建成了,但是整個上海市地震局的業(yè)務系統(tǒng)是由中國地震局統(tǒng)一下發(fā)的,如測震JOPENS系統(tǒng),是基于MySql數(shù)據(jù)庫開發(fā)的地震監(jiān)測系統(tǒng)。作為全國地震行業(yè)內(nèi)普遍使用的一個系統(tǒng),怎么能夠和上海地震局最新的數(shù)據(jù)平臺進行統(tǒng)一,顯得尤為重要了。與此同時,其他的業(yè)務系統(tǒng)如前兆數(shù)據(jù)系統(tǒng)、強震數(shù)據(jù)系統(tǒng)等也面臨著同樣的問題。然而,JOPENS系統(tǒng)還需要解決一個重要的問題就是數(shù)據(jù)的實時傳輸。那么怎么將數(shù)據(jù)進行平滑、無縫、異構數(shù)據(jù)庫之間的遷移,是我們面臨的一個巨大的挑戰(zhàn)。

      1 現(xiàn)狀分析

      測震JOPENS系統(tǒng)是數(shù)字地震觀測臺網(wǎng)的核心系統(tǒng),采用 J2EE、消息機制、持久存儲、EJB 進行開發(fā),采用開源的MySQL數(shù)據(jù)庫實施數(shù)據(jù)持久化存儲,包括事件信息、波形數(shù)據(jù)、地震目錄、震相數(shù)據(jù)及臺站信息等[3]。JOPENS系統(tǒng)具有地震速報、地震編目和數(shù)據(jù)服務功能,數(shù)據(jù)格式、產(chǎn)出統(tǒng)一規(guī)范,實現(xiàn)中國地震臺網(wǎng)中心和區(qū)域地震臺網(wǎng)的數(shù)據(jù)共享與交換[4]。

      JOPENS持久層整改并非簡單地將底層數(shù)據(jù)訪問接口從MySQL遷移到Oracle,而必須是一個安全,無風險,平滑的淡入淡出遷移過程。此過程中測震系統(tǒng)要不斷接收和處理觀測數(shù)據(jù),同時支持歷史數(shù)據(jù)查詢,因此必須設計一個2種數(shù)據(jù)庫協(xié)作運行的過渡階段。期間新采集的數(shù)據(jù)寫入Oracle數(shù)據(jù)庫,而用戶的操作則基于2種異構數(shù)據(jù)庫進行,感覺不到底層數(shù)據(jù)的異構性和存儲的分布[4-7]。

      解決異構數(shù)據(jù)庫集成問題一般采用中間件技術[8]。紅帽MetaMatrix中間件是一個強大的數(shù)據(jù)服務平臺,MetaMatrix 使用分布式服務架構,安裝和配置都十分的簡單。軟件自身擁有良好的管理體系和豐富的管理工具,二次開發(fā)十分便捷。MetaMatrix具有良好的可伸縮性,服務器端和客戶端的界面都十分的友好。服務器端可以通過增加實例來實現(xiàn)負載均衡,提高資源的使用效率。在接口方面適用SQL(ODBC/JDBC)或者 SOAP 協(xié)議(基于JMS 或HTTP),可以應用于多種不同的數(shù)據(jù)庫。因此,測震JOPENS系統(tǒng)的異構數(shù)據(jù)遷移整合方案基于紅帽MetaMatrix中間件來實現(xiàn)。

      2 遷移方案

      2.1 異構數(shù)據(jù)源接口模塊設計

      數(shù)據(jù)接口模塊是整個系統(tǒng)設計中最重要的一個環(huán)節(jié),需要對MetaMatrix的接口進行二次開發(fā),修改JOPENS的數(shù)據(jù)庫傳輸接口使其底層建立Oracle數(shù)據(jù)模式。將MySQL數(shù)據(jù)接口用MetaMatrix數(shù)據(jù)訪問接口替代,同時JDBC和JPA的數(shù)據(jù)訪問服務由MetaMatrix代理。

      在接口模塊設計中,首先要部署安裝MetaMatrix Server。MetaMatrix Server安裝非常簡單,對硬件的環(huán)境也不是特別苛刻,同時MetaMatrix控制臺和設計器的客戶端也需要進行安裝。通過可視化的操作,將JOPENS的數(shù)據(jù)同時流向MetaMatrix Server和自身的MySQL數(shù)據(jù)庫。

      接下來需要在MetaMatrix設計器中將JOPENS的MySQL和Oracle數(shù)據(jù)庫模式導入,同時需要設計并配置虛擬數(shù)據(jù)庫可以同時接受MySQL和Oracle數(shù)據(jù)庫的數(shù)據(jù);之后需要測試虛擬數(shù)據(jù)庫的可用性,保證模型中的虛擬數(shù)據(jù)庫可以正常接受數(shù)據(jù);最后就是將建立好的虛擬數(shù)據(jù)庫模型導出,準備接受JOPENS的數(shù)據(jù)。

      完成上述操作之后需要將設計好的虛擬數(shù)據(jù)庫模型導入MetaMatrix Server上。啟動服務,通過客戶端上MetaMatrix控制臺連接MetaMatrix Server上,導入、運行一切都已經(jīng)準備就緒。此時JOPENS的數(shù)據(jù)流向MetaMatrix Server,同時數(shù)據(jù)也流向原有的MySQL數(shù)據(jù)庫了。

      2.2 數(shù)據(jù)庫遷移模塊的實現(xiàn)

      數(shù)據(jù)庫遷移模塊是整個系統(tǒng)的核心,通過MetaMatrix建立的虛擬數(shù)據(jù)庫,并且對JOPENS系統(tǒng)接口進行了相應的修改,此模塊的設計分為3個階段:

      第一階段,MySQL數(shù)據(jù)庫與Oracle數(shù)據(jù)庫協(xié)同在線,并行服務,引入MetaMatrix數(shù)據(jù)整合中間件。此階段,JOPENS-DB的主要功能仍然由MySQL數(shù)據(jù)庫承擔,一些靜態(tài)參考數(shù)據(jù)(臺站參數(shù)等)和配置數(shù)據(jù)等已經(jīng)遷移到了Oracle數(shù)據(jù)庫;其他數(shù)據(jù)表特別是實時數(shù)據(jù)存儲表的遷移則是一個漸進的過程。這個階段的主要任務是需要對MetaMatrix的數(shù)據(jù)接口進行二次開發(fā),同時需要對JOPENS數(shù)據(jù)接口進行修改,還需要在Oracle數(shù)據(jù)庫中建立JOPENS的數(shù)據(jù)實例。與此同時,讓JOPENS訪問MetaMatrix數(shù)據(jù)接口,由MetaMatrix中間件承接JDBC和JPA的數(shù)據(jù)訪問服務。在MetaMatrix數(shù)據(jù)服務平臺中將設置Oracle數(shù)據(jù)庫承接來自SSS流服務器的實時波形數(shù)據(jù);與此同時,在人機交互的客戶端發(fā)出的數(shù)據(jù)請求將同時指向MySQL和Oracle數(shù)據(jù)庫。在這個過程中,JOPENS的應用端是不會感覺到數(shù)據(jù)庫指向的變化,而在MySQL和Oracle兩個異構的數(shù)據(jù)庫中會同時存儲來自數(shù)據(jù)源和應用端的數(shù)據(jù)。

      第二階段,持久層功能模塊遷移,在此階段MySQL淡出服務,Oracle承接實時數(shù)據(jù)。在第一階段MySQL數(shù)據(jù)庫和Oracle數(shù)據(jù)庫同時接收數(shù)據(jù),而在進入這個階段之后,JOPENS的數(shù)據(jù)服務將由Oracle完全承接,同時將斷開JOPENS-DB部分與MySQL的連接,和其他應用端對應的數(shù)據(jù)表,并且RTS-DB在MySQL的部分將變?yōu)橹蛔x性質(zhì)。此時的實時數(shù)據(jù)流將會流向Oracle數(shù)據(jù)庫,以及系統(tǒng)應用端的分析結(jié)果等數(shù)據(jù)將使用Oracle數(shù)據(jù)庫(圖1)。

      第三階段,Oracle完全承接數(shù)據(jù)服務。經(jīng)過前面兩個階段之后,整個系統(tǒng)實際上已經(jīng)使用Oracle數(shù)據(jù)庫提供服務了,那么最后階段就是中斷JOPENS和MySQL的數(shù)據(jù)傳輸,RTS-DB和JOPENS-DB的所有數(shù)據(jù)服務均由Oracle承擔。同時,需要將MySQL中的歷史數(shù)據(jù)遷移到Oracle數(shù)據(jù)庫中。由于MetaMatrix可以讓邏輯數(shù)據(jù)源和物理數(shù)據(jù)源的有效隔離,因此在上層系統(tǒng)中,用戶仍然不會感覺數(shù)據(jù)存儲層面的改變,也就是說在整個遷移的過程中達到了無縫的效果。等完成這最后一個階段,需要做的是對Oracle數(shù)據(jù)庫的優(yōu)化工作,已經(jīng)與MySQL沒有關系。

      3 遷移關鍵技術

      本次數(shù)據(jù)庫遷移系統(tǒng)的關鍵技術構成是基于MetaMatrix為中間件來進行控制持久層的遷移,通過MetaMatrix建立起虛擬數(shù)據(jù)庫,為遷移系統(tǒng)提供單一的業(yè)務視圖,避免在異構數(shù)據(jù)庫的遷移過程中由于數(shù)據(jù)庫結(jié)構的差異造成數(shù)據(jù)轉(zhuǎn)換時出現(xiàn)錯誤。同時通過對虛擬數(shù)據(jù)庫建立的單一數(shù)據(jù)業(yè)務視圖進行操作,JOPENS系統(tǒng)就可以達到同時使用遷移前和遷移后數(shù)據(jù)庫的可能性,為JOPENS系統(tǒng)的數(shù)據(jù)庫按模塊分布式遷移提供環(huán)境,也就是達到無縫遷移的要求。

      圖1 遷移示意圖

      從圖2可以看到,整個遷移過程的實現(xiàn)主要分為3個部分:

      第一層包括了視圖層和控制層。其中為視圖層(View)用戶界面,控制層(Control)則是制定的業(yè)務規(guī)則,通過模型中的User.java模塊將用戶需要操作的信息輸入到系統(tǒng)數(shù)據(jù)庫SYS.DB中。

      第二層為模型層。其中UserService.java模型用來定義和設置用戶信息,User.java將用戶信息傳輸?shù)较到y(tǒng)數(shù)據(jù)庫中;MetaMatrix.java模塊為MetaMatrix中間件,主要功能是建立虛擬數(shù)據(jù)庫(VDB.java),以及修改JOPENS的應用接口(JOPENS_API.java);Logger.java模塊的作用是收集在進行數(shù)據(jù)庫遷移的時候各個功能模塊產(chǎn)生的日志文件,并且選取重要的部分輸入本系統(tǒng)數(shù)據(jù)庫中。

      圖2 總體框架圖

      第三層是數(shù)據(jù)層。SYS.DB是遷移系統(tǒng)部分的數(shù)據(jù)庫,用來為整個遷移工作提供服務;在虛線框內(nèi)的JOPENS_MySQL.DB和JOPENS_Oracl.DB則是表示本系統(tǒng)需要完成遷移的2個數(shù)據(jù)庫。

      MetaMatrix數(shù)據(jù)服務平臺能夠與JBOSS中間件協(xié)同工作,在用戶體驗上不會產(chǎn)生差異性,同時提供了數(shù)據(jù)映射、數(shù)據(jù)建模等一系列的可視化工具,操作直觀、簡便,只需要對MetaMatrix提供的接口進行相應的開發(fā)就可以完成異構數(shù)據(jù)庫的數(shù)據(jù)整合。此外,MetaMatrix提供了JDBC、Hibernate等應用訪問接口。因而JOPENS系統(tǒng)可以在數(shù)據(jù)整合的基礎上,無需改變現(xiàn)有的技術架構,通過修改配置文件即可實現(xiàn)系統(tǒng)遷移。通過MetaMatrix數(shù)據(jù)服務平臺,可以對地震相關的業(yè)務數(shù)據(jù)、技術數(shù)據(jù)統(tǒng)一管理,建立起統(tǒng)一、標準的地震數(shù)據(jù)業(yè)務視圖,并通過web service方式對外發(fā)布數(shù)據(jù),便于與上海市地震局的其它應用系統(tǒng)進行快速全面地整合。

      系統(tǒng)遷移過程中的主要關鍵代碼:

      1)遷移JOPENS持久層時,由于主鍵的生成策略問題,需要更改JPA設置主鍵的代碼:

      GeneratedValue(generator = "ud")

      @GenericGenerator(name = "ud", strategy ="hilo", parameters = {

      @Parameter(name = "table", value = "jopens_virtual.hibernate_unique_key"),

      @Parameter(name = "column", value = "next_hi"),

      @Parameter(name = "max_lo", value = "100") })

      cn.org.gddsn.jopens.entity

      value-column-name="next_hi">

      2)MySQL數(shù)據(jù)庫到Oracle數(shù)據(jù)庫的遷移腳本

      june@june-fedora migrate-10.31.103.243]$ tree -L 3

      |-- db

      | |-- jopens-0.4.3-index-mysql51.sql

      | |-- jopens-0.4.3-init-mysql51.sql

      | |-- jopens-0.4.3-schema-mysql51.sql

      | `-- jopens_20120420.dmp

      |-- oracle

      | |-- msdp

      | | |-- jar

      | | |-- jopens.xml

      | | `-- NewSeis.jar

      | `-- msdp.sh

      |-- oracle.sh

      |-- teiid

      | |-- jboss4

      | | |-- ejb

      | | |-- hibernate.cfg.xml

      | | |-- jar

      | | |-- jopens-ds.xml

      | | `-- lib

      | |-- jboss4.sh

      | |-- msdp

      | | |-- jar

      | | |-- jopens.xml

      | | |-- NewSeis.jar

      | |-- msdp.sh

      | |-- sss

      | | |-- jar

      | | |-- NetSeisIP.jar

      | | `-- sbox-config.xml

      | |-- sss.sh

      | |-- vdb

      | | |-- deploy

      | | `-- lib

      | `-- vdb.sh

      `-- teiid.sh

      3)備份JOPENS相關配置文件和jar包腳本

      [june@june-fedora restore]$ tree -L 3

      .

      |-- backup-mysql.sh

      |-- mysql

      | |-- jboss4

      | | |-- hibernate.cfg.xml

      | | |-- jar

      | | |-- jopens-ds.xml

      | | |-- jopens-spring.xml

      | | |-- META-INF

      | | `-- persistence.xml

      | `-- jopens

      | |-- jopens.xml

      | |-- NetSeisIP.jar

      | |-- NewSeis.jar

      | |-- sbox-config.xml

      |-- mysql.sh

      5 directories, 13 files

      4 結(jié)論

      異構數(shù)據(jù)庫的整合不是簡單的一個遷移或者切換的過程。由于MySQL和Oracle兩個數(shù)據(jù)庫在存儲方式和管理模式上存在著一定的差異,所以在整個類似這樣的異構數(shù)據(jù)庫遷移整合的時候一定要考慮全面。通過上海市地震異構數(shù)據(jù)庫遷移整合操作過程,主要得出以下幾點總結(jié):

      1)遷移和整合的過程中,在用戶層面上是感覺不到任何的變化,體現(xiàn)了整個數(shù)據(jù)庫遷移過程的平滑性,同時數(shù)據(jù)管理員就可以輕松的在核心Oracle數(shù)據(jù)庫中為測震數(shù)據(jù)建立一個實例,進行統(tǒng)一的維護管理。

      2)MySQL數(shù)據(jù)庫中存儲著JOPENS持久層整改之前的寶貴歷史數(shù)據(jù),所以歷史數(shù)據(jù)的遷移也是非常重要的,MySQL數(shù)據(jù)庫格式和Oracle數(shù)據(jù)庫格式存在著差異,遷移后必須驗證數(shù)據(jù)的可靠性和一致性,通過在測試工具中錄制測試腳本、執(zhí)行測試腳本、分析執(zhí)行結(jié)果,確保JOPENS應用的關鍵場景都能夠正確的運行。

      3)Oracle作為大型商業(yè)數(shù)據(jù)庫,具有管理性強、易用性好、高可用性體系結(jié)構等優(yōu)點。上海地震局新建的專業(yè)業(yè)務核心數(shù)據(jù)庫使用的是Oracle數(shù)據(jù)庫,所以將JOPENS這樣關鍵業(yè)務系統(tǒng)數(shù)據(jù)整合到Oracle高可用數(shù)據(jù)環(huán)境中,大大提高了地震綜合業(yè)務對外服務的能力,同時也為運用新技術研究提供了一個更為優(yōu)越的平臺。

      [1] 張晁軍,陳會忠,李衛(wèi)東,等.大數(shù)據(jù)時代對地震監(jiān)測預報問題的思考[J].地球物理學進展,2015,30(4):1561-1568.

      [2] 屈佳, 張四新. 多源數(shù)據(jù)整合在地震信息上報系統(tǒng)中的應用[J]. 內(nèi)陸地震, 2014, 28(1):30-37.

      [3] 吳永權, 黃文輝. 數(shù)據(jù)處理系統(tǒng)軟件JOPENS的架構設計與實現(xiàn)[J]. 地震地磁觀測與研究, 2011, 31(6):59-63.

      [4] 吳華燈,黃文輝. 廣東地震臺網(wǎng)測震數(shù)據(jù)庫管理系統(tǒng)[J]. 華南地震, 2006, 26(2):66-71.

      [5] 劉威, 楊丹. 基于虛擬視圖的異構數(shù)據(jù)庫集成平臺的研究[J]. 計算機技術與發(fā)展, 2009, 19(06):91-94.

      [6] 于帆, 王振鐸, 王振輝. 基于XML異構數(shù)據(jù)庫集成中間件的設計與實現(xiàn)[J]. 計算機應用研究, 2007, 24(9):185-188.

      [7] 徐愛萍, 宋先明, 徐武平. 分布式異構數(shù)據(jù)庫集成系統(tǒng)研究與實現(xiàn)[J]. 計算機工程與科學, 2015, 37(10):1909-1916.

      [8] 曾國林, 傅秀芬, 呂占德. 異構數(shù)據(jù)庫集成中間件的設計與實現(xiàn)[J]. 計算機技術與發(fā)展, 2011, 21(3):83-86.

      Migration and Heterogeneous Database Integration in JOPENS System

      REN Ye, XIA Bo, YU Hai-ying

      (Shanghai Seismological Bureau, Shanghai 200062, China)

      This paper introduces a method of using MetaMatrix middleware to realize the migration of JOPENS system from MySQL database to Oracle database by building virtual database. It solved the integration of the latest data center platform and the seismological JOPENS system of Shanghai Seismological Bureau, and ensured that the entire heterogeneous database migration process was seamless and smooth. Such an attempt provides a reference for the migration and integration of heterogeneous databases for seismic services.

      heterogeneous database; MySQL; Oracl; earthquake monitoring; migration; Jopens

      2017-03-10

      上海市科委項目“上海地區(qū)地震精定位研究”(14231202600-02)

      任 燁(1980—),男,山西介休人,工程師,現(xiàn)主要從事地震監(jiān)測、系統(tǒng)維護工作.E-mail:renyerenye@126.com

      P315-392

      A

      1003-1375(2017)03-0061-05

      10.3969/j.issn.1003-1375.2017.03.011

      任燁,夏波,于海英.JOPENS系統(tǒng)異構數(shù)據(jù)庫遷移整合[J].華北地震科學,2017,35(3):61-65.

      猜你喜歡
      測震中間件異構
      基于信號精度分析的高速鐵路沿線測震井地震動力反應研究
      試論同課異構之“同”與“異”
      鐘祥臺測震觀測質(zhì)量影響淺析
      科技研究(2021年6期)2021-09-10 07:22:44
      遼寧流動測震觀測系統(tǒng)現(xiàn)狀分析
      RFID中間件技術及其應用研究
      電子制作(2018年14期)2018-08-21 01:38:10
      基于VanConnect中間件的設計與開發(fā)
      電子測試(2018年10期)2018-06-26 05:54:02
      overlay SDN實現(xiàn)異構兼容的關鍵技術
      電信科學(2016年11期)2016-11-23 05:07:56
      LTE異構網(wǎng)技術與組網(wǎng)研究
      在新興異構SoCs上集成多種系統(tǒng)
      中間件在高速公路領域的應用
      广河县| 平塘县| 绥芬河市| 宜昌市| 阳信县| 抚宁县| 临城县| 南宁市| 西盟| 武宁县| 综艺| 龙井市| 永登县| 邵武市| 息烽县| 繁峙县| 鹤庆县| 子长县| 丘北县| 宣化县| 额敏县| 营山县| 白朗县| 西城区| 弥渡县| 临汾市| 长沙县| 明溪县| 星座| 松溪县| 宝应县| 保定市| 石城县| 蒙自县| 铜梁县| 石景山区| 韩城市| 勃利县| 汝南县| 湟源县| 卢氏县|