Oracle学习系列—Oracle透明网关 for SQL Server

ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),利用透明网关可以实现和SQL SERVERSYBASEDB2等多种数据库的互联。因此透明网关也是Oracle数据仓库和数据迁移中的一个重要组成部分。

透明网关的体系结构也很简单,在ORACLESQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLESQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。

本文ORACLESQL SERVER数据库在同一台主机上;

SQL Server版本为SQL Server 2000

Oracle版本为Oracle9i 9.2.0.1

操作系统版本为WindowsXP

[@more@]

透明网关的安装和配置

1、运行Oracle Installation ProductsàUniversal Installer进行透明网关组件的安装

2、选择自定义

Gateway

3、选择要安装的透明网关

Gateway

4、系统提示配置

gateway

5、查看C:oracleora92tg4msqladmin目录

tg4msql

├─admin --透明网关配置目录

tg4msql_tx.sql

├─bin --系统配置的东西

├─nls --定义错误的消息

├─eng

└─jpn

├─demo --提供了一些在SQLServer环境下得demo

├─html --提供了一些SQLServerOracle的参考文档

└─trace --提供系统跟踪情况

6、修改C:oracleora92tg4msqladmininittg4msql.ora

# HS_FDS_CONNECT_INFO="SERVER=host;DATABASE=northwind"

HS_FDS_CONNECT_INFO=host.northwind --hostname.databasename

HS_FDS_TRACE_LEVEL=DEBUG

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

7、修改C:oracleora92networkadminlistener.ora,增加

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = tg4msql)

(ORACLE_HOME = C:oracleora92)

(PROGRAM = tg4msql)

)

)

8、修改C:oracleora92networkadminTnsname.ora,增加

TG4MSQL=

(DESCRIPTION=

(ADDRESS_LIST =

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

)

(CONNECT_DATA=

(SID=tg4msql)

)

(HS=OK)

)

9、重新启动侦听服务

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

C:Documents and SettingsAdministrator>lsnrctl stop

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-10-2007 16:21

:25

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))

命令执行成功

C:Documents and SettingsAdministrator>lsnrctl start

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-10-2007 16:21

:38

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production

系统参数文件为C:oracleora92networkadminlistener.ora

写入C:oracleora92networkloglistener.log的日志信息

监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))

监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))

LISTENER STATUS

------------------------

别名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc

tion

启动日期 14-10-2007 16:21:40

正常运行时间 0 0 小时 0 2

跟踪级别 off

安全性 OFF

SNMP OFF

监听器参数文件 C:oracleora92networkadminlistener.ora

监听器日志文件 C:oracleora92networkloglistener.log

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)))

服务摘要..

服务 "PLSExtProc" 包含 1 个例程。

例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "tg4msql" 包含 1 个例程。

例程 "tg4msql", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "wbq" 包含 1 个例程。

例程 "wbq", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

C:Documents and SettingsAdministrator>lsnrctl status

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-10-2007 16:21

:47

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))

LISTENER STATUS

------------------------

别名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc

tion

启动日期 14-10-2007 16:21:40

正常运行时间 0 0 小时 0 9

跟踪级别 off

安全性 OFF

SNMP OFF

监听器参数文件 C:oracleora92networkadminlistener.ora

监听器日志文件 C:oracleora92networkloglistener.log

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)))

服务摘要..

服务 "PLSExtProc" 包含 1 个例程。

例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "tg4msql" 包含 1 个例程。

例程 "tg4msql", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "wbq" 包含 1 个例程。

例程 "wbq", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

C:Documents and SettingsAdministrator>

10、测试解析状态

C:Documents and SettingsAdministrator>tnsping tg4msql

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 14-10-2

007 16:29:43

Copyright (c) 1997 Oracle Corporation. All rights reserved.

已使用的参数文件:

C:oracleora92networkadminsqlnet.ora

已使用 TNSNAMES 适配器来解析别名

Attempting to contact (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HO

ST= host)(PORT=1521))) (CONNECT_DATA= (SID=tg4msql)) (HS=OK))

OK20毫秒)

11、创建数据库链接

CREATE PUBLIC DATABASE LINK MStest CONNECT TO “sa” IDENTIFIED BY “sa” USING ‘tg4msql’;

12、察看数据库链接

select * from sys.LINK$

13、测试

select * from Customers@MStest;

透明网关配置的疑难问题

配置过程遇到的异常情况:

ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:

[Transparent gateway for MSSQL][H006] The init parameter is not set. Please set it in init.ora file.

ORA-02063: 紧接着2 lines(源于MSTEST

解决过程,请检查以下参数

Listener.ora

PROGRAM 必须为 tg4msql

SID_NAME gateway_sid,也就是说单个透明网关情况下一定是tg4msql,即inittg4msql.ora的名字部分去掉init即可,呵呵

Tnsnames.ora

SIDListener.ora中的SID_NAME

TNS的名称可以随便进行配置。

至于以下这两个区别,我到现在也没搞明白L

HS_FDS_CONNECT_INFO="SERVER=local;DATABASE=northwind"

HS_FDS_CONNECT_INFO=host.northwind

多个透明网关的配置

1、把inittg4msql.ora复制并修改名称为inittg4msql2.ora

2、修改C:oracleora92tg4msqladmininittg4msql2.ora 只修改第一行,服务器和数据库名即可

HS_FDS_CONNECT_INFO=host.pubs --hostname.databasename

3、 修改C:oracleora92networkadminlistener.ora,增加如下注意SID_Name的变化

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = tg4msql2)

(ORACLE_HOME = C:oracleora92)

(PROGRAM = tg4msql)

)

)

4、 修改C:oracleora92networkadminTnsname.ora,增加

TG4MSQL2=

(DESCRIPTION=

(ADDRESS_LIST =

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

)

(CONNECT_DATA=

(SID=tg4msql2)

)

(HS=OK)

)

然后和单个透明网关配置一样,重新启动监听,创建数据库链接,测试。 一切OK!

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

转载于:http://blog.itpub.net/8128313/viewspace-976638/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值