Oracle透明网关 for SQL Server

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
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: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!
 





本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/312676 ,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
7天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
15天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
88 6
|
2天前
|
SQL 数据管理 关系型数据库
如何在 Windows 上安装 SQL Server,保姆级教程来了!
在Windows上安装SQL Server的详细步骤包括:从官方下载安装程序(如Developer版),选择自定义安装,指定安装位置(非C盘),接受许可条款,选中Microsoft更新,忽略警告,取消“适用于SQL Server的Azure”选项,仅勾选必要功能(不包括Analysis Services)并更改实例目录至非C盘,选择默认实例和Windows身份验证模式,添加当前用户,最后点击安装并等待完成。安装成功后关闭窗口。后续文章将介绍SSMS的安装。
6 0
|
7天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
7天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
7天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
7天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
10天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
23 0
|
存储 SQL 程序员
【Sql Server】存储过程通过作业定时执行按天统计记录
通过前两篇文章的学习,我们已经对创建表、存储过程、作业等功能点有所了解 本次将结合前面所学习的知识点,创建统计表以及结合作业定时按天以及实时统计域名各个长度的记录值
305 0
【Sql Server】存储过程通过作业定时执行按天统计记录
|
9月前
|
存储 SQL 数据库
SQL Server——为什么要使用存储过程?不使用是什么样的?
提高数据库执行速度,可能第一次见到这句话的小伙伴们感觉到非常的匪夷所思叭!怎么就提高了它的执行速度捏,从哪方面可以表现出来呢?既然这里要说到的是为什么要使用存储过程,也就是说它的优点是什么。那我们肯定就要对使用和不使用存储过程两方面来进行对比才能看出它的优点对吧。

推荐镜像

更多