oracle想要通过dblink去访问sqlserver数据库,这时候就需要一个oracle软件,
透明网关(
Transparent Gateway
)
下面是oracle12c的透明网关下载地址。
链接:https://pan.baidu.com/s/1s8xKDI6SapDSbndn8_Greg
提取码:epvu
如果失效或者打不开链接的话可以私信我或者评论区留言都可以。
我试验的环境是
sqlserver2008
及
oracle12c
,全部在
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数据库连接信息的地方
而该文件的命名方式为
init
sid
.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.ora
及
tnsnames.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已创建完成。