文章詳情頁
Oracle數(shù)據(jù)庫異構(gòu)服務(wù)原理及實例說明
瀏覽:2日期:2023-11-24 16:31:12
由于歷史的原因,在多數(shù)企業(yè)都同時存在多個數(shù)據(jù)庫平臺,在每個數(shù)據(jù)庫平臺上都運(yùn)行著相關(guān)的一套或多套應(yīng)用。隨著單位業(yè)務(wù)不斷擴(kuò)大,如何在不影響現(xiàn)有應(yīng)用運(yùn)行的前提下,快速有效地整合這些分布在單位內(nèi)部不同數(shù)據(jù)庫平臺上的數(shù)據(jù),是一個困擾CIO們的問題。面對這一問題,現(xiàn)有解決方案大致可分為以下兩種: 1.在應(yīng)用程序上建立連接不同數(shù)據(jù)源的數(shù)據(jù)連接,這樣做要求程序員分清哪個連接是對應(yīng)哪個數(shù)據(jù)庫的,而且假如設(shè)計時涉及到存儲過程還要按照不同數(shù)據(jù)庫的要求分別編寫,加重了程序員的要求。 2.在數(shù)據(jù)庫中設(shè)立快照,定時把其他數(shù)據(jù)源的數(shù)據(jù)復(fù)制到本地數(shù)據(jù)庫,這樣雖然解決了前一種方法中不同數(shù)據(jù)源的問題,但是由于是定時復(fù)制,數(shù)據(jù)不能實時同步,在實時性要求高的應(yīng)用中這種方法便不能使用。 由于上述兩種方法都存在一定的缺點,這里介紹一種Oracle提供的解決oracle數(shù)據(jù)庫與異種數(shù)據(jù)源的連接問題的解決方案—Oracle的異構(gòu)服務(wù)(Heterogeneous Services)。 程序運(yùn)行效果截圖異構(gòu)服務(wù) “異構(gòu)服務(wù)”是集成在Oracle 8i數(shù)據(jù)庫軟件中的功能,它提供了從Oracle數(shù)據(jù)庫訪問其他非Oracle數(shù)據(jù)庫的通用技術(shù)。熟悉Oracle的讀者都很清楚,Oracle提供通過建立DB Link的方法訪問非本地數(shù)據(jù)庫,而“異構(gòu)服務(wù)”提供通過建立DB Link使你能夠執(zhí)行Oracle SQL查詢,透明地訪問其他非Oracle數(shù)據(jù)庫里的數(shù)據(jù),就像訪問Oracle遠(yuǎn)程數(shù)據(jù)庫一樣。“異構(gòu)服務(wù)”分為兩種: 1. 事務(wù)處理服務(wù)(Transation Service):通過事務(wù)處理服務(wù),使用戶在訪問非Oracle數(shù)據(jù)庫中支持事務(wù)處理功能。 2. SQL服務(wù): 通過SQL服務(wù),使用戶直接在Oracle數(shù)據(jù)庫中執(zhí)行對非Oracle數(shù)據(jù)庫的各種SQL語句。 根據(jù)異構(gòu)服務(wù)代理程序的不同,“異構(gòu)服務(wù)”連接方式可以分為透明網(wǎng)關(guān)和通用連接兩種。 透明網(wǎng)關(guān)(Transparent Gateways) 透明網(wǎng)關(guān)使用Oracle提供的特定網(wǎng)關(guān)程序來設(shè)置代理,例如連接SQL Server則必須要有SQL Transparent Gateway for SQL Server。 通用連接(Generic Connectivity) 通用連接又分為ODBC連接和OLE DB連接兩種,其連接方法和透明網(wǎng)關(guān)沒有本質(zhì)區(qū)別,只不過通用連接是和數(shù)據(jù)庫一起提供的功能,你不需要向Oracle購買相關(guān)的透明網(wǎng)關(guān)程序。 連接實例 這個實例的應(yīng)用環(huán)境是Oracle 8.1.7,操作系統(tǒng)windows 2000 Server英文版,采用通用連接的ODBC for SQL Server連接SQL Server 2000中文版。安裝步驟如下: 1. 安裝HS部件。 缺省情況下,HS服務(wù)是和Oracle 8.1.7一起安裝的,你可以查詢SYS用戶下是否存在HS_BASE_CAPS視圖,以確認(rèn)HS部件是否安裝,假如沒有可以用相關(guān)的安裝盤進(jìn)行安裝。 2. 配置ODBC系統(tǒng)連接字。 在控制面板選擇“Data Sources (ODBC)”,在“系統(tǒng)DNS”內(nèi)配置ODBC for SQL Server連接字(dnsora2sql)。 3.配置tnsnames.ora,它位于ORACLE_HOMENETWORKADMIN。 在這個文件中增加如下代碼: Lnk2sql = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))) (CONNECT_DATA = (SID = hs4sql) < 服務(wù)的SID名稱,要和Listener里配置的sid相同) (HS=OK) < 打開HS服務(wù)選項 ) 4.配置listener.ora,它位于ORACLE_HOMENETWORKADMIN。 在這個文件中增加如下代碼: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = hs4sql) < 服務(wù)的SID名稱,與tnsname名稱相對應(yīng) (ORACLE_HOME = C:oracleora9201) (PROGRAM = hsodbc) < 要使用的HS服務(wù)程序,假如使用OLE DB,程序名為hsole ) ) 5. 重新啟動Oracle listener。 6. 編輯位于ORACLE_HOMEHSADMIN內(nèi)init.ora,這里是iniths4sql。 修改如下兩行代碼: HS_FDS_CONNECT_INFO = dnsora2sql < ODBC系統(tǒng)名 HS_FDS_TRACE_LEVEL = 0 7. 創(chuàng)建DATABASE LINK。 create database link ‘ora2sql’ connect to sql1 identified by sql1 using ‘lnk2sql’; 8. 測試連接。如: SQL> select * from region@ora2sql; 到此我們已經(jīng)完成了使用ODBC連接SQL SERVER的配置工作。 總體上說,異構(gòu)服務(wù)擴(kuò)展了Oracle數(shù)據(jù)庫連接異種數(shù)據(jù)源的能力,加強(qiáng)了企業(yè)數(shù)據(jù)的整合,是一個快速有效經(jīng)濟(jì)地整合企業(yè)內(nèi)部異構(gòu)數(shù)據(jù)的解決方案。
標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
