Oracle 透明网关安装

Oracle 11g透明网关连接Sqlserver

oracle 透明网关是oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。配置后的sql查询的处理流程,如下:

Oracle 透明网关安装_第1张图片

一、环境

平台

数据库

IP地址

Redhat 6.6

Oracle 11.2.0.4

155.155.154.154

Win2008

MSSQL 2008

172.16.20.217

Oracle 透明网关安装_第2张图片

Oracle 透明网关安装_第3张图片

注:GATEWAY_HOME=C:\product\11.2.0\tg_1

安装的时候,首先安装完动态监听后续才能配置静态监听

①配置Gateway的初始参数文件

在C:\product\11.2.0\tg_1\dg4msql\admin目录下,默认有一个initdg4msql.ora,此文件命名格式为:init.ora,可以使用initdg4msql.ora默认参数文件,也可以自己创建。

这里我们创建一个initzgps.ora参数文件,内容如下:

# This is a customized agent init file that contains the HS parameters

# that are needed for the Database Gateway for Microsoft SQL Server

#

# HS init parameters

#

HS_FDS_CONNECT_INFO=172.16.20.217:1433//实例名/数据库名

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

如果查询报错

ERROR at line 1:

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:

[Oracle][ODBC SQL Server Wire Protocol driver]General error. recvfrom failed:

10054 {HY000}

ORA-02063: preceding 2 lines from PACS

 下面两种格式都试下

HS_FDS_CONNECT_INFO=172.16.20.217:1433//实例名/数据库名

HS_FDS_CONNECT_INFO=[172.16.20.217]/实例名/HINAMIIS_Domain

②配置Gateway的网络监听文件C:\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora

添加如下内容:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = HINAMIIS_Domain) #此处为配置文件SID,要与前面创建的init HINAMIIS_Domain.ora中的名字对应

      (ORACLE_HOME = C:\product\11.2.0\tg_1)

      (PROGRAM = dg4msql)  #此处为配置文件目录名称,都为dg4msql,不需变更

    )

  )

如果报这个错ORA-28545 文档 ID 1129415.1

Oracle 透明网关安装_第4张图片

可以尝试把PROGRAM这一栏写上全路径试试

重启透明网关监听器

点击C:\product\11.2.0\tg_1\BIN\LSNRCTL.EXE,进入下列界面:

Oracle 透明网关安装_第5张图片

配置完后,在Oracle端中的tnsnames文件中添加连接串:

conn_mssql =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.20.217)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SID = HINAMIIS_Domain)

    )

    (HS = OK)

  )

在oracle数据库中通过之前编辑的连接串,创建连接SQL server的dblink,然后测试是否成功。

create public database link pacs connect to sa identified by "######" using 'conn_mssql';

  • select * from tablename@pacs;

你可能感兴趣的:(日常运维,oracle,数据库,dba,linux,sqlserver,透明网关)