oracle9i与SQL的链接

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:
通过数据链接(Database Link),从Oracle 9i 连接 SQL Server 2000(实例)
从Oracle 9i连接SQL Server2000,需要用透明网关(Transparent Gateway),通过它,我们可以 sqlplus 操纵其他数据库,如 ms sqlserver 、 sybase 、 infomix 等,实现数据库的异构服务。
在Oracle 8i中没有透明网关,9i自带,但是默认不安装。
(一)安装Transparent Gateway for Windows SQL Server:
*如果在Oracle主目录下有tg4msql文件夹,那么不需要重新安装。
1. 启动Oracle安装盘disk 5里面的setup.exe。
2. 按Next两次,选择Oracle 9i Database 9.2.0.1.0,按Next。
3. 选择Custom,按Next。
4. 按Oracle Transparent Gateway 9.2.0.1.0旁边的"+",选择Oracle Transparent Gateway for Microsoft SQL Server 9.2.0.1.0,按Next。
5. 接着安装。
6. 安装完毕之后,在Oracle主目录下,会有tg4msql文件夹。
(二)配置:
我的环境:
Oracle 服务器:
    OS: Windows XP (SP2)
    IP: 192.168.1.180
    PORT: 1521
SQL 服务器:
    OS: Windows 2000
    IP: 192.168.1.213
    Database Server Name: BIO549
    Database Name: salesdata1
(a)通过tg4msql连接:
    1. 在Oracle主目录下tg4msql\admin目录下,拷贝inittg4msql.ora并改名为init<SID>.ora。例如,我用的SID是MSSQL,那么我的文件名是initMSSQL.ora。  
    2. 配置init<SID>.ora,以我的例子,如下:
******************************
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=BIO549;DATABASE=salesdata1"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
******************************   
    3. 配置Oracle主目录下network\admin目录下的listener.ora。以我的例子,如下:
*NEWLISTENER是我新建的LISTENER的名字,默认应该是LISTENER
******************************
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
NEWLISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.180)(PORT = 1521))
      )
    )
)
SID_LIST_NEWLISTENER =
(SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = MSSQL)
      (PROGRAM = tg4msql)
    )
)
******************************
    4.配置Oracle主目录下network\admin目录下的tnsnames.ora,以我的例子,如下:
******************************
MSSQL =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.180)(PORT = 1521))
    (CONNECT_DATA = (SID = MSSQL))
    (HS=MSSQL)
)
******************************
   5. 重起listener。
   6. 用sqlplus建立并测试Database Link。在命令行中,用以下命令:
sqlplus /nolog
conn sys/webpos as sysdba      ---->用sysdba的身份登陆
alter system set global_names = true;   ---->设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致
create database link test1 connect to sa identified by sa using 'mssql';
select * from  salesdata1@test1;
    7.连接成功。其中,connect to后面是用户名,identified by后面是密码,using后面是SID。
(b)通过hsodbc连接:
    1. 在ODBC中建立SQL Server连接的System DSN,我用名字BIO549。(步骤不详述,请查MSDN)
    2. 在Oracle主目录下hs\admin的目录下,拷贝inithsodbc.ora并改名为init<SID>.ora。这次,我用的SID是BIO549,所以文件名是BIO549。以我的例子,如下:
*HS_FDS_CONNECT_INFO后面是数据源名称。
******************************
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = BIO549
HS_FDS_TRACE_LEVEL = OFF
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
******************************
  
    3. 配置listener.ora,这次加入下面一段:
******************************
(SID_DESC=
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME=BIO549)
      (PROGRAM=hsodbc)
    )
******************************
    因此,我的listener.ora全部如下:
******************************
# LISTENER.ORA Network Configuration File: C:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
NEWLISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.180)(PORT = 1521))
      )
    )
)
SID_LIST_NEWLISTENER =
(SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = MSSQL)
      (PROGRAM = tg4msql)
    )
    (SID_DESC=
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME=BIO549)
      (PROGRAM=hsodbc)
    )
)
******************************
4. 配置tnsnames.ora,如下:
******************************
BIO549 =
(DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.180)(PORT=1521))
    (CONNECT_DATA= (SID=BIO549))
    (HS=OK)
)
******************************
    5. 重起listener并建立连接。
(三) 注意:
我在测试的时候,起先总是有ORA-28545的错误,经调查含义如下:
ORA-28545 error diagnosed by Net8 when connecting to an agent
    Cause: An attempt to call an external procedure or to issue SQL to a non-Oracle system on a Heterogeneous Services database link failed at connection initialization. The error diagnosed by Net8 NCR software is reported separately.
    Action: Refer to the Net8 NCRO error message. If this isn't clear, check connection administrative setup in tnsnames.ora and listener.ora for the service associated with the Heterogeneous Services database link being used, or with 'extproc_connection_data' for an external procedure call.
我仔细的查看了所有文件的配置,发现是由于listener的名字导致的错误(SID_LIST_NEWLISTENER),因此我建议,如果出现这个错误,请仔细检查所有的配置文件。


本文转自 小王 51CTO博客,原文链接:http://blog.51cto.com/xiaowang/300805,如需转载请自行联系原作者
相关实践学习
使用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
相关文章
|
24天前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
5月前
|
SQL 安全 关系型数据库
sql数据库本地链接
在SQL数据库中,本地连接通常指的是在同一台计算机上运行的数据库客户端连接到该计算机上的数据库服务器。这种连接通常使用`localhost`或`127.0.0.1`(这是IPv4地址,代表本地回环地址
|
26天前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
41 3
|
27天前
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
44 1
|
2月前
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
|
4月前
|
SQL Oracle 关系型数据库
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
272 3
|
4月前
|
SQL 存储 Oracle
TDengine 3.3.2.0 发布:新增 UDT 及 Oracle、SQL Server 数据接入
**TDengine 3.3.2.0 发布摘要** - 开源与企业版均强化性能,提升WebSocket、stmt模式写入与查询效率,解决死锁,增强列显示。 - taos-explorer支持geometry和varbinary类型。 - 企业版引入UDT,允许自定义数据转换。 - 新增Oracle和SQL Server数据接入。 - 数据同步优化,支持压缩,提升元数据同步速度,错误信息细化,支持表名修改。 - 扩展跨平台支持,包括麒麟、Euler、Anolis OS等。
114 0
|
5月前
|
SQL Oracle 关系型数据库
一些非常有用的Oracle SQL
一些非常有用的Oracle SQL
42 4
|
5月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
71 0

推荐镜像

更多