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、选择要安装的透明网关
4、系统提示配置
5、查看Cracleora92tg4msqladmin目录
tg4msql
├─admin --透明网关配置目录
│ tg4msql_tx.sql
│
├─bin --系统配置的东西
├─nls --定义错误的消息
│ ├─eng
│ └─jpn
├─demo --提供了一些在SQLServer环境下得demo
├─html --提供了一些SQLServer和Oracle的参考文档
└─trace --提供系统跟踪情况
6、修改Cracleora92tg4msqladmininittg4msql.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、修改Cracleora92networkadminlistener.ora,增加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = tg4msql)
(ORACLE_HOME = Cracleora92)
(PROGRAM = tg4msql)
)
)
8、修改Cracleora92networkadminTnsname.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.
Cocuments 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)))
命令执行成功
Cocuments 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
系统参数文件为Cracleora92networkadminlistener.ora
写入Cracleora92networkloglistener.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
监听器参数文件 Cracleora92networkadminlistener.ora
监听器日志文件 Cracleora92networkloglistener.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 个处理程序...
命令执行成功
Cocuments 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
监听器参数文件 Cracleora92networkadminlistener.ora
监听器日志文件 Cracleora92networkloglistener.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 个处理程序...
命令执行成功
Cocuments and SettingsAdministrator>
10、测试解析状态
Cocuments 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.
已使用的参数文件:
Cracleora92networkadminsqlnet.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;
透明网关的体系结构也很简单,在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、选择要安装的透明网关
4、系统提示配置
5、查看Cracleora92tg4msqladmin目录
tg4msql
├─admin --透明网关配置目录
│ tg4msql_tx.sql
│
├─bin --系统配置的东西
├─nls --定义错误的消息
│ ├─eng
│ └─jpn
├─demo --提供了一些在SQLServer环境下得demo
├─html --提供了一些SQLServer和Oracle的参考文档
└─trace --提供系统跟踪情况
6、修改Cracleora92tg4msqladmininittg4msql.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、修改Cracleora92networkadminlistener.ora,增加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = tg4msql)
(ORACLE_HOME = Cracleora92)
(PROGRAM = tg4msql)
)
)
8、修改Cracleora92networkadminTnsname.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.
Cocuments 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)))
命令执行成功
Cocuments 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
系统参数文件为Cracleora92networkadminlistener.ora
写入Cracleora92networkloglistener.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
监听器参数文件 Cracleora92networkadminlistener.ora
监听器日志文件 Cracleora92networkloglistener.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 个处理程序...
命令执行成功
Cocuments 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
监听器参数文件 Cracleora92networkadminlistener.ora
监听器日志文件 Cracleora92networkloglistener.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 个处理程序...
命令执行成功
Cocuments and SettingsAdministrator>
10、测试解析状态
Cocuments 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.
已使用的参数文件:
Cracleora92networkadminsqlnet.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;