`
zhanglei_2008
  • 浏览: 27061 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle通过透明网关,创建dblink,访问ms sql server和其他数据库

阅读更多
oracle通过透明网关(Oracle Transparent Geteways),访问ms sql server和其他数据库

环境:
    1、在安装有oracle服务器端,ms sql server的客户端,通过oracle的透明网关访问ms sql server数据库
    2、在ms sql server服务器上创建用户conn_ora,并且要能访问ms sql server数据库msdb

安装Oracle Transparent Geteways:
    1、'开始'菜单的'Oracle Installation Products'下的'Universal Installer'
       \\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_1\NT\I386\stage\products.jar
       下一步-
    2、选择安装类型:
       自定义,下一步
    3、选择可用产品组件:
       将 'Oracle Transparent Geteways 9.2.0.1.0'下的'Oracle Transparent Geteways for Microsoft SQL Server 9.2.0.1.0'选中;
       将 'Oracle Transparent Geteways 9.2.0.1.0'下的'Oracle Transparent Geteways for Sybase 9.2.0.1.0'选中;
       下一步;
    4、设置Sybase路径
       选择你的'SYBASE的完整安装路径';
       下一步
    5、设置数据库服务器名 和数据库名称???
       Microsoft SQL Server:192.168.0.111
       Microsoft SQL 数据库:msdb
       服务器名称或者ip地址,数据库名字
    6、继续安装:
       \\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_2\NT\I386\stage
       \\192.168.0.8\e$\数据工具\oracle9.2\ORANT920\ORA92_3\NT\I386\stage
    7、安装完成:
       此时,oracle安装主目录下有了'tg4msql'目录
       C:\oracle\ora92\tg4msql

设置环境参数,创建dblink:
    1、C:\oracle\ora92\tg4msql\admin下的inittg4msql.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=ZZL;DATABASE=MSDB"
            HS_FDS_TRACE_LEVEL=OFF
            HS_FDS_RECOVERY_ACCOUNT=RECOVER
            HS_FDS_RECOVERY_PWD=RECOVER
       说明:
           HS_FDS_CONNECT_INFO=ZZL.MSDB和
           HS_FDS_CONNECT_INFO="SERVER=ZZL;DATABASE=MSDB"和
           HS_FDS_CONNECT_INFO="SERVER=192.168.0.111;DATABASE=MSDB"
           都可以,两种写法,其中‘SERVER’是服务器名称或者ip,DATABASE是数据库名称,
           当然,如果在192.168.0.111这台服务器上,有两个sql server实例,则使用‘服务器名\实例名’的方式设置上面的SERVER值,
           如:HS_FDS_CONNECT_INFO="SERVER=ZZL\MSSQLSERVER;DATABASE=MSDB"




    2、设置listener.ora文件
       位置:C:\oracle\ora92\network\admin
       文件内容:
                SID_LIST_LISTENER =
                  (SID_LIST =
                    (SID_DESC =
                      (SID_NAME = PLSExtProc)
                      (ORACLE_HOME = C:\oracle\ora92)
                      (PROGRAM = extproc)
                    )
                    (SID_DESC =
                      (GLOBAL_DBNAME = orademo)
                      (PROGRAM = orademo)
                      (ORACLE_HOME = C:\oracle\ora92)
                      (SID_NAME = orademo)
                    )
                    (SID_DESC =
                      (PROGRAM = tg4msql)
                      (ORACLE_HOME = C:\oracle\ora92)
                      (SID_NAME = tg4msql)
                    )
                  )
        其中新增:
            (SID_DESC =
              (PROGRAM = tg4msql)
              (ORACLE_HOME = C:\oracle\ora92)      #oracle的主目录
              (SID_NAME = tg4msql)
            )

    3、配置tnsnames.ora文件
       位置:C:\oracle\ora92\network\admin
       文件内容:
            # TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
            # Generated by Oracle configuration tools.
            SDLGDB =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.8)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SID = SSTORA)
                  (SERVER = DEDICATED)
                )
              )
            ORADEMO =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = zzl)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SID = orademo)
                  (SERVER = DEDICATED)
                )
              )
            zzl_sql200 =   #数据库连接名称,任意命名
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))   #'192.168.0.111'为 oracle服务器的机器名
                )
                (CONNECT_DATA =
                  (SID = tg4msql)
                )
                (HS=OK)   #Oracle Server要调用异构服务来处理
              )
       


        其中新增:
            zzl_sql200 =   #数据库连接名称,任意命名
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))   #'192.168.0.111'为 oracle服务器的机器名
                )
                (CONNECT_DATA =
                  (SID = tg4msql)
                )
                (HS=OK)   #Oracle Server要调用异构服务来处理
              )

    4、配置init.ora.1115200612231
       位置:C:\oracle\admin\orademo\pfile
       将global_names设置为真值,及global_names=true

    5、重新启动服务:
       在window的开始的运行中执行:
       net stop OracleOraHome92TNSListener
       net stop OracleServiceORADEMO
       net start OracleOraHome92TNSListener
       net start OracleServiceORADEMO
      
       说明:OracleOraHome92TNSListener 是监听服务,OracleServiceORADEMO是实例服务
                 
    6、创建dblink:
       以普通用户登录oracle:如cs/cs@orademo
      
       --drop DATABASE LINK link_zhaozhenlong;
       CREATE  DATABASE LINK link_zhaozhenlong CONNECT TO "sa" IDENTIFIED BY "xxb" USING 'zzl_sql200';
      
       说明:ms sql server的用户名和密码必须小写,而且要加双引号,
       否则会报如下错误:
              错误信息:
                    ORA-28500: connection from ORACLE to a non-Oracle system returned this messsage:
                    [Transparent gateway from MSSQL][Microsoft][ODBC SQL Server Driver][SQL Server]??
                    'sa'????? (SQL State:28000; SQL Code: 18456)
                    ORA-02063: preceding 2 lines from LINK_ZZL
              错误原因:
                    在CREATE  DATABASE LINK LINK_ZZL的连接字符串中,ms sql server的用户名和密码必须小写,而且要加双引号

   


     7、在pl/sql中执行:
        select * from sysobjects@link_zhaozhenlong where rownum <=5;
        结果如下:



            1    sysrowsetcolumns    4    S  4   0   0   0   0   0   2005-10-14 1:36:15
            2    sysrowsets               5    S  4   0   0   0   0   0   2005-10-14 1:36:15
            3    sysallocunits            7    S  4   0   0   0   0   0   2005-10-14 1:36:15
            4    sysfiles1                   8    S  4   0   0   0   0   0   2003-4-8 9:13:38
            5    syshobtcolumns      13   S  4   0   0   0   0   0   2005-10-14 1:36:15
       
        访问dblink时说明:
            这是基于网关的方式,因此不能在断开网络的情况下本地的oracle连接本地的ms sql server
            否则会报如下错误:
            ORA-28545: error diagnosed by Net8 when connecting to an agent
            NCRO: Failed to make RSLV connection
            ORA-02063: preceding 2 lines from LINK_ZZL



分享到:
评论

相关推荐

    通过Oracle的透明网关和dblink直接取sqlserver表中的数据

    总的来说,使用Oracle的透明网关和DBLink从SQL Server数据库中直接提取数据的过程包括透明网关软件的安装与配置、DBLink的创建以及数据提取操作。其中,配置透明网关环境是整个过程中最为关键的一步,它决定了Oracle...

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

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

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

    ### Oracle 10g 或 11g 通过 DBLink 访问 SQL Server 数据库 #### 概述 本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的...

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

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

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

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

    ORACLE透明网关访问mysql

    在本篇文章中,我们将详细探讨如何在Windows Server 2012环境下,利用Oracle 11.2版本的数据库来通过透明网关访问MySQL 5.7数据库。该过程涉及服务器配置、数据库权限设置、ODBC驱动安装配置、网络配置以及Oracle...

    使用透明网关实现oracle访问sqlserver

    通过透明网关,Oracle数据库可以无缝地访问SQL Server的数据,这对于需要跨数据库交互的多系统环境来说非常实用。然而,需要注意的是,性能和延迟可能因网络状况和数据库配置而异,因此在实际应用中需要进行性能评估...

    Windows Server服务器下Oracle11g创建ODBC连接HANA数据库

    目前通过Oracle11g连接SAP的HANA数据库Oracle11g的透明网关插件gateways中没有该选项,只能通过ODBC创建dblink连接HANA数据库,文档中包含有如何创建本地数据源ODBC,如何创建并配置相关ora文件,如何创建dblink等...

    SQL SERVER 2005 DBLink to ORACLE 设置方法

    ### SQL Server 2005 与 Oracle 10g 之间建立 DBLink 的设置方法及常见问题解决方案 #### 一、概述 在 IT 领域中,跨数据库的操作非常常见,尤其是在需要从不同数据库系统中提取数据并进行集成处理的场景下。SQL ...

    oracle dblink 创建过程

    通过创建DBLink,可以在两个不同的Oracle数据库之间建立连接,实现数据的共享和交换。结合Oracle快照技术,可以有效地实现本地数据库与远程数据库之间的数据同步。此外,通过设置适当的刷新策略和使用触发器,可以...

    oracle访问sqlserver text

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

    Oracle透明网关环境的建立

    你可以尝试从Oracle数据库执行一个简单的SELECT语句,通过DBLINK访问SQL Server中的数据,如果能够正常检索,那么透明网关环境就已成功建立。 以上六个步骤详细解释了如何建立Oracle透明网关环境,使得Oracle数据库...

    SQL Server2005 DBLINK链接Oracle 9i详解

    本文档详细介绍了如何在 SQL Server 2005 中通过 DBLINK 功能实现与 Oracle 9i 数据库之间的链接。通过这种方式,可以在 SQL Server 2005 中查询、更新甚至是执行 Oracle 9i 中的数据。此文档包含具体的步骤说明,并...

    oracle通过DBlink连接mysql搭建过程

    使用 DBlink 连接 Oracle 和 MySQL 数据库 Oracle 通过 DBlink 连接 MySQL 搭建过程是一个复杂的过程,需要安装和配置多个组件,包括 unixODBC、mysql-connector-odbc 和 Oracle 环境变量。本文将详细说明这个过程...

    oracle 存储过程 函数 dblink

    本文主要介绍了Oracle存储过程的概念、创建和调用方法,以及如何使用DBLink实现跨库操作。存储过程提供了强大的数据库处理能力,而DBLink则使得不同数据库实例之间的交互变得更加方便和高效。掌握这些技术对于提高...

    Oracle DATABASE LINK(DBLINK)创建与删除方法

    Oracle DATABASE LINK,简称DBLINK,是一种在不同的Oracle数据库实例间建立连接的方式,允许用户在本地数据库上执行查询和操作远程数据库的数据。DBLINK为跨数据库的通信提供了简单且高效的解决方案。 创建DBLINK的...

    在oracle下创建dblink

    在Oracle数据库系统中,DBLink(数据库链接)是一种强大的工具,它允许用户在一个数据库(源数据库)上执行SQL查询来访问另一个数据库(目标数据库)中的数据。通过创建DBLink,可以实现跨数据库的数据查询、更新等...

    创建dblink连接两台服务器上的数据库

    两台数据库服务器之间通过创建dblink进行数据库连接,并且数据库之间可以相互进行数据查询读取操作,操作简单易懂

    Oracle数据库 Synonym和DBLink

    Oracle 数据库中有两个重要的概念:同义词(Synonym)和数据库连接(DBLink)。这两个概念都是为了方便数据库的使用和管理而设计的。 同义词(Synonym) 同义词是 Oracle 数据库中的一种对象别名,它可以节省大量...

    网络环境下连接SQL Server和Oracle 19c的方法.docx

    在网上看了很多资料,感觉不是很仔细,很多同学遇到这个问题,就详细说明一下在局域网环境下Navicat连接SQL Server和Oracle 19c的方法,PL/SQL Developer连接Oracle

Global site tag (gtag.js) - Google Analytics