數(shù)據(jù)庫服務(wù)器直接的異構(gòu)(oracle9i通過透明網(wǎng)關(guān)訪問sql server2000數(shù)據(jù)庫)
Posted on 2009-09-27 14:56 波波^_^ 閱讀(391) 評論(0) 編輯 收藏1.安裝好Oracle 9.0.1 Database for Windows后,會發(fā)現(xiàn)在%ORACLE_HOME%下有目錄tg4msql,以及網(wǎng)關(guān)程序$ORACLE_HOME\BIN\tg4msql;
2. 確保在c:\winnt\system32下有ntwdblib.dll,若沒有則安裝SQL Server2000(安裝類型選擇“僅連接”)。此文件是訪問SQL Server的DB-Library;
3. ping SQLDB看是否通,若不通則在\winnt\system32\drivers\etc\hosts文件中增加一行,用來解析SQLDB的IP地址,很簡單不多說了。
4. 修改%ORACLE_HOME%\tg4msql\inittg4msql.ora,這是網(wǎng)關(guān)進程啟動時需要的初始化文件。只需改下面這一行即可:
HS_FDS_CONNECT_INFO=SQLDB.luck #此處的SQLDB是SqlServer數(shù)據(jù)庫的實例名,luck是要訪問的數(shù)據(jù)庫名
5. Listener的配置如下
# LISTENER.ORA Network Configuration File: d:\oracle\ora92\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MICROSOF-E676C1)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = luck)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = luck)
)
(SID_DESC=
(SID_NAME=tg4msql)
(ORACLE_HOME=d:\oracle\ora92) #用你的%ORACLE_HOME%
(PROGRAM=tg4msql) # 必須指向‘tg4msql’
)
)
/************************/以下為新增加內(nèi)容
(SID_DESC=
(SID_NAME=tg4msql)
(ORACLE_HOME=d:\oracle\ora92) #用你的%ORACLE_HOME%
(PROGRAM=tg4msql) # 必須指向‘tg4msql’
)
/************************/
5. 修改tnsnames.ora
在原來的服務(wù)名稱下面增加一個服務(wù)名,代碼如下:
TG4MSQL =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST= localhost) #透明網(wǎng)關(guān)所在機器地址
(PORT = 1521)
)
(CONNECT_DATA =
(SID = tg4msql) #tg4msql必須要和GATEWAY上listener.ora中的SID一致
)
(HS = OK) #這很重要,告訴Oracle Server要調(diào)用異構(gòu)服務(wù)模塊來處理
)
6. 修改initora9i.ora(數(shù)據(jù)庫初始化文件)
global_names=true,重啟數(shù)據(jù)庫。
7. create public database link test connect to sa identified by luckserver using 'TG4MSQL';
8. select * from usertable@test;
通過如上步驟就可以再oracle中訪問SqlServer了。