金 秋,裴 斐
(中原工學(xué)院,鄭州 450007)
異構(gòu)數(shù)據(jù)庫集成互聯(lián)關(guān)鍵技術(shù)研究
金 秋,裴 斐
(中原工學(xué)院,鄭州 450007)
對某政府轄區(qū)的社會保險服務(wù)平臺在升級過程中遇到的異構(gòu)數(shù)據(jù)庫集成問題提出了解決方案,并對支撐方案的關(guān)鍵技術(shù)——O racle HS及方案的實現(xiàn)作出了闡述.
異構(gòu)數(shù)據(jù)庫;集成;互聯(lián)
目前,隨著信息技術(shù)的發(fā)展及其應(yīng)用的普及,大多數(shù)企事業(yè)單位都已擁有自建或購買的信息系統(tǒng).但是,盡管經(jīng)過謹(jǐn)慎的設(shè)計,然而隨著時間的推移和技術(shù)的進(jìn)步,以及一些用戶不斷提出多方位的新需求,不少單位面臨系統(tǒng)升級的問題.綜合前期投入,采用何種高性價比的升級方式,是眾多管理人員需要思考的問題.在系統(tǒng)升級過程中,異構(gòu)數(shù)據(jù)庫的集成是最基礎(chǔ)且最重要的問題之一[1].
某政府轄區(qū)的社會保險服務(wù)平臺在投入使用后遇到了信息公開問題,需要外購信息系統(tǒng)進(jìn)行升級,其中異構(gòu)數(shù)據(jù)庫互聯(lián)成為解決問題的關(guān)鍵.該平臺是一個已經(jīng)投入正常使用的系統(tǒng),來源于外購.隨著電子政務(wù)的普及以及信息公開的要求,用戶需要系統(tǒng)實現(xiàn)個人及單位在線查詢社會保險信息業(yè)務(wù).管理人員結(jié)合成本,考慮到通過系統(tǒng)售后服務(wù)升級不可取,遂決定采用在原有系統(tǒng)基礎(chǔ)上另外建立一套查詢系統(tǒng)的方式.原系統(tǒng)采用Oracle與 Sybase數(shù)據(jù)庫,根據(jù)用戶需要不能改變原來數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫環(huán)境,而查詢用戶的登錄以及權(quán)限信息需要新建數(shù)據(jù)庫進(jìn)行保存,不論采用哪一種數(shù)據(jù)庫,都涉及到異構(gòu)數(shù)據(jù)庫的互聯(lián)問題.
異構(gòu)數(shù)據(jù)庫的互聯(lián)需要考慮安全性、穩(wěn)定性等諸多因素.本文以某政府轄區(qū)的社會保險服務(wù)平臺為例,通過分析,提出了解決方案,并對異構(gòu)數(shù)據(jù)庫互聯(lián)的關(guān)鍵技術(shù)以及方案的實現(xiàn)做出了闡述.
經(jīng)過與用戶協(xié)商,綜合考慮成本、開發(fā)難易程度、開發(fā)效率等多方面因素,最終決定采取新增一臺Oracle數(shù)據(jù)庫服務(wù)器進(jìn)行系統(tǒng)擴展.
通過新增的 O racle數(shù)據(jù)庫服務(wù)器,建立到原O racle數(shù)據(jù)庫的db_link數(shù)據(jù)庫鏈接.當(dāng)用戶第一次登錄注冊時,將用戶基本信息以及系統(tǒng)分配的權(quán)限保存至新O racle數(shù)據(jù)庫服務(wù)器.當(dāng)用戶登錄系統(tǒng)后,一切信息查詢都通過db_link與原數(shù)據(jù)庫連接查詢.使用這項技術(shù),只需在原Oracle數(shù)據(jù)庫上建立用戶并只賦予Search權(quán)限即可.其余的配置均在新Oracle數(shù)據(jù)庫中配置.
新增O racle數(shù)據(jù)庫與原Sybase數(shù)據(jù)庫屬于異構(gòu)數(shù)據(jù)庫,需要采用O racle的 HS(Heterogeneous Services)組件同Non-O racle System數(shù)據(jù)交互.HS的主要功能是向代理(Agent)解釋需要的數(shù)據(jù)、數(shù)據(jù)的類型、數(shù)據(jù)的方法.其中的代理(Agent)是 Oracle Transparent Gatew ay,它是O racle針對每一種具體的非Oracle系統(tǒng)而設(shè)計的.通過 Transparent Gateway可以透明地存取某一非O racle系統(tǒng),而不必了解這些數(shù)據(jù)的具體存放位置及存取方法.
根據(jù)上述分析,Oracle HS和Oracle Transparent Gatew ay是異構(gòu)數(shù)據(jù)庫(O racle與 Sybase)互聯(lián)的關(guān)鍵技術(shù)因素.
HS主要包含事務(wù)服務(wù)(Transaction Service)和結(jié)構(gòu)化查詢語言服務(wù)(SQL Service)2個模塊.Transaction Service使異構(gòu)數(shù)據(jù)源盡可能地集成進(jìn)Oracle數(shù)據(jù)庫服務(wù)器的事務(wù)和會話中.所以當(dāng)訪問一個異構(gòu)數(shù)據(jù)源的時候,使用O racle用戶當(dāng)前的會話并通過數(shù)據(jù)庫連接(Database Link),在異構(gòu)數(shù)據(jù)源建立相應(yīng)的認(rèn)證會話(訪問異構(gòu)數(shù)據(jù)源的認(rèn)證信息由用戶提供或者Database Link已經(jīng)指定).同樣,當(dāng)用戶關(guān)閉了當(dāng)前Oracle的會話時,那么異構(gòu)數(shù)據(jù)源上的相應(yīng)會話也隨之關(guān)閉.SQL Service用于處理所有的SQL相關(guān)的操作,主要包括使O racle內(nèi)部SQL相關(guān)的調(diào)用映射成 HS驅(qū)動的API、把O racle的SQL語句翻譯成相關(guān)的異構(gòu)數(shù)據(jù)源的SQL語句[2].
HS和O racle Transparent Gatew ay的協(xié)同工作過程如下[3]:
(1)客戶端從 Oracle Database請求數(shù)據(jù),發(fā)送O racle標(biāo)準(zhǔn)的SQL語句,在O racle數(shù)據(jù)庫上創(chuàng)建了一個Session;
(2)HS把O racle的SQL語句轉(zhuǎn)換成Non-Oracle數(shù)據(jù)庫可以正確運行的語句;
(3)轉(zhuǎn)換后的SQL語句通過O racle Net被發(fā)送到Gateway;
(4)Gatew ay使用相關(guān)的用戶名密碼登陸到Non-Oracle System,建立連接,執(zhí)行 SQL語句;
(5)Non-Oracle System返回運行SQL語句后的結(jié)果給Gateway;
(6)Gatew ay翻譯/格式化返回的結(jié)果使其能被Oracle數(shù)據(jù)庫所兼容;
(7)把 Gateway執(zhí)行后的結(jié)果通過 Oracle Net Service返回給Oracle數(shù)據(jù)庫;
(8)O racle數(shù)據(jù)庫服務(wù)器通過O racle Net把結(jié)果返回給客戶端.
在本系統(tǒng)中,用戶第一次登錄注冊時,用戶基本信息保存至新Oracle數(shù)據(jù)庫服務(wù)器,隨后用戶登錄系統(tǒng)后,一切信息查詢都通過 HS和 Geteway與原Sybase數(shù)據(jù)庫連接查詢.當(dāng)建立 Getew ay時,需要在Sybase中建立用戶,只賦予Search權(quán)限.其余數(shù)據(jù)庫內(nèi)容均無需改動.
系統(tǒng)采用ASP.NET2.0+O racle+Sybase的模式開發(fā),目前已經(jīng)投入使用.在安裝實現(xiàn)過程中,對于異構(gòu)數(shù)據(jù)庫互聯(lián)需要進(jìn)行特別的配置,即對O racle HS的部署,過程如下:
(1)在新的O racle服務(wù)器中安裝 Sybase數(shù)據(jù)庫的客戶端以及補丁后,安裝Oracle的Oracle Transparent Gateway for Sybase組件,安裝好后在 Oracle中配置Sybase的完整安裝路徑,然后選擇Sybase的服務(wù)器名和數(shù)據(jù)庫名;
(2)配置Sybase的Dsedit設(shè)置,連接信息后先增加Server Object,然后配置Sybase服務(wù)器的服務(wù)器名和IP地址,最后可以通過Dsedit的 Ping命令查看連接是否成功.如圖1、圖2所示.
(3)打開Oracle的listener.o ra文件,在文件中新增如下內(nèi)容:
(SID_DESC=
(SID_NAM E=tg4sybs)(ORACLE_HOM E=F:oracleora92)
(PROGRAM=tg4sybs))
其中,ORACLE_HOM E即為Oracle的主目錄路徑.然后重啟監(jiān)聽程序,在O racle的tnsnames.o ra文件中加入:
sybs=(DESCRIPTION=(ADDRESS_L IST=
(ADDRESS=(PROTOCOL=TCP)(HOST=202.196.32.59)(PORT=1521)))
(CONNECT_DA TA=(SID=tg4sybs))(HS=OK))
其中,HOST為本機的IP地址,PORT也是本機的Oracle端口.
(4)登錄O racle的sqlp lus,建立連接如下:
SQL>create public database link sybs connect to"sidba"identified by“sidba”using’sybs’;
這樣就實現(xiàn)了O racle與Sybase的互聯(lián).
本文對一實際系統(tǒng)在升級過程中遇到的異構(gòu)數(shù)據(jù)庫互聯(lián)問題進(jìn)行了分析,提出了解決方案,并對關(guān)鍵技術(shù)及方法實現(xiàn)進(jìn)行了闡述.系統(tǒng)中的異構(gòu)數(shù)據(jù)庫指的是Oracle和Sybase,通過對各種因素進(jìn)行權(quán)衡,最終選用O racle HS和O racle Transparent Gatew ay作為異構(gòu)數(shù)據(jù)庫互聯(lián)的關(guān)鍵支撐技術(shù).對Oracle HS的部署及配置做出詳細(xì)的實例化闡述.
[1] 陳洋,羅四維.異構(gòu)數(shù)據(jù)庫數(shù)據(jù)集成的研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2006(7):192-1.
[2] Xingxue.ORACLE通過 HS連接其他數(shù)據(jù)庫(SYBASE&SQL SERVER)[EB/OL].(2008-11-12).http://www.51leifeng.net/thread-9951-1-1.htm l.
[3] 雜技堂.O racle HS(Heterogeneous Services)深入解析及協(xié)同 Gateway工作流程[EB/OL].[2010-06-20].http://www.cnblogs.com/www iori/archive/2009/06/22/1508068.htm l.
The Research on Key Technologies of Heterogeneous Database Integration
JIN Qiu,PEIFei
(Zhongyuan U niversity of Technology,Zhengzhou 450007,China)
A dvances in info rmation technology led to the demand fo r info rmation system upgrades,and the differentiation of the development costs,p latform and technology led to the existence of heterogeneous database.But at p resent there wasn’t a standard of the integration of heterogeneous databases.This paper introduced the solutions,key technology—Oracle HSand realization of the heterogeneous database connection in the p rocess of a real information system upgrades.
heterogeneous database;integration;heterogeneous database connection
TP311.13
A DO I:10.3969/j.issn.1671-6906.2010.04.015
1671-6906(2010)04-0059-03
2010-06-30
金 秋(1980-),女,山東曹縣人,講師.