`

Oracle透明网关 for SQL Server

 
阅读更多

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

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

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

SQL Server 版本为 SQL Server 2000

Oracle 版本为 Oracle9i 9.2.0.1

操作系统版本为 WindowsXP


透明网关的安装和配置

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

2 、选择自定义

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

Gateway

4 、系统提示配置

gateway

5 、查看 C:oracleora92tg4msqladmin 目录

tg4msql

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

tg4msql_tx.sql

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

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

├─ eng

└─ jpn

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

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

└─ 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))

OK 20 毫秒)

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 <HS_FDS_CONNECT_INFO> is not set. Please set it in init<orasid>.ora file.

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

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

Listener.ora

PROGRAM 必须为 tg4msql

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

Tnsnames.ora

SID Listener.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!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics