Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

5    938    3

Tags:

👉 本文共约3588个字,系统预计阅读时间或需14分钟。

简介

在企业里,通常可能有多种数据源,并且他们是异构的。所谓的异构就是说他们是不同的产品,例如: Oracle Database, MS SQL Server, IBM DB2, Sybase ASE, MySQL, Postgre SQL, Excel, XML, Txt或者CSV等用于存放数据的产品或者文件。

oracle 透明网关(Transparent gateways)是Oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。因此透明网关也是Oracle数据仓库和数据迁移中的一个重要组成部分。透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。

配置后的sql查询的处理流程如下:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

下载

安装包和数据库的安装包在一块,最新的软件下载:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

历史版本下载:https://edelivery.oracle.com

历史版本下载需要登录Oracle账号,这个不需要mos即可,自己注册一个就行。

然后搜索“12.2.0.1 gateway”,

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

然后点击找到的项目,加入下载目录,然后点击Continue:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

由于安装网关需要有数据库作为基础,所以这里带出来2个软件,但是我DB已经安装过了,所以,这里只下载Gateways就行:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

点击Download会下载如下的下载管理器:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

打开即可:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

下一步会自动下载:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

还能看到下载性能:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

还能设置限速:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

等待下载完成即可。

安装

图形界面安装

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

需要配置网关的自己的监听,注意端口不能重复即可:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

执行root.sh脚本:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

静默安装

执行过程:

配置

Oracle连接到SQL Server

配置gateway的监听

透明网关目录文件夹$TNS_ADMIN=/u01/app/gateway/dg4msql/admin

其中listener.ora便是监听文件,配置他即可。

配置gateway数据库参数

透明网关目录文件夹$TNS_ADMIN=/u01/app/gateway/dg4msql/admin

Admin文件夹下默认存在安装透明网关时的数据库文件initdg4msql.ora。

数据文件命名规则:init + SID(SID就是上一步中配置的SID_NAME),需要多个连接就建多个文件即可。

只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:[hostname:port]/serverinstance/databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2005默认为1433.serverinstance是SQL Server的实例名,一般空着就行。Databasename是SQL Server的数据库名。因为我们在安装过程中指定了主机名和数据库名,这里已经有信息了。

配置oracle服务器的服务名配置文件tnsnames.ora

(HS=OK) #这个很重要表示异构数据库

在oracle数据库中测试:

执行的查询操作,表名需要带双引号,因为MySQL和SQL server默认表名是区分大小写,而oracle是不区分大小写的(oracle默认自动转换成大写)。

Oracle连接到MySQL

参考文档:

http://blog.itpub.net/26736162/viewspace-2144661/

http://blog.itpub.net/26736162/viewspace-2644037/

Detailed Overview of Connecting Oracle to MySQL Using DG4ODBC Database Link (Doc ID 1320645.1)

https://www.xmmup.com/detailed-overview-of-connecting-oracle-to-mysql-using-dg4odbc-database-link-doc-id-1320645-1.html

Oracle使用DG4ODBC数据网关连接其它非Oracle数据库,可以不用安装前边的Gateways网关,其原理图如下:

Oracle通过Gateways透明网关连接到SQL Server数据库(dblink)

从上图可知,Oracle连接MySQL需要涉及到如下组件:DG4ODBC, ODBC Driver Manager, ODBC Driver。

配置过程如下:

执行过程:

报错ORA-28511和ORA-02063

若Oracle连接MySQL报错:

原因:mysql-connector-odbc驱动版本太低。

解决:

总结

1、对于SQL Server, DB2, Sybase等数据库需要安装透明网关软件才能通过dblink访问

2、对于MySQL、PG可以直接进行配置,然后通过dblink访问

3、若Oracle是21c版本,则由于Oracle 21c的默认只读主目录特性,则在配置透明网关文件时,initmyodbc5.ora文件不应放在$ORACLE_HOME/hs/admin目录下,而应该放在$ORACLE_BASE/homes/OraDB21Home1/hs/admin目录下:

有关只读目录请参考:https://www.xmmup.com/oracle-21czhongdezhiduoraclezhulutexingrooh.html

4、dg4odbc日志文件在hs/log/目录下。

参考

https://blog.csdn.net/cymm_liu/article/details/38473851

https://www.cnblogs.com/BinBinGo/p/12020246.html

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/gmswn/index.html

http://blog.itpub.net/26736162/viewspace-2144661/

http://blog.itpub.net/26736162/viewspace-2644037/

https://www.cnblogs.com/kerrycode/p/8487671.html

How to Make a Silent Install of Oracle Database Gateway 12c or higher (Doc ID 2639375.1)

How to Resolve Common Errors Encountered while using Database Gateways (DG4IFMX, Dg4MSQL, DG4SYBS), DG4ODBC or Generic Connectivity (文档 ID 234517.1)

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

5 条回复

  1. 头像 丘处机说道:

    Oracle 21c 通过gateway 连接 postgresql研究过没。我这正常配置,总是报错:
    ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
    connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
    Is the server running locally and accepting connections on that socket?
    {08001,NativeErr = 101}
    ORA-02063: 紧接着 4 lines (起自 HGDB)

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部