oracle透明网关之异构数据库之间的访问:
环境配置说明:
由于是模拟oracle访问sql server数据库,所以对环境的配置没有那么严格,
将所有的配置(oracle、sql server、gateways)都放在了一台虚拟的windows server 2003上面。
其实,这三者可以独立装在不同的服务器上,这里由于条件限制,暂时全放在一台服务器上,就是我的server 2003。
具体配置如下:
oracle所在服务器:
操作系统:windows server 2003
IP地址:192.168.1.253
数据库:oracle_10.2.0.3_win_32
sql server所在服务器:
操作系统:windows server 2003
IP地址:192.168.1.253
数据库:sql server 2000_win_32
透明网关(gateways)所在服务器:
操作系统:windows server 2003
IP地址:192.168.1.253
软件:gateways_11.2.0.1_win_32
注意:
可以看出我将这三者全部安装在windows server 2003上了,其实,只要有环境,将这三者全部放在单独的服务器
也行,将透明网关可以安装在oracle所在服务器上或者sql server所在服务器上,不过需要做一些其他配置,
我试过失败率还是比较大的。
配置步骤如下:
1、
安装oracle,这一步不需要我过多的说明,在windows基本上是next-next-finish的。需要注意的是:在生产数据库中,
一定要注意做好备份和开启归档。我安装的oracle的主目录如下:C:\oracle\product\10.2.0\db_1
(这里在c盘,因为我的windows server 2003是虚拟的, 并没有分盘)。归档路径:C:\oracle\arch
2、
安装sql server 2000,这一步我也不过多的说明,也是 next-next-finish 类似的。但是,里面有些具体的配置,
需要自己了解。
3、
安装透明网关,这一步比较重要,虽然透明网关是一个单独的软件,但是在oracle的过程中要非常注意,
一定要安装在oracle的home目录下,也就是在安装的过程中让你选择安装的路径,这时候一定要选择
C:\oracle\product\10.2.0\db_1 ,具体原因我也有些不太明了,当我做测试安装在其他路径的时候,
发现是用oracle访问不到sql server的,会有以下报错:
SQL> select * from sysobjects@mstest;
select * from sysobjects@mstest
*
第 1 行出现错误:
ORA-28545: 连接代理时 Net8 诊断到错误
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: 紧接着 2 lines (起自 MSTEST)
所以,这一步千万要注意,当然如果你想试试的话可以自己另外测试。
4、
配置透明网关参数文件:
找到这个路径C:\oracle\product\10.2.0\db_1\dg4msql\admin,用记事本打开initdg4msql.ora文件,修改如下:
HS_FDS_CONNECT_INFO=[192.168.1.253]//Northwind
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
注意:我这里是dg4msql,在10g的透明网关中可能是tg4msql,具体问题具体分析。
5、
配置监听:
找到这个路径:C:\oracle\product\10.2.0\db_1\network\ADMIN ,用记事本打开listener.ora文件,修改如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = dg4msql)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.253)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
6、
重启监听:
打开cmd,输入以下命令:
停止:
lsnrctl stop
打开:
lsnrctl start
注意:启动监听之后是可以看到你的监听状态的,确保在你的listener.ora文件中有。
7、
配置tnsnames.ora文件:
在文件中添加下面语句:
DG4MSQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.253)(PORT = 1521))
)
(CONNECT_DATA =
(SID = dg4msql)
)
(HS = OK)
)
8、
测试dg4msql:
在cmd中输入:
tnsping dg4msql
注意:
如果你测试不通,那么赶快检查配置。
9、
进oracle数据库,创建DBLINK:
打开cmd:
sqlplus / as sysdba
sql> create database link dbtest connect to sa identified by oracle using 'dg4msql';
10、
通过dblink,用oracle访问sql server数据库,实际上是通过oracle能查询sql server数据库中数据就行
sql> select * from sysobjects@dbtest;
注意:
当最后一步没有报错,并能成功查询出sql server数据库中的数据时,你的透明网关就算配置完成。
如果有问题,欢迎与我交流。谢谢!