oracle11g gateway for sql server2005配置

最近一个项目用到了透明网关,这里把配置过程简单记录下来,供大家参考。

oracle的透明网关是oracle直接访问异构数据库的利器。在9i中,透明网关是包含在数据库安装程序中的,在安装数据库软件过程中可以选择;10g和11g中,oracle把透明网关独立出来,需要单独下载安装。

本文主要讨论在oracle下如何配置透明网关去访问sqlserver数据库。在11g之前,for sqlserver的透明网关只能安装在windows操作系统上,从11g开始,for sqlserver的透明网关也可以安装在linux/unix系统中。

在本例中,涉及到二个服务器:
ORACLE DB服务器: OS: solaris + ORACLE 11060 IP: 10.10.10.1

SQLSERVER服务器: OS: WINDOWS 2003 + SQLSERVER 2005 IP: 10.10.10.2

[@more@]

如果ORACLE DB服务器操作系统是WINDOWS的话,可以把透明网关安装在ORACLE数据服务器上。

下面是详细步骤:
一、透明网关连接到一个sqlserver上

1、下载透明网关
11g下,透明网管是一个单独的组件,需要单独下载安装。

2、安装
在10.10.10.1安装透明网关:
解压后,进入目录,点击setup.exe,启动安装界面,安装oracle transparent gateway for microsoft sql server;
下一步,输入sqlserver地址和sqlserver 数据库名,这里你可以输入正确的,也可以随便输入,或者留空,我们可以安装完成后再配置。
安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。

3、在10.10.10.1配置透明网关参数文件

默认情况下,安装透明网关时会生成一个默认的参数文件:initdg4msql.ora,它的sid是tg4mssql,你可以使用这个文件,也可以新建一个文件。本例选择新建文件。
进入$ORACLE_HOME/dg4msql/admin目录我这里是:/oracle/product/11.1.0.6/Db_1/dg4msql/admin

新建这个文件:initjss.ora,把它理解为oracle的参数文件就可以,文件格式为init.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= gfyxxstjxt:1433//jss

# alternate connect format is hostname/serverinstance/databasename
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

HS_FDS_CONNECT_INFO的设置有多种格式,如:
HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433,如:
HS_FDS_CONNECT_INFO=sqlserver.jss

注意:这里面/etc/hosts文件的内容是
::1 localhost
127.0.0.1 localhost
10.10.10.1 i2dev i2dev.hisense.com loghost
10.10.10.2 gfyxxstjxt

4、在10.10.10.1配置监听
进入$ORACLE_HOME/network/admin下,编辑listener.ora文件:
# listener.ora Network Configuration File: /oracle/product/11.1.0.6/Db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = i2dev)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = Jacktj)
(ORACLE_HOME = /oracle/product/11.1.0.6/Db_1)
(PROGRAM = dg4msql)
)
(SID_DESC =
(SID_NAME = jss)
(ORACLE_HOME = /oracle/product/11.1.0.6/Db_1)
(PROGRAM = dg4msql)
)
)

5、启动监听
/oracle/product/11.1.0.6/Db_1/bin/lsnrctl start

/oracle/product/11.1.0.6/Db_1/bin/lsnrctl start
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=suk)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "jss" 包含 1 个例程。
例程 "jss", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

至此,在透明网关上的工作就算完成了。

6、在10.10.10.1上配置tnsname.ora

添加如下内容:

db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.41.123)(PORT = 1521))
)
(CONNECT_DATA = (SID = jss))
(HS=OK)
)

7、在10.10.10.1创建数据库链接

SQL> create database link dbjss connect to 用户名 identified by "密码" using 'db';

8、在10.10.10.1测试连接

SQL> select * from dbo.sysobjects@dbjss;

当从oracle数据库上发出这个sql时,实际上通过tnsname.ora配置的jss信息转到10.10.10.2上,当10.10.10.2的监听监听到10.10.10.1的请求时,再次通过initjss.ora配置的HS_FDS_CONNECT_INFO信息转到sqlserver数据库上,最终把用户需要的数据返回。

如果这个sql有记录返回,说明透明网关没有问题。


总结一下:

在这次安装过程中遇到了两个错误:

1.ORA-28500 这个问题是initdg4msql.ora文件中的HS_FDS_CONNECT_INFO参数要写成如下格式:

HS_FDS_CONNECT_INFO=://
并且端口一定要指定
2.ORA-28545 这个问题是tnsnames.ora和listener.ora中的SID名称和要和init.ora文件名中的SID对应

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7490392/viewspace-1030128/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7490392/viewspace-1030128/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值