ITPub博客

首页 > 数据库 > Oracle > oracle透明网关之异构数据库的访问

oracle透明网关之异构数据库的访问

原创 Oracle 作者:oracle_zsx 时间:2013-09-18 16:49:15 0 删除 编辑
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数据库中的数据时,你的透明网关就算配置完成。
    如果有问题,欢迎与我交流。谢谢!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29107230/viewspace-772906/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-08-22

  • 博文量
    25
  • 访问量
    134498