Oracle透明网关(gateway)连接SQL Server 2008R2

Oracle gateway 连接SQL Server 2008R2

  • 1. 环境说明
    • 1.1 本文声明
    • 1.2 软件版本及主机信息
  • 2. SQL Server 2008R2安装与配置
  • 3. Oracle gateway安装与配置
    • 3.1 gateways安装
    • 3.2 gateway安装目录下的`dg4msql\admin`目录中相关配置
      • 1. 检查initdg4msql.ora文件中的配置信息
      • 2. 检查listener.ora.sample文件中的配置信息
      • 3. 检查tnsnames.ora.sample文件中的配置信息
    • 3.3 gateway安装目录下的`NETWORK\ADMIN`目录中相关配置
      • 1. 修改listener.ora文件,如果没有,则新建并添加下面内容
      • 2. tnsnames.ora文件配置,此文件不存在则需要手动创建,内容如下:
  • 4. Oralce安装与配置
    • 4.1 Oracle安装版本
    • 4.2 Oracle中gateway的配置
      • 1. 修改listener.ora文件内容
      • 2. 修改tnsnames.ora文件内容
  • 5. 在Oracle数据库中传教DBLink测试
  • 6. Oracle与gateway安装在同一主机上的简要配置步骤

1. 环境说明

1.1 本文声明

  1. SQL Server 2008R2、Oracle、gateways等分别安装在三台Windows主机上;
  2. SQL Server 2008R2与Oracle安装过程这里不再阐述,主要介绍gateway安装及相关配置;
  3. 本文只介绍配置单gateway连接SQL Server;
  4. 配置多个gateway连接SQL Server请参考:
    Oracle官方文档:http://docs.oracle.com/cd/E11882_01/gateways.112/e12061/conf_sql.htm#OTGIW1010

1.2 软件版本及主机信息

软件 版本 主机 IP
SQL Server 数据库 windows_server_2008_r2_enterprise_build_x64_dvd_617396 192.168.1.253
gateways win64_11gR2_gateways 192.168.1.202
Oracle 数据库 win64_11gR2_database 192.16.1.254

2. SQL Server 2008R2安装与配置

  • 主机IP:192.168.1.253
  • 数据库:gatewayDB
  1. 安装过程略
  2. 新建数据库,名称为:gatewayDB
  3. 新建测试表,表名为:tb_user
    Oracle透明网关(gateway)连接SQL Server 2008R2_第1张图片

3. Oracle gateway安装与配置

3.1 gateways安装

  1. gateways解压后的目录;
    Oracle透明网关(gateway)连接SQL Server 2008R2_第2张图片
  2. 双击steup 安装,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第3张图片
  3. 点击下一步,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第4张图片
  4. 选择完安装目录(本文安装到C:\OracleGateways\product\11.2.0\tg_1目录下),点击下一步,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第5张图片
  5. 勾选Oracle Database Gateway fo Microsoft SQL Server 11.2.0.1.0 后,点击下一步,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第6张图片
  • SQL Server 数据库服务主机名:就是安装SQL Server 2008R2数据库的主机Ip地址
  • SQL Server 实例名:这里使用默认实例为(MSSQLSERVER)
  • SQL Server 数库名:在SQL Server 2008R2数据库中创建的数据名称,这里为(gatewayDB)
  • 这些配置安装后也可修改
  1. 填写完上面信息后,点击下一步,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第7张图片

  2. 点击安装,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第8张图片

  3. 在弹出的配置框中,点击下一步,如下图:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第9张图片

  4. 监听名称默认,下一步
    Oracle透明网关(gateway)连接SQL Server 2008R2_第10张图片

  5. 选择 TCP 协议,下一步
    Oracle透明网关(gateway)连接SQL Server 2008R2_第11张图片

  6. 默认使用标准端口号1521,下一步
    Oracle透明网关(gateway)连接SQL Server 2008R2_第12张图片

  7. 弹出请使用另一个端口号 窗口,原因是安装gateway的主机中之前就安装过Oracle数据库,所以使用默认1521端口时提示端口占用,这里直接点;如果第一次安装不会弹出此窗口。
    Oracle透明网关(gateway)连接SQL Server 2008R2_第13张图片
    13.点击完成
    Oracle透明网关(gateway)连接SQL Server 2008R2_第14张图片

  8. 出现下面窗口,表示gateway安装成功,点击退出完成安装
    Oracle透明网关(gateway)连接SQL Server 2008R2_第15张图片

  9. 安装成功后可在系统开始菜单查看到如下信息:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第16张图片

