Oracle端連SQL Server 數(shù)據(jù)庫的實(shí)際操作方案
文章介紹的是正確使用 Oracle 透明網(wǎng)關(guān)從Oracle 數(shù)據(jù)庫端連SQL Server 數(shù)據(jù)庫的實(shí)際操作方案,首先我們是從使用 Oracle 數(shù)據(jù)庫透明網(wǎng)關(guān)從Oracle 端連SQL Server 數(shù)據(jù)庫的Step1 安裝Oracle 透明網(wǎng)關(guān)開始的。
Condition: 連SQL Server 的網(wǎng)關(guān)的操作系統(tǒng)必須是window ,因?yàn)樵诰W(wǎng)關(guān)上還必須得裝一個(gè)sql sever 的客戶端,用于監(jiān)聽SQL Server 服務(wù)器發(fā)來的消息。
安裝透明網(wǎng)關(guān)組件的軟件在Oracle 安裝盤里面,不需要另行下載。
安裝方法與步驟:
1.啟動(dòng)安裝程序以后,選擇安裝類型為定制
2.選擇 Oracle transparent gateways for Miscrosoft SQL Server ,然后點(diǎn)擊下一步,裝完即可。
Step 2 安裝SQL Server 客戶端(這一步不再演示)
Step 3 配置透明網(wǎng)關(guān)與Oracle 服務(wù)器
1. 修改Oracle_HOME\tg4msql\admin下的inittg4msql.ora 文件,配置好參數(shù)
其中HS_FDS_CONNECT_INFO=jysc.msdb的jisc代表SQL Server 的服務(wù)名,msdb是需要連接的SQL Server 數(shù)據(jù)庫。
2 配置Oracle 服務(wù)器的listener
修改listener.ora 文件,添加以下參數(shù),作用是使監(jiān)聽器能夠監(jiān)聽網(wǎng)關(guān)發(fā)過來的信息
- (SID_DESC =
- (PROGRAM = tg4msql)
- (Oracle_HOME = D:\OraHome_1)
- (SID_NAME = tg4msql)
- )
其中SID_NAME 可以自己取名。
3 配置網(wǎng)絡(luò)服務(wù)名tnsname
- LKSQL =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = xuchunyang)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SID = tg4msql)
- )
- (HS = OK)
- )
這里的HOST=xuchunyang ,xuchunyang 是透明網(wǎng)關(guān)服務(wù)器的服務(wù)器名,也可以是主機(jī)IP 地址 ,(SID = tg4msql) 的tg4msql不是固定名,需跟上面listener SID_NAME 一致。
一切配置都已經(jīng)完畢,然后可以創(chuàng)建database link 去連接SQL Server 數(shù)據(jù)庫了
Step 4 創(chuàng)建database link
連上Oracle 數(shù)據(jù)庫,運(yùn)行下面的語句,創(chuàng)建database link
- create database link LKTOSQL
- connect to XuChunYang identified by garyxu0120
- using 'LKSQL';
這里 using 'LKSQL'的LKSQL 是網(wǎng)絡(luò)服務(wù)名,跟開始配置的tns name 一致。
現(xiàn)在,我們就可以使用database link 去訪問SQL Server 數(shù)據(jù)庫的數(shù)據(jù)了。例如,運(yùn)行
Select * from sysobjects@LKTOSQL where rownum <10
建立好鏈接后,使用trigger 可以使兩種不同數(shù)據(jù)庫之間的表數(shù)據(jù)同步。
二 使用SQL Server 鏈接服務(wù)器從SQL Server 連Oracle 數(shù)據(jù)庫
1.要求pc機(jī)上安裝oralce客戶端軟件和sqlserver軟件。
2.客戶端的配置tnsnames.ora文件,配置所要連接的數(shù)據(jù)庫服務(wù)器(windows,unix等平臺(tái)均可以)GARYXU =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.67)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = GARY)
- )
- )
3.配置windows的ODBC數(shù)據(jù)源:
開始菜單—》設(shè)置—》管理工具—》數(shù)據(jù)源(ODBC)—》進(jìn)入配置用戶DSN或者系統(tǒng)DSN均可以:添加—》選擇Microsoft ODBC for Oracle —— 》自定義數(shù)據(jù)源名稱(最好跟tns中連接串同名?。?mdash;》服務(wù)器名稱(必填!填寫tns文件中的連接串名稱)—》完成。
4.配置sqlserver2000中的連接服務(wù)器:
企業(yè)管理器—》安全性—》連接服務(wù)器—》右鍵新建連接服務(wù)器—》定義連接名稱; 選其他數(shù)據(jù)源; 指定程序名稱為:Microsoft OLE DB
Provider for Oracle; 產(chǎn)品名稱可不填; 數(shù)據(jù)源指定剛才ODBC中定義好的數(shù)據(jù)源名稱; 提供程序字符串按以下格式填寫:
User =username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),這里的用戶名和密碼對(duì)應(yīng)所要連接的Oracle數(shù)據(jù)庫中用戶名和密碼 —》 安全性標(biāo)簽頁里:設(shè)置用此安全上下文進(jìn)行,并錄入Oracle的數(shù)據(jù)庫用戶名和密碼—》服務(wù)器選項(xiàng)標(biāo)簽頁可默認(rèn)—》確定。
5.準(zhǔn)備工作全部完成!在sqlserver企業(yè)管理器—》安全性—》連接服務(wù)器打開剛建好的連接服務(wù)器—》點(diǎn)擊表,即可在右邊窗口看到該Oracle數(shù)據(jù)庫用戶擁有的的所有表名,但在這里還并不能查看表的記錄,這個(gè)需要在sqserver的查詢分析器中用具體sql實(shí)現(xiàn)!訪問表時(shí),使用格式為:
[連接服務(wù)器名]..[Oracle用戶].[表名]。更詳細(xì)具體的使用這里不再贅述。
同樣,建立好鏈接后,使用trigger 可以使兩種不同SQL Server 數(shù)據(jù)庫之間的表數(shù)據(jù)同步。
【編輯推薦】