`
Callan
  • 浏览: 736035 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 访问 SQL SERVER过程

阅读更多
主机 
操作系统 
软件环境 
GateWay
192.168.100.6
Windows XP
Oracle 10g 
SQL Server 2000 Client
Finasvr
10.1.1.13
Windows 2000 Server 
SQL Server 2000(访问的数据库是SQLTest) 

一.    SQLDB的配置

SQL SERVER上建立用户testuser/testuser, 并授予可访问SQLTest的权限(Oracle数据库通过该用户访问SQL Server)

二.GATEWAY的配置(%ORACLE_HOME% C:\Oracle\product\10.2.0\

1.安装ORACLE10g透明网关(Oracle Transparent Gateway)选项 Microsoft SQL Server。 安装时需要选择SQL SERVER主机和数据库(server:10.1.1.13, DB:SQLTest)

  2.安装SQL Server2000,因为是WINDOWS XP,所以只装了SQL Server 2000客户端。

  3.拷贝%ORACLE_HOME%\tg4msql\admin\inittg4msql.ora改名为initSID_NAME.ora(example:initFinasvrHZ.ora),这是网关进程启动时需要的初始化文件,修改HS_FDS_CONNECT_INFO这行,其他的内容不变。比如:

HS_FDS_CONNECT_INFO="SERVER=Finasvr;DATABASE=SQLTest"   or

HS_FDS_CONNECT_INFO="Finasvr.SQLTest"

4.修改%ORACLE_HOME%\network\admin listener.ora内容如下:

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

      )

    )

  )

#这边的HOST一定是localhost,而不是SQL SERVER那台机器

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\Oracle\product\10.2.0)

      (PROGRAM = extproc)

    )

   (SID_DESC=

      (SID_NAME=finasvrhz)

      (ORACLE_HOME= C:\Oracle\product\10.2.0)

   (PROGRAM=tg4msql)

)

)

 

5.重启动GateWay(IP:192.168.100.6)TNSListener服务

 

三.ORADB的配置($ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1/)

$ORACLE_HOME/network/admin/tnsnames.ora, 添加下面的内容

finasvrlk =   # 连接字符串可以随便取

(DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.6)(PORT = 1521))

  (CONNECT_DATA =

   (SID = finasvrhz) #SID_NAME与上面的SID_NAME相同

  )

  (HS=OK)          #固定为OK

)

          保存tnsnames.ora后,可以用TNSPING命令测试listener

 

设置数据库参数global_names=false

设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。global_names=true则要求建立的数据库链接和目的数据库的全局名称一致。

alter system set global_names=false;

 

建立数据库链接:                

         create database link sqllink connect to testuser identified by “testuser” using ‘finasvrlk’;

 

访问SQL Server下数据库里的数据:   

         select * from temp@sqllink;

 

使用透明网关只可以用标准的 DML,并及时提交

 

关于出现ORA-28545错误,在我这发生的原因是因为配置了listner之后没有重新启动它,当然,前提是在设置都正确下,出现了这个错误。

SQL> select * from t@sqllink;

select * from t@sqllink

*

ERROR 位于第 1 :

ORA-28545: 连接代理时 Net8 诊断到错误

NCRO:无法执行 RSLV 连接

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

解决:lsnrctl stop / lsnrctl start

 

另外, 蓝色字体标明的几个名称要特别注意!

分享到:
评论

相关推荐

    通过ORACLE通用连接访问SQLServer数据库的方法

    通过Oracle通用连接访问SQL Server数据库的方法为IT领域提供了一种跨数据库系统进行数据交互的有效途径。这种方法主要依赖于Oracle数据库的异构服务功能,允许用户从Oracle环境中直接查询或操作其他类型数据库(如...

    oracle通过odbc建立dblink访问sqlserver数据库

    ### Oracle通过ODBC建立DBLink访问SQLServer数据库 在企业级应用环境中,不同数据库系统间的交互变得越来越频繁。为了实现Oracle数据库与SQLServer数据库之间的数据交换,可以通过多种方式实现连接,其中一种较为...

    oracle访问sqlserver text

    sqlserver关于表中存在text字段的导入oracle

    实现 Oracle 连接 SQL Server

    3. **创建数据库链接**:创建一个指向 SQL Server 数据库的数据库链接,以便从 Oracle 数据库访问 SQL Server 数据库的数据: ``` CREATE DATABASE LINK pubs CONNECT TO sa IDENTIFIED BY sa USING 'pubs'; ``` ...

    oracle10g或11g通过dblink访问sql server数据库

    本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的开发人员来说尤其有用,因为它提供了一种在不同类型的数据库之间无缝切换...

    oracle到sqlserver 跨库查询

    .oracle 到 SQL Server 跨库查询 Oracle 到 SQL Server 跨库查询是指通过网关工具将数据从 SQL Server 数据库中抽取到 Oracle 数据库中。这个过程需要安装和配置网关软件,并进行相应的设置和配置。 一、网关软件...

    oracle,sqlserver及mysql对比

    Oracle、SQL Server 及 MySQL 对比 Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间...

    Oracle访问sqlserver透明网关配置简要说明.docx

    ### Oracle访问SQL Server透明网关配置详解 #### 一、业务背景及应用场景 在现代企业信息系统中,异构数据库环境普遍存在。例如,某些系统可能基于Oracle数据库构建,而其他系统则可能采用SQL Server或其他类型的...

    SQLServer2008R2与Oracle11gR2互连

    ### SQLServer2008R2与Oracle11gR2互连 #### 1. 简介 SQLServer2008 R2与Oracle11g R2分别是Microsoft和Oracle公司推出的重量级数据库系统,在不同的应用场景下各自拥有优势。在实际的企业环境中,往往需要在两种...

    oracle通过ODBC建立dblink访问SqlServer数据库配置.docx

    oracle通过ODBC建立dblink访问SqlServer数据库配置

    oracle转SQL Server方法收集

    SSMA是一款由微软提供的强大工具,旨在简化从Oracle、Sybase、MySQL和Access等不同平台向SQL Server及SQL Azure迁移的过程。 #### 二、SSMA for Oracle概述 SSMA for Oracle 是SSMA工具集的一员,主要用于帮助用户...

    深度对比 Oracle与SQL Server

    Oracle 和 SQL Server 都提供了动态视图(Dynamic Management Views, DMVs)来访问运行时的系统状态信息。这些视图可以帮助数据库管理员监控系统的性能,并进行必要的调优。例如,Oracle 的 V$SESSION 视图可以用来...

    SqlServer表结构转oracle表结构

    C#代码可以通过ADO.NET或者其他数据库访问库连接到SQL Server和Oracle,读取SQL Server的表结构,然后在Oracle中创建相应的表。 3. **注释迁移**:在SQL Server中的表注释和字段注释,通常存储在系统视图中。C#代码...

    Oracle19C RAC通过gateways连接SQL server数据库

    在本场景中,我们探讨的是如何在Oracle 19C RAC环境中通过Oracle数据库网关(Gateway)连接到SQL Server 2012数据库。Oracle Gateway使得不同数据库系统间的数据交互成为可能,实现异构数据库间的透明访问。 首先,...

    SQL SERVER连接oracle数据库几种方法

    OPENDATASOURCE 是 SQL Server 中的一个系统存储过程,用于访问外部数据源的数据。我们可以使用 OPENDATASOURCE 来连接 Oracle 数据库。下面是一个示例代码: ```sql SELECT * FROM OPENDATASOURCE( 'MSDAORA', '...

    oracle与sql server互相访问.zip

    oracle与sql server互相访问

    从Oracle到SQL Server的透明网关配置

    透明网关是Oracle数据库提供的一种技术,允许Oracle客户端通过Oracle服务器访问非Oracle数据库,例如SQL Server,无需修改现有的应用程序代码。这种技术的核心在于提供了一种透明的接口,使得Oracle客户端可以像操作...

    如何在ORACLE里设置访问多个SQL Server数据库

    HS_FDS_CONNECT_INFO="SERVER=sqlserver_hostname;DATABASE=pubs" HS_DB_NAME=pubs HS_FDS_TRACE_LEVEL=OFF HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER ``` - `initnorthwind.ora`: ``` ...

Global site tag (gtag.js) - Google Analytics