oracle 10g要與SqlServer 2005數據同步,採用透明網關的方式可以在oracle端直接訪問SqlServer。
1、背景:
oracle數據庫:oracle 10g(端口號1521)
透明網關: oracle gateway11g(端口號1522)
SqlServer: 2005(端口號1433)
注:透明網關跟oracle端口號不能一樣
三個在同一臺機器上
2、安裝透明網關:
安裝路徑最好跟oracle一致;填寫一下主機名和數據庫名
3、配置initdg4msql.ora文件:
路徑是:E:\oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora(gateway下的)
HS_FDS_CONNECT_INFO=192.168.0.88:1433//zyCenter #主機名:端口號//數據庫名
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
注:文件名是initSID.ora,即我的SID爲dg4msql,SID後面會用到
4、配置listener.ora
路徑:E:\oracle\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora(gateway下的)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = E:\oracle\product\11.2.0\tg_1)
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MS-201409091029)(PORT = 1522))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
ADR_BASE_LISTENER = E:\oracle\product\11.2.0\tg_1
注:SID_NAME=SID;ORACLE_HOME是gateway的路徑;PROGRAM=dg4msql不要更改
5、配置listener.ora:
路徑:E:\oracle\product\10.2.0\db_1\network\admin\listener.ora(oracle服務器路徑下的)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MS-201409091029)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
注:SID_NAME = SID;ORACLE_HOME oracle服務器路徑;PROGRAM = dg4msql不需要更改
6、配置tnsnames.ora:
路徑是:E:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora(oracle服務器路徑下的)
添加以下代碼:
dg4msql = #SID名稱
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST=MS-201409091029)(PORT=1522)) #gateway端口號
)
(CONNECT_DATA =
(SID = dg4msql) #SID名稱
)
(HS=OK)
)
7、創建DBLink
create database link DG4MSQL connect to SA identified by sa using 'dg4msql';
8、測試:
select * from dbo.area@dg4msql