Oracle11g与Mysql透明网关配置记录

做数据仓库,搞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这个参数的问题,

可以根据错误提示进行判断

http://blog.chinaunix.net/uid-411974-id-3807113.html


你可能感兴趣的:(Oracle,内部架构)