oracle想要通过dblink去访问sqlserver数据库,这时候就需要一个oracle软件,透明网关(Transparent Gateway

下面是oracle12c的透明网关下载地址。

链接:https://pan.baidu.com/s/1s8xKDI6SapDSbndn8_Greg 
提取码:epvu 
如果失效或者打不开链接的话可以私信我或者评论区留言都可以。

我试验的环境是sqlserver2008oracle12c,全部在windows下进行操作。

 

首先:安装geteway,解压后会生成gateways文件夹

双击进入gateways文件夹后,再双击setup.exe,进行安装

然后进入安装界面,

这里建议选择现有windows用户,最好和oracle安装时使用的用户一样。

安装路径这里最好和ORACLE_HOME的安装路径一致 ,这样也方便后面的操作。

 

在这里因为要创建sqlserver的dblink所以勾选sqlserver即可。

然后在这里填写sqlserver数据库的连接信息,现在不填写也可以,之后的配置中也会提到。

之后就进行安装即可,安装到最后的时候会提醒新建监听,可以选择不创建,之后的配置中也会继续提到。

 

gateway安装结束后开始进行配置,

首先进入ORACLE_HOME路径下,也就是oracle安装路径(E:\app\oracle12c\product\12.2.0\dbhome_1)

里面会有一个dg4msql的文件夹,这个里面就是gateway的配置文件。

进入 dg4msql/admin/文件夹后,开始编写配置文件,

首先修改initdg4msql.ora文件,此文件内是sqlserver数据库的连接信息,也就是上面配置sqlserver数据库连接信息的地方

而该文件的命名方式为 initsid.ora,所以 sid_name即为dg4msql。

只需要修改下面这一句 :后面信息分别对应的是 ip:端口//实例名称/数据库名称

HS_FDS_CONNECT_INFO=IP地址:1433//MSSQLSERVER/QZGX_QX_2018

然后保存并退出。

接下来修改listener.ora.sample 

如上图所示配置即可,仅需要修改的地方即为oracle_home的路径信息。

LISTENER =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
 )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=E:\app\oracle12c\product\12.2.0\dbhome_1)
         (PROGRAM=dg4msql)
      )
  )

之后就是tnsnames.ora.sample文件。

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  ) 

也如上图所示编写即可。

划重点:上面两个文件的修改并没有什么实质性作用,只是为了接下来配置文件修改的方便。

 

下一步也是最关键的一步 。

修改原oracle的listener.oratnsnames.ora文件

进入oracle_home/network/admin文件夹(E:\app\oracle12c\product\12.2.0\dbhome_1\network\admin)

只需要添加上图框起来的信息即可

    (SID_DESC=
       (SID_NAME = dg4msql)
       (ORACLE_HOME = E:\app\oracle12c\product\12.2.0\dbhome_1)
       (PROGRAM = dg4msql)
      )    

而此段信息就是来自于之前编辑的gateway里面的listener.ora.sample信息。

然后在tnsnames.ora中添加

 

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  ) 

此段信息同样来自tnsnames.ora.sample。

至此,所有配置文件修改完成。

然后 win+r -> cmd  ->lsnrctl stop -> lsnrctl start -> lsnrctl status 

这时候你会看到有一个dg4msql的监听实例 

然后即可使用命令创建dblink

create PUBLIC database link TOQZGX_QX_2018 connect to "sa" identified by "Aa111111"  using 'dg4msql' ;

dblink创建成功

然后可以通过以下命令去访问sqlserver数据库

SELECT * FROM gs_etps_info@TOQZGX_QX_2018;

 

至此oracle到sqlserver的dblink已创建完成。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