Oracle学习系列—Oracle透明网关
2008-11-18 08:53
597 查看
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、查看C:/oracle/ora92/tg4msql/admin目录
6、修改C:/oracle/ora92/tg4msql/admin/inittg4msql.ora
7、修改C:/oracle/ora92/network/admin/listener.ora,增加
8、修改C:/oracle/ora92/network/admin/Tnsname.ora,增加
9、重新启动侦听服务
10、测试解析状态
11、创建数据库链接
12、察看数据库链接
13、测试
ODBC透明网关的配置
1、查看C:/oracle/ora92/HS/admin目录
2、配置ODBC系统DSN。
3、修改C:/oracle/ora92/HS/admin/initSID_NAME.ora
7、修改C:/oracle/ora92/network/admin/listener.ora,增加
8、修改C:/oracle/ora92/network/admin/Tnsname.ora,增加
透明网关配置的疑难问题
配置过程遇到的异常情况:
解决过程,请检查以下参数
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
*如果你的数据库系统以前有升级,这次是从光盘直接安装的新的tg4msql,那么你在使用tg4msql之前
必须先按照当前数据库patchset进行一次数据库升级。
*在建立DBLINK时一定要注意你连接的数据库是否有大小写敏感,否则你在取网关的表数据时,系统会
报远程数据库的密码错误。
多个透明网关的配置
1、把inittg4msql.ora复制并修改名称为inittg4msql2.ora
2、修改C:/oracle/ora92/tg4msql/admin/inittg4msql2.ora只修改第一行,服务器和数据库名即可
3、修改C:/oracle/ora92/network/admin/listener.ora,增加如下注意SID_Name的变化
4、修改C:/oracle/ora92/network/admin/Tnsname.ora,增加
然后和单个透明网关配置一样,重新启动监听,创建数据库链接,测试。一切OK!
透明网关的体系结构也很简单,在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、查看C:/oracle/ora92/tg4msql/admin目录
tg4msql ├─admin--透明网关配置目录 │tg4msql_tx.sql │ ├─bin--系统配置的东西 ├─nls--定义错误的消息 │├─eng │└─jpn ├─demo--提供了一些在SQLServer环境下得demo ├─html--提供了一些SQLServer和Oracle的参考文档 └─trace--提供系统跟踪情况 |
# 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 |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = tg4msql) (ORACLE_HOME = C:/oracle/ora92) (PROGRAM = tg4msql) ) ) |
TG4MSQL= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST= host)(PORT=1521)) ) (CONNECT_DATA= (SID=tg4msql) ) (HS=OK) ) |
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:/oracle/ora92/network/admin/listener.ora 写入C:/oracle/ora92/network/log/listener.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 SNMPOFF 监听器参数文件C:/oracle/ora92/network/admin/listener.ora 监听器日志文件C:/oracle/ora92/network/log/listener.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 Settings/Administrator>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 SNMPOFF 监听器参数文件C:/oracle/ora92/network/admin/listener.ora 监听器日志文件C:/oracle/ora92/network/log/listener.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> |
C:/Documents and Settings/Administrator>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:/oracleora92/network/admin/sqlnet.ora 已使用TNSNAMES适配器来解析别名 Attempting to contact (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HO ST= host)(PORT=1521))) (CONNECT_DATA= (SID=tg4msql)) (HS=OK)) OK(20毫秒) |
CREATE PUBLIC DATABASE LINK MStest CONNECT TO “sa” IDENTIFIED BY “sa” USING ‘tg4msql’; |
select * from sys.LINK$ |
select * from Customers@MStest; |
1、查看C:/oracle/ora92/HS/admin目录
HS ├─admin--透明网关配置目录 ││ ├─bin--系统配置的东西 ├─nls--定义错误的消息 │├─eng │└─jpn └─trace--提供系统跟踪情况 |
3、修改C:/oracle/ora92/HS/admin/initSID_NAME.ora
HS_FDS_CONNECT_INFO = 系统DSN名 HS_FDS_TRACE_LEVEL = OFF |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = SID_NAME) --一定要与上一步中的SID_NAME名相同 (ORACLE_HOME = C:/oracle/ora92) (PROGRAM = HSODBC) ) ) |
TG4MSQL= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST= host)(PORT=1521)) ) (CONNECT_DATA= (SID=SID_NAME) --对应listener.ora中SID_NAME ) (HS=OK) ) |
配置过程遇到的异常情况:
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
*如果你的数据库系统以前有升级,这次是从光盘直接安装的新的tg4msql,那么你在使用tg4msql之前
必须先按照当前数据库patchset进行一次数据库升级。
*在建立DBLINK时一定要注意你连接的数据库是否有大小写敏感,否则你在取网关的表数据时,系统会
报远程数据库的密码错误。
多个透明网关的配置
1、把inittg4msql.ora复制并修改名称为inittg4msql2.ora
2、修改C:/oracle/ora92/tg4msql/admin/inittg4msql2.ora只修改第一行,服务器和数据库名即可
HS_FDS_CONNECT_INFO=host.pubs--hostname.databasename |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = tg4msql2) (ORACLE_HOME = C:/oracle/ora92) (PROGRAM = tg4msql) ) ) |
TG4MSQL2= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST= host)(PORT=1521)) ) (CONNECT_DATA= (SID=tg4msql2) ) (HS=OK) ) |
相关文章推荐
- Oracle学习系列—Oracle透明网关 for SQL Server
- 从ORACLE到SQL SERVER的透明网关的安装和配置
- Linux系统中使用oracle透明网关连接DB2数据库
- Oracle学习系列7
- 【Oracle】Oracle透明网关访问MSSQLServer
- 2. oracle学习入门系列之二 数据库基础知识
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle SQL性能优化系列学习三
- oracle 11g 透明网关(oracle --> sqlserver)
- 7.oracle学习门户系列七---网络管理和配置
- Oracle 通过透明网关访问mysql配置步骤
- 从Oracle到SQLServer的透明网关配置
- Oracle 10g与SQL Server 2008互联之透明网关配置
- [Oracle]跨库查询方法:database link和透明网关
- Oracle 10g 透明网关访问SQL Server 2008
- Oracle 11g 透明网关连接mssql2008r2数据库
- Oracle 11g R2通过透明网关连接DB2 详细步骤
- oracle 透明网关(oracle database gateway)介绍
- 7.oracle学习入门系列之七---网络管理与配置