3.2 gateway安装目录下的dg4msql\admin目录中相关配置

  • 注:如果安装过gateway的主机在安装gateway之前已经安装过Oracle,则先改下环境变量,将Oracle的环境变量放在gateway的环境变量之前,否则导致Oracle相关命令无法执行,如下:
C:\Oracle\product\11.2.0\dbhome_1\bin;\OracleGateways\product\11.2.0\tg_1\bin;...
  • 查看C:\OracleGateways\product\11.2.0\tg_1\dg4msql\admin目录下是否有initdg4msql.oralistener.ora.sampletnsnames.ora.sample等三个文件,一般在gateway安装的最后几步中会配置gateway的监听,监听配置后会产生这个三个文件,如果没有则新建这三个文件,并按照下面的内容配置即可,如果有则不做任何更改。

1. 检查initdg4msql.ora文件中的配置信息

  1. 文件位置:C:\OracleGateways\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora
    2.若initdg4msql.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=[192.168.1.253]/MSSQLSERVER/gatewayDB --默认的,会报ORA-28500错误
HS_FDS_CONNECT_INFO="192.168.1.253:1433;DATABASE=gatewayDB"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
  1. 如果HS_FDS_CONNECT_INFO=[192.168.1.253]/MSSQLSERVER/gatewayDB这样配置,则通过Oracle的DBLINK连接是会包OAR-28500的错误,错误提示如下:
    Oracle透明网关(gateway)连接SQL Server 2008R2_第17张图片
    解决方法: 使用HS_FDS_CONNECT_INFO="192.168.1.253:1433;DATABASE=gatewayDB"这种配置代替.

2. 检查listener.ora.sample文件中的配置信息

  1. 文件位置:C:\OracleGateways\product\11.2.0\tg_1\dg4msql\admin\listener.ora.sample
  2. 若listener.ora.sample文件中已经有下面内容则无需修改
# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

LISTENER =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
 )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=C:\OracleGateways\product\11.2.0\tg_1)
         (PROGRAM=dg4msql)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0 

3. 检查tnsnames.ora.sample文件中的配置信息

  1. 文件位置:C:\OracleGateways\product\11.2.0\tg_1\dg4msql\admin\tnsnames.ora.sample
# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an HS Agent

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  ) 

3.3 gateway安装目录下的NETWORK\ADMIN目录中相关配置

  • listener.ora文件位置:C:\OracleGateways\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora
  • tnsnames.ora文件位置:C:\OracleGateways\product\11.2.0\tg_1\NETWORK\ADMIN\tnsnames.ora

1. 修改listener.ora文件,如果没有,则新建并添加下面内容

# listener.ora Network Configuration File: C:\OracleGateways\product\11.2.0\tg_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
#新增SID_LIST_LISTENER
SID_LIST_LISTENER =  
  (SID_LIST =
    (SID_DESC =
	  # dg4msql这个是默认名称,用来配置远程SQL SERVER
      (SID_NAME = dg4msql)
      (ORACLE_HOME = C:\OracleGateways\product\11.2.0\tg_1)
      (PROGRAM = dg4msql)   
    )
  )
  
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =      
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
	   #注意这里的ip与端口是gateways的ip及端口
	  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
    )
  )

2. tnsnames.ora文件配置,此文件不存在则需要手动创建,内容如下:

# tnsnames.ora Network Configuration File: C:\OracleGateways\product\11.2.0\tg_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
dg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
	   #这里HOST为gateways主机的ip及端口
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521)) 
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  )

4. Oralce安装与配置

  • Oracle安装过程略。

4.1 Oracle安装版本

Oracle透明网关(gateway)连接SQL Server 2008R2_第18张图片

4.2 Oracle中gateway的配置

  • 修改listener.ora文件:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
  • 修改tnsnames.ora文件:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

1. 修改listener.ora文件内容

# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
#找到SID_LIST_LISTENER配置,并添加gateways的SID_DESC
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
    #添加gateway的SID_DESC内容
    (SID_DESC =
      (SID_NAME = dg4msql)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4msql)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = D:\app\Administrator

2. 修改tnsnames.ora文件内容

# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
# 添加DG4MSQL内容
DG4MSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      #注意这里的HOST为gateway安装主机的ip及端口
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

注意:如果配置错误,可能出现ORA-28545的错误,如下图:
Oracle透明网关(gateway)连接SQL Server 2008R2_第19张图片
出现这种问题的原因有可能是监听、端口配置错误或dg4msql配置错误,仔细检查配置正确即可解决。

5. 在Oracle数据库中传教DBLink测试

--创建DBLINK,第一个sa是SQL Server数据库登录的用户名,第二个sa为密码,密码要用双引号引起来
create database link gatewayDbLink
  connect to sa identified by "sa"
  using 'dg4msql';

--测试
select * from tb_user@gatewayDbLink;  

6. Oracle与gateway安装在同一主机上的简要配置步骤

1.操作系统的环境变量中:Oracle的bin环境变量配置要放到gateways环境变量之前

2.gateways中,在dg4msql\admin文件夹下修改的文件有三个:
(1).initdg4msql.ora ---改为如下内容:
HS_FDS_CONNECT_INFO="192.168.1.253:1433;DATABASE=FMEA"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
(2).listener.ora.sample ---执行过典型配置后不用改,里面内容为:
LISTENER =
 (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
 )

SID_LIST_LISTENER=
  (SID_LIST=
      (SID_DESC=
         (SID_NAME=dg4msql)
         (ORACLE_HOME=D:\app\Administrator\product\11.2.0\tg_1)
         (PROGRAM=dg4msql)
      )
  )

#CONNECT_TIMEOUT_LISTENER = 0 

(3).tnsnames.ora.sample ---执行过典型配置后会有如下内容因此改文件不用改

dg4msql  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=dg4msql))
    (HS=OK)
  ) 

3.gateways中,在NETWORK\ADMIN文件夹下修改的文件有两个
(1).listener.ora ----在最前面添加如下内容:
  ---开头新增的内容
SID_LIST_LISTENER =  
  (SID_LIST =
    (SID_DESC =
	#这个是默认名称,用来配置远程SQL SERVER
      (SID_NAME = dg4msql)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\tg_2)
      (PROGRAM = dg4msql)   
    )
  )
 ---修改的
 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.109)(PORT = 1522)) #注意这里的ip与端口是gateways的ip及端口
    )
  )
  
(2).tnsnames.ora --(次文件一般不存,需手工创建),内容如下: 
dg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.109)(PORT = 1522)) #这里为gateways的ip及端口
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  )

------


4.Oracle安装目录即:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下修改的文件有两个:
(1).listener.ora ---找到SID_LIST_LISTENER配置,并添加gatewaysde的SID_DESC

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
	#在这里新增下面的SID_DESC描述
    (SID_DESC =
      (SID_NAME = dg4msql)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = dg4msql)
    )
  )

(2).tnsnames.ora ---在文件最后新增下面的配置
dg4msql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1522)) #注意这里为gateways所在服务器的ip及端口
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dg4msql)
    )
    (HS = OK)
  )


4.配置完成后创建Oracle DBLink 测试

(1).创建DBLink:
create database link linkdbs
  connect to sa identified by "sa"
  using 'dg4msql';

(2).测试:

select * from TB_TEST@linkdbs;

你可能感兴趣的:(Oracle)