好好学习,天天向上

--每天都有好心情
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

oracle 网关

Posted on 2007-04-07 10:27  凤麟  阅读(839)  评论(0)    收藏  举报
    网关分为透明网关,过程网关,访问管理器(用于AS/400),普通连接。而Oracle提供了一套开放的网关作为异构分布式环境中的连接解决方案。这些网关包括oracle透明网关,oracle过程网关和Access Manager。他们的主要优点有:
    集成许多数据源--这些网关集成异构数据和应用程序,而不管他们的位置,操作系统,存储格式或所用网络。
    全功能访问--网关扩展了oracle9i的特性和功能,使得任何可以访问oracle数据的应用程序或终端用户都可以透明的访问存储在非oracle中的数据。
    投资保护--网关保留了你现在的数据,应用程序,硬件和专门技能上的投资,并提高了生产效率,因为所有的数据都是现成的,这就不必人工翻译许多来自数据源的消息。
    简易性--网关易于安装,配置和维护。
   透明网关:从历史上讲,oracle透明网关已经成为主要的互操作解决方案。透明网关使oracle应用程序能够访问和处理非oracle系统的数据。这些网关从提供了一个异构分布式环境的oracle数据库对任意数量的非oracle系统的访问。
   过程网关:用于APPC的oracle过程网关为任意平台上的oracle应用程序提供了对大型机上的非oracle事务,数据库和文件系统的访问。在目标大型机上不需要任何oracle代码。该网关使用远程过程调用(RPC)处理,能访问与你的企业级SNA网络连接的任何系统。这允许客户利用他们在现有事务处理中的投资,同时提供向新的分布式环境转移的能力。
Access Manager(用于AS/400):使AS/400上的SQL应用程序能够访问和修改oracle数据库中的数据。
    下面以oracle连接sql server为例讲述以下oracle透明网关的使用。
第一个例子在一台机器上。测试环境:oracle10.0.1+WIN2000 Professional+SQL Server2000 测试目标:通过oracle数据库,操作SQL Server里面的OA数据。
1。在Oracle_home/tg4msql/admin下创建文件initOA.ora,文件内容如下:

HS_FDS_CONNECT_INFO = "SERVER=localhost;DATABASE=oa"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
2。修改oracle_home/NETWORK/admin/listener.ora,向SID_LIST_LISTENER段增加:

SID_LIST_LISTENER =
(SID_LIST =
.......

(SID_DESC =
(SID_NAME = oa)
SID_LIST_LISTENER =
(SID_LIST =
.......
(SID_DESC =
(SID_NAME = oa)
(ORACLE_HOME = D:/oracle/product/10.1.0/Db_1)
(PROGRAM = tg4msql)
)
...........
)
oracle_HOME = D:/SID_LIST_LISTENER =
(SID_LIST =
.......
(SID_DESC =
(SID_NAME = oa)
(ORACLE_HOME = D:/oracle/product/10.1.0/Db_1)
(PROGRAM = tg4msql)
)
...........
)

(PROGRAM = tg4msql)
)

...........
)
保存后,重启TNSlistener
3。修改oracle_home/network/admin/tnsname.ora,增加下面一段:

oa =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA=(SID = oa))
(HS = OK)
)
)

4。创建DBLINK,连接到OA数据库(和oracle数据库一样的语法)

create database link OA
connect to username identified by password
using 'oa'

注意这里的usernamepassword是登陆SQLSERVER中的用户和密码,不是oracle的。
5。测试以下:select×from表名@oa
二、下面是三台网络机器的配置:职责和iP如下:

机器1(172.31.100.1):SQL Server 2000
机器2(172.31.100.2):透明网关服务器
机器3(172.31.100.3):ORACLE数据库服务器
注意,这个时候“Oracle Transparent Gateway”要安装在机器2上,不能安装在机器3上。下面是步骤,跟单机一样的,但要作一些调整:
1.(这一步要在机器2,IP为172.31.100.2上操作)在$oracle_home/tg4msql/admin下创建文件initOA.ora,文件里的内容如下:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = "SERVER=172.31.100.1;DATABASE=oa"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
2.(这一步要在机器2,IP为172.31.100.2上操作)修改$oracle_home/NETWORK/ADMIN/listener.ora,向SID_LIST_LISTENER段增加:
SID_LIST_LISTENER =
(SID_LIST =
.......

机器1(172.31.100.1):SQL Server 2000
机器2(172.31.100.2):透明网关服务器
机器3(172.31.100.3):ORACLE数据库服务器
注意,这个时候“Oracle Transparent Gateway”要安装在机器2上,不能安装在机器3上。下面是步骤,跟单机一样的,但要作一些调整:

1.(这一步要在机器2,IP为172.31.100.2上操作)在$oracle_home/tg4msql/admin下创建文件initOA.ora,文件里的内容如下:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = "SERVER=172.31.100.1;DATABASE=oa"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
2.(这一步要在机器2,IP为172.31.100.2上操作)修改$oracle_home/NETWORK/ADMIN/listener.ora,向SID_LIST_LISTENER段增加:
SID_LIST_LISTENER =
(SID_LIST =
.......
(SID_DESC =
(SID_NAME = oa)
(ORACLE_HOME = D:/oracle/product/10.1.0/Db_1)
(PROGRAM = tg4msql)
)
...........
)
保存后,重新启动TNSListener

3.(这一步要在机器3,IP为172.31.100.3上操作)修改$oracle_home/NETWORK/ADMIN/tnsnames.ora,增加这一段:
oa =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.31.100.2)(PORT = 1521))
(CONNECT_DATA=(SID = oa))
(HS = OK)
)
)
4.(这一步要在机器3,IP为172.31.100.3上操作)创建DBLINK,连接到OA数据库(跟ORACLE数据库一样的语法)
create database link OA
connect to username identified by password
using 'oa'
注意这里的username和password是登陆SQLSERVER中的用户和密码,不是ORACLE的!
5.(这一步要在机器3,IP为172.31.100.3上操作,当然也可以在另外一些客户端机器上连接到172.31.100.3的ORACLE数据库上执行这个SQL)测试一下
select *from 表名@oa
注意:使用透明网关只可以用标准的DML;
             服务器可以是三个也可以是二个还可以是一个;但是服务器二即网关所在服务器必须windows nt/2000 server 平台;
              透明网关可以同时连接多个sqlsvr,方法是加入多个SIDLIST和相应的initSID_NAME.ora配置文件;
             可能会遇到中文字符显示成乱码的情况,这可能是由于sqlsvr的服务器和客户端的程序不是一个版本引起的。