Oracle數(shù)據(jù)庫(kù)的異構(gòu)服務(wù)原理描述
以下的文章主要介紹的是Oracle數(shù)據(jù)庫(kù)的異構(gòu)服務(wù)原理以及相關(guān)實(shí)例的介紹,你對(duì)Oracle數(shù)據(jù)庫(kù)的異構(gòu)服務(wù)原理以及相關(guān)實(shí)例有不解之處時(shí),你可以通過(guò)以下的文章對(duì)其的實(shí)際應(yīng)用與功能有所了解,以下是文章的具體介紹,望你瀏覽完以下的內(nèi)容會(huì)有所收獲。
由于歷史的原因,在多數(shù)企業(yè)都同時(shí)存在多個(gè)數(shù)據(jù)庫(kù)平臺(tái),在每個(gè)數(shù)據(jù)庫(kù)平臺(tái)上都運(yùn)行著相關(guān)的一套或多套應(yīng)用。隨著單位業(yè)務(wù)不斷擴(kuò)大,如何在不影響現(xiàn)有應(yīng)用運(yùn)行的前提下,快速有效地整合這些分布在單位內(nèi)部不同數(shù)據(jù)庫(kù)平臺(tái)上的數(shù)據(jù),是一個(gè)困擾CIO們的問(wèn)題。面對(duì)這一問(wèn)題,現(xiàn)有解決方案大致可分為以下兩種:
1.在應(yīng)用程序上建立連接不同數(shù)據(jù)源的數(shù)據(jù)連接,這樣做要求程序員分清哪個(gè)連接是對(duì)應(yīng)哪個(gè)Oracle數(shù)據(jù)庫(kù)的,而且如果設(shè)計(jì)時(shí)涉及到存儲(chǔ)過(guò)程還要按照不同數(shù)據(jù)庫(kù)的要求分別編寫(xiě),加重了程序員的要求。
2.在數(shù)據(jù)庫(kù)中設(shè)立快照,定時(shí)把其他數(shù)據(jù)源的數(shù)據(jù)復(fù)制到本地?cái)?shù)據(jù)庫(kù),這樣雖然解決了前一種方法中不同數(shù)據(jù)源的問(wèn)題,但是由于是定時(shí)復(fù)制,數(shù)據(jù)不能實(shí)時(shí)同步,在實(shí)時(shí)性要求高的應(yīng)用中這種方法便不能使用。
由于上述兩種方法都存在一定的缺點(diǎn),這里介紹一種Oracle提供的解決oracle數(shù)據(jù)庫(kù)與異種數(shù)據(jù)源的連接問(wèn)題的解決方案—Oracle的異構(gòu)服務(wù)(Heterogeneous Services)。
異構(gòu)服務(wù)
“異構(gòu)服務(wù)”是集成在Oracle 8i數(shù)據(jù)庫(kù)軟件中的功能,它提供了從Oracle數(shù)據(jù)庫(kù)訪問(wèn)其他非Oracle數(shù)據(jù)庫(kù)的通用技術(shù)。熟悉Oracle的讀者都很清楚,Oracle提供通過(guò)建立DB Link的方法訪問(wèn)非本地?cái)?shù)據(jù)庫(kù),而“異構(gòu)服務(wù)”提供通過(guò)建立DB Link使你能夠執(zhí)行Oracle SQL查詢(xún),透明地訪問(wèn)其他非Oracle數(shù)據(jù)庫(kù)里的數(shù)據(jù),就像訪問(wèn)Oracle遠(yuǎn)程數(shù)據(jù)庫(kù)一樣。“異構(gòu)服務(wù)”分為兩種:
1. 事務(wù)處理服務(wù)(Transation Service):通過(guò)事務(wù)處理服務(wù),使用戶(hù)在訪問(wèn)非Oracle數(shù)據(jù)庫(kù)中支持事務(wù)處理功能。
2. SQL服務(wù): 通過(guò)SQL服務(wù),使用戶(hù)直接在Oracle數(shù)據(jù)庫(kù)中執(zhí)行對(duì)非Oracle數(shù)據(jù)庫(kù)的各種SQL語(yǔ)句。
根據(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)程序來(lái)設(shè)置代理,例如連接SQL Server則必須要有SQL Transparent Gateway for SQL Server。
通用連接(Generic Connectivity) 通用連接又分為ODBC連接和OLE DB連接兩種,其連接方法和透明網(wǎng)關(guān)沒(méi)有本質(zhì)區(qū)別,只不過(guò)通用連接是和數(shù)據(jù)庫(kù)一起提供的功能,你不需要向Oracle購(gòu)買(mǎi)相關(guān)的透明網(wǎng)關(guān)程序。
連接實(shí)例
這個(gè)實(shí)例的應(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一起安裝的,你可以查詢(xún)SYS用戶(hù)下是否存在HS_BASE_CAPS視圖,以確認(rèn)HS部件是否安裝,如果沒(méi)有可以用相關(guān)的安裝盤(pá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。
在這個(gè)文件中增加如下代碼:
- Lnk2sql =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521)))
- (CONNECT_DATA =
(SID = hs4sql) |< 服務(wù)的SID名稱(chēng),要和Listener里配置的sid相同)
(HS=OK) |< 打開(kāi)HS服務(wù)選項(xiàng)
)
4.配置listener.ora,它位于ORACLE_HOMENETWORKADMIN。
在這個(gè)文件中增加如下代碼:
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
(SID_NAME = hs4sql) |< 服務(wù)的SID名稱(chēng),與tnsname名稱(chēng)相對(duì)應(yīng)
(ORACLE_HOME = C:oracleora9201)
(PROGRAM = hsodbc) |< 要使用的HS服務(wù)程序,如果使用OLE DB,程序名為hsole )
)
5. 重新啟動(dòng)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. 測(cè)試連接。如:
- create database link ‘ora2sql’ connect
- to sql1 identified by sql1 using ‘lnk2sql’;
到此我們已經(jīng)完成了使用ODBC連接SQL SERVER的配置工作。
總體上說(shuō),異構(gòu)服務(wù)擴(kuò)展了Oracle數(shù)據(jù)庫(kù)連接異種數(shù)據(jù)源的能力,加強(qiáng)了企業(yè)數(shù)據(jù)的整合,是一個(gè)快速有效經(jīng)濟(jì)地整合企業(yè)內(nèi)部異構(gòu)數(shù)據(jù)的解決方案。
2007-11-14 來(lái)自:xuejinyoulan [收藏到我的網(wǎng)摘]
【編輯推薦】
- Oracle SQL的優(yōu)化規(guī)則解析
- 閑談Oracle應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)簡(jiǎn)介
- Oracle SQL的優(yōu)化的規(guī)則描述
- Oracle存儲(chǔ)過(guò)程的編寫(xiě)經(jīng)驗(yàn)總結(jié)
- Oracle11g認(rèn)證考試的3個(gè)主要途徑