配置Oracle Gateways透明网关连接多个MSSQL数据库


演示环境:
Oracle 11.2.0.4.0  Windows 64 bit

请注意,11.2.0.4的数据库软件,一定要安装11.2.0.4版本的透明网关!!!

 

这里假设我们已经在oracle软件安装目录安装好了透明网关,并已经配置好了一个MSSQL数据库的连接。

 

假设这里我们连接的MSSQL数据库是:
mssql_host1:1433    hydee
mssql_host2:1433    hydee_db2

%ORACLE_HOME%是软件安装相关的目录, 类似: 

E:\app\Administrator\product\11.2.0\dbhome_1


1. 切换到目录%ORACLE_HOME%\dg4msql\admin, 将配置文件initdg4msql.ora
      拷贝两个,重命名为
       initdg4msql2.ora  initdg4msql3.ora
     配置Oracle Gateways透明网关连接多个MSSQL数据库_第1张图片
2. 修改initdg4msql2.ora  initdg4msql3.ora两个文件中的sqlserver配置信息
initdg4msql2.ora: 
          HS_FDS_CONNECT_INFO= mssql_host1:1433//hydee
initdg4msql3.ora
          HS_FDS_CONNECT_INFO= mssql_host2:1433//hydee_db2

3.
修改监听配置, listener.ora, 加入如下SID_DESC:

   (SID_DESC =
      (SID_NAME = dg4msql2)
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4msql)
    ) 
    (SID_DESC =
      (SID_NAME = dg4msql3)
      (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4msql)
)




4. 重启监听
lsnrctl stop
lsnrctl start
当然,你也可以通过windows服务来重启监听

注意:重启监听时可能会HANG住,极有可能是因为进程中的dg4msql.exe进程将重启阻塞了
打开任务管理器,杀掉所有的dg4msql.exe进程


5. 修改tns:
找到tnsnames.ora, 加入如下tns别名:
DG4MSQL2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lcoalhos t)(PORT = 1521))
    (CONNECT_DATA =
      (SID = dg4msql2)
    )
    (HS = OK)
  )


DG4MSQL3 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lcoalhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = dg4msql3)
    )
    (HS = OK)
  )


6.    6. 创建DB_LINK
CREATE PUBLIC DATABASE LINK hydee1 CONNECT TO
用户名 IDENTIFIED BY密码USING 'dg4msql2';
   
  CREATE PUBLIC DATABASE LINK hydee2 CONNECT TO
   用户名 IDENTIFIED BY 密码 USING 'dg4msql3';

7. 测试连接, 这里引用了某个客户配置成功的结果
    配置Oracle Gateways透明网关连接多个MSSQL数据库_第2张图片


以上过程参考了官方文档:
https://docs.oracle.com/cd/A95433_01/a82868/ch4.htm#40983



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

转载于:http://blog.itpub.net/8520577/viewspace-2141425/

你可能感兴趣的:(配置Oracle Gateways透明网关连接多个MSSQL数据库)