创建oracle到sql server的链接服务器,实现跨数据库间的访问

核心是使用透明网关进行实现

 

环境信息:

 

Oracle11g:

ip:47.94.102.147   端口:1521

 

Sql Server 2012 :

ip:106.54.226.253  端口:1433

用户名:SA       

要链接的数据库名称:CodeFirstDb

 

透明网关:Oracle gateway11

Ip:106.54.226.253  端口:1521

SID:CodeFirstDb

 

注意:1  透明网关要安装在Sql  Server端,网上有很多博客的都是安装在Oracle端,我折腾了好久都没有成功

           2  电脑一定要保证端口1521开放(即允许入站和出站),不然会配置到你怀疑人生,由于我的测试环境是: 安装sql server的是腾讯云服务器、安装Oracle是阿里云的服务器,腾讯云的端口忘记开了,所以折腾了好久,故一定要保证1521端口开放,文章中会有提及

 

 

 

一    安装透明网关

1   下载透明网关,下载地址:

链接:https://pan.baidu.com/s/1W6rEww1_NxxsMXYi0BOKPQ 
提取码:sac2

或者:

链接:https://pan.baidu.com/s/14i3eR5qoqr-BNKRR0mGQ2Q 
提取码:b5zv 

或:

 http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_gateways.zip

2  解压下载的透明网关,并找到压缩包内的exe文件待安装,如下图:

 

3  安装的具体步骤如下:

 

设置安装目录,并记住改目录,如下图:

安装sql  server组件,如下图:

 

设置sql  server 的ip地址和要链接sql  server那个数据库的名称,如下图:

 

由于要手工配置,所以上图完毕后,会弹出下图的配置对话框,点击取消

 

后面提示的警告框一律点取消

 

 

二   配置透明网关

 

1  来到透明网关的安装目录:C:\product\11.2.0\tg_1\dg4msql\admin,并找到改目录下的配置文件initdg4msql.ora,由于我们这里要改服务名(SID)为CodeFirstDb,方便知道是链接到那个数据库,所以把配置文件initdg4msql.ora的名称改为initCodeFirstDb.ora,并打开改配置文件如下:

配置格式为:格式是:[hostname:port]/serverinstance/databasename,当然有些可以省略,由于刚才在安装透明网关时已经配过了,这里就不用再配置了

 

2  在目录下透明网关的安装目录:C:\product\11.2.0\tg_1\NETWORK\ADMIN并新建配置文件listener.ora,并配置如下:

 

为了方便复制,该文件的内容为:

# listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
 
SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
     (GLOBAL_DBNAME = CodeFirstDb)
     (PROGRAM = dg4msql)
     (SID_NAME = CodeFirstDb)
     (ORACLE_HOME = C:\product\11.2.0\tg_1)
    )
  )
 
    
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.0.16)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 
ADR_BASE_LISTENER = C:\product\11.2.0\tg_1

3  启动透明网关监听(为了保证关机后下次开机还能使用,要设置后台服务OracleOraGtw11g_home1TNSListener自启动,已经自启动的忽略)

使用lsnrctl start,如下图:

 

 

 

三   Oracle数据库端的配置

 

1   找到Oracle的安装目录

可以查询注册表,找到有Oracle字样的,如下图:

 

故可知Oracle的安装路径为:C:\app\Administrator\product\11.2.0\dbhome_1

 

2   在目录下C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN找到配置文件tnsnames.ora,并新增配置如下:

 

为了方便复制,新增的内容为:


CodeFirstDb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =106.54.226.253)(PORT = 1521))
    (CONNECT_DATA=(SID=CodeFirstDb))
    (HS=OK)
  )

 

3  测试是否配置成功:

tnsping  CodeFirstDb

如下图:

 

注意:一定要保证两台机器的1521端口都开放

由于我的腾讯云服务器的端口1521没有开放,就在这里折腾了好久,开放腾讯云的1521端口如下图:

 

 

 

四    配置oracle 到sql server的链接服务器:

 

sql为:

create database link DBLink名称
connect to SQL Server账户 identified by "SQL Server密码"
using 'SID';

 

如:

 

 

最终效果如下图:

oracle中查询:

 

sql  server中查询:

 

 

 

 

好了,文章到此结束

 

 

参考文章:https://www.cnblogs.com/chenyanbin/p/11291752.html(把透明网关与Oracle安装在一起,不过我按照博主的步骤没有成功,可以参考一下)

                  https://www.cnblogs.com/xqzt/p/5688659.html

 

额外送的,比较好使的命令

1  重启监听:

lsnrctl reload

特别是在改了配置文件后有用,如下图:

 

2   查看监听的情况:

lsnrctl status

 

3   不想手动配置上面的配置文件,也可以通过界面的方式,两个工具可以了解一下:

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxy2847225301

测试使用

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值