做数据仓库,搞ETL,多数据源,异构数据源是不可避免的。曾经配置过Oracle--Informix,Oracle--SqlServer的透明网关,Oracle--MySql的没怎么配置过,
这次项目需要花了点时间配置了Oracle--Mysql的透明网关,配置过程不是很复杂,但遇到问题也不少,所以在这边记录下,希望能帮到后来人。
如果是Oracle10g及以下版本,而系统又是x86_64位的或者是i386(linux系统)就尽早放弃吧,原因使Oracle的Hsodbc的驱动程序仅支持32位的win系统,所以
这也就意味着10g之前的版本Oracle--mysql的透明网关在linux系统下基本没戏,所以也就为什么以前基本上没怎么见到过Oracle--Mysql的透明网关了(貌似
我以前配SqlServer时就搜过)
开始时谷歌了好多,脚的还是下面这篇文章介绍的是最全,最清晰的我直接转来,
http://space.itpub.net/21601207/viewspace-709366
下面我就这篇未尽的事情再补充一些
因为有一种情况是我的Oracle服务器可能不单单是做透明网关用,上面可能已经有Oracle服务了,这样的话就需要服务器上有两个监听,一个是我们正常的服务,
一个是新的这个用于透明网关的,所以我把原文6,7,8步骤要更改下
第7步配置两个监听,原来的监听保持不变,新加如下监听内容
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = rdbjf)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = dg4odbc)
)
)
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jingfendbserver1)(PORT = 1520))
)
)
PS:注意新增监听的端口号是1520,因为1521我们要提供给其他正常服务用
第8步这个
通过监听服务控制命令启动改监听
lsnrctl start listener2;
关于第6步在tnsname.ora文件里新增内容
rdbjf =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST= jingfendbserver1)(PORT=1520)) --注意1520
(CONNECT_DATA=(SID=rdbjf))
(HS=ok)
)
完了,然后tnsping下新增的服务是否正常畅通
tnsping rdbjf;
除了这些要注意的其他的依据链接内容配置应该基本没啥问题了
另外对于这个
四、安装过程中遇到的问题
ORA-28511: lost RPC connection to heterogeneous remote agent using
SID=ORA-28511: lost RPC connection to heterogeneous remote agent using
SID=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=s1.db.sns.mdc.139.com)(PORT=1521))
(CONNECT_DATA=(SID=my23_3322)))
ORA-02063: preceding line from LN_MY23_3322
Process ID: 18585
Session ID: 96 Serial number: 207
在initmy23_3322.ora文件中添加如下参数
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1
也不一定是这个参数的问题,可能是其他的,我遇到的问题就是
HS_IDLE_TIMEOUT =1440这个参数的问题,
可以根据错误提示进行判断
本文章由上海计算机培训 上海电脑培训 推荐阅读
--转自