最近有一個業(yè)務(wù)需求,需要在Oracle和SQLServer之間進行一些數(shù)據(jù)交互。之前一般是通過單獨的同步工具來進行的,這次由于操作邏輯比較簡單,就準(zhǔn)備通過Oracle網(wǎng)關(guān)來實現(xiàn),順便記錄操作步驟。
下載 Oracle Database 11g Database Gateway 11.2.0.1.0 ( Oracle Database Gateway for SQL Server )
如果無法從官網(wǎng)下載,可以從百度網(wǎng)盤下載
https://pan.baidu.com/s/1x-CDiAVNg0YrgZ2X0JFZNg?pwd=yiky為了方便,我們直接在服務(wù)器上安裝Gateway,安裝時注意選擇安裝目錄。
-
進行配置
Oracle服務(wù)器基本信息 version 11g ip 192.168.1.10 port 1521 SQLServer服務(wù)器基本信息 version 2008R2 ip 192.168.1.20 port 1433 DatabaseName erp進入Oracle安裝目錄下的
dg4msql/admin目錄下,拷貝initdg4msql.ora文件為新的initMSERP.ora。并編輯內(nèi)容為:
HS_FDS_CONNECT_INFO="192.168.1.20:1433//erp" --這里設(shè)置SQLServer數(shù)據(jù)庫的地址,端口,和訪問的數(shù)據(jù)庫。 注意端口后是雙斜線。 HS_FDS_TRACE_LEVEL=OFF HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER進入Oracle安裝目錄下的
NETWORK/admin目錄修改
listener.ora,增加監(jiān)聽SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:/oracle/product/11.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC= (SID_NAME=MSERP) --對應(yīng)dg4msql\admin目錄下的init文件 (ORACLE_HOME=D:/oracle/product/11.2.0/db_1) (PROGRAM=dg4msql) )檢查
sqlnet.ora文件SQLNET.AUTHENTICATION_SERVICES= (NTS,NONE) NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)修改
tnsnames.ora文件SQLSERVER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.10)(PORT = 1521)) ) (CONNECT_DATA = (SID = MSERP) ) (HS = OK) )重啟監(jiān)聽
lnsrctl stop lsnrctl start打開SQLPlus ,創(chuàng)建DBLINK
create public database link ms_link connect to "sa" identified by "sa" using 'SQLSERVER'; --這里替換為自己的訪問SQLServer的用戶名和密碼。 select * from test@ms_link; 就可以查詢到SQLServer中的ERP數(shù)據(jù)庫的test表數(shù)據(jù)內(nèi)容。同樣更新刪除也是可以的,只要dblink的訪問用戶有權(quán)限即可。至此完工。