博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置Oracle透明网关用以连接 SQLServer经验总结
阅读量:5050 次
发布时间:2019-06-12

本文共 1884 字,大约阅读时间需要 6 分钟。

一、情景介绍

  业务中设计两个不同的系统,系统1和系统2,两个系统分别使用的是Oracle和SQLServer数据库。现需要在系统1的数据库中直接查询系统2数据库的数据。即在Oracle中执行SQL脚本可以直接查询SQLServer数据库中的数据。Oracle透明网关即Oracle Database Gateway,是Oracle数据库官方提供的一款工具,用于增强访问特定异构数据库的能力。

image.png

  Oracle、网关和SQL Server可以分别安装在任意主机上,只要满足可以网络互通就可以。想要在Oracle中直接查询SQL Server中的数据,需要完成以下步骤(假设Oracle和SQL Server已经安装部署完毕):

  第一步:下载并安装网关;

  第二步:配置网关;
  第三步:配置Oracle数据库的TNS配置;
  第四部:配置SQL Server,使其能够远程连接;(若已经可以远程连接,则跳过)
  第五步:登录Oracle并创建DBlink,测试连接。

二、下载网关并安装

  点击下载:

  安装过程:
  1、运行setup.exe
  2、欢迎页面点下一步
  3、配置主目录页面,名称随意起,路径为网关安装路径,自由选择。下一步;
  4、可用产品组件,选择”for SQL Server”项。下一步;
  5、配置SQL Server数据库信息,分别是SQL Server数据库的主机地址(或主机名),实例名,数据库名;下一步;
  6、摘要页面,显示的安装信息,没问题的话,直接点击安装。等待安装完成。

三、 配置网关信息

  一共需要手工配置两个文件,分别是网关的安装目录中:dg4msql\admin\initdg4msql.oranetwork\admin\listener.ora

  注意,这两个文件可能无法在原位置手工修改的,需要拷贝到其他位置如桌面,进行修改后,覆盖原文件即可

  initdg4msql.ora

  网关工具可以同时配置多个SQL Server数据库实例,每一个实例对应一个这样的文件,此文件的文件名的命名规则为 init + “SID”.ora 其中SID为网关的区别标识,可以自定义,只要能全局唯一就可以,SID默认为dg4msql。此文件中保存着想要跨库连接的SQL Server数据库连接信息。
  具体配置参考下图:

image.png

  listener.ora

  此文件配置这网关的监听服务信息,因为网关需要接收来自Oracle的访问,所以需要配置此文件以保存监听服务信息,等待被访问。配置前,找到安装目录的dg4msql\admin\listener.ora.sample ,这个文件是配置模板,可以参考,或直接拿来稍微修改后使用。

  具体配置参考下图:

image.png

  将以上信息,按照自己的情况修改后,复制文本到network\admin\listener.ora文件中。到此,网关配置完毕,需要到计算机管理中开启网关监听服务。

image.png

  在启动监听服务时可能会遇到弹窗提示:本地计算机上的***服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。解决办法,断开网络重新连接后重试。

四、配置Oracle数据库的TNS配置

  手工修改文件:oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,其格式参考网关安装目录中的模板文件 dg4msql\admin\tnsnames.ora.sample,具体是将配置内容添加到 tnsnames.ora 文件末尾。

image.png

五、配置SQL Server,使其能够远程连接

  打开SQL Server主机中防火墙的1433端口,并配置SQL Server允许其远程连接。具体不做过多介绍。

六、登录Oracle并创建DBlink,测试连接

  执行SQL脚本创建DBlink:

CREATE PUBLIC DATABASE LINK dblink CONNECT TO  “ 用户” IDENTIFIED BY “密码” USING 'tns_name_entry ';

  测试是否可以在Oracle中查询SQL Server中的数据:

SELECT * FROM DUAL@dblink;

  自己总结是为了加深印象,也许其中难免有错误,附上,逐步按照官方教程一定可以帮助你实现跨库需求。

转载于:https://www.cnblogs.com/hudk/p/11208744.html

你可能感兴趣的文章
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>
【NOIP模拟】密码
查看>>
java容器---------手工实现Linkedlist 链表
查看>>
three.js 性能优化的几种方法
查看>>
《梦断代码》读书笔记(三)
查看>>
FreeMarker解析json数据
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
次序+“选择不重复的记录”(3)——最大记录
查看>>
Codeforces 450 C. Jzzhu and Chocolate
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&&打表)
查看>>
JSON、JSONP、Ajax的区别
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>