oracle 与 sql server 通过DB LINK连接

转载 2017年07月10日 11:30:31

在oracle中通过链接服务器(dblink)访问sql server

 

2013-10-16

 

一、   工作环境:

<1> Oracle数据库版本:Oracle 11g  运行环境 :IBM小型机 AIX 6.1

<2> SQL数据库版本:  SQL 2005 R2  运行环境: HP DL 580 G6

 

二、   操作方式:利用透明网关,建立dblink ,访问SQL SERVER

  1. 1.     透明网关简介

ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。因此透明网关也是Oracle数据仓库和数据迁移中的一个重要组成部分。

透明网关的体系结构也很简单,在ORACLE和SQL SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL SERVER数据库在同一台主机上,也可以是在独立的一台主机上。

  1. 2.     透明网关安装

首先在官网上先下载个透明网关。网址(11g):

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

据说10g和11g的要单独下,9i的安装光盘里面有。另外找不到10g的透明网关,不确定11g的透明网关能否用于10g的数据库,本地环境无法测试。

  1. 3.     [安装步骤]

步骤这里就不一个个截图了,基本就是“下一步”,下面是选组件的,选SQL SERVER的就可以了。安装结束后有监视器的设置,可以直接跳过。

三、                       

[透明网关目录:D:\app\HIS_LK\product\11.2.0\tg_1\]

[Oracle目录:D:\app\HIS_LK\product\11.2.0\dbhome_1]

  1. 4.       配置透明网关的监听listener.ora

其中listener.ora便是监听文件,配置他即可。

           

SID_LIST_LISTENER =

       (SID_LIST =   

(SID_DESC =

  #SID是监听的标识,这个是默认名称,用了配本地的SQL SERVER

          (SID_NAME = dg4msql)   

          (PROGRAM = dg4msql)#默认不变  

          (ORACLE_HOME = D:\app\HIS_LK\product\11.2.0\tg_1)#透明网关安装目录  

          #(GLOBAL_DBNAME = dg4msql)  

        )  

(SID_DESC = 

  #SID是监听的标识,这个是新名称,用了配远程SQL SERVER 

          (SID_NAME = kftest)  

          (PROGRAM = dg4msql)

          (ORACLE_HOME = D:\app\HIS_LK\product\11.2.0\tg_1)

          #(GLOBAL_DBNAME = dg4msql)

        )  

      )

  

LISTENER =

       (DESCRIPTION_LIST =

         (DESCRIPTION =

         #host是透明网关服务器,可用ip。

         #port为端口,oracle本身使用了1521端口,这里用1522

           (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

         )

       )

   

 

  1. 5.    配置透明网关的数据库文件

Admin文件夹下默认存在安装透明网关时的数据库文件initdg4msql.ora。

数据文件命名规则:init+ SID(SID就是第3步中配置的SID_NAME),需要多个连接就建多个文件即可。

initdg4msql.ora文件内容:

           

   

#注意,连接的开头不需要server=,网上很多写了这个,其实不用写,写了会报错

HS_FDS_CONNECT_INFO="HIS_LK-PC\\MYMSSQL;DATABASE=THIS4_TEST"

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

   

 

initkftest.ora文件内容:         

   

HS_FDS_CONNECT_INFO="172.16.40.117\\MSSQLSERVER2008;DATABASE=THIS4_TEST"

HS_FDS_TRACE_LEVEL=OFF 

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

   

 

1.  6.    配置服务器的服务名配置文件tnsnames.ora

Oracle目录文件夹

在tnsnames.ora文件中增加以下内容即可        

   

DG4MSQL =#名称,可自拟,这里和SID取成一样,

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

        )

        (CONNECT_DATA =  

          (SERVICE_NAME = dg4msql)

        ) 

        (HS = OK)

      )

kftest =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = HIS_LK-PC)(PORT = 1522))

        )

        (CONNECT_DATA =

          (SERVICE_NAME = kftest)

        )

        (HS = OK) 

      )

   

 

1.7.    创建服务器连接

语法     

   

CREATE DATABASE LINK 连接名 CONNECT TO     "user" IDENTIFIED BY "password" USING 'tg4msql'

   

 

举例:

CREATE DATABASE LINK kftest CONNECT TO "sa" IDENTIFIED BY " " USING ' kftest'

[说明]

这边很郁闷,oracle不让输入空密码,这里输了个空格,测试的时候改了下sa的登录密码。这个没查处理方法。

删除连接语法    

DROP PUBLIC DATABASE LINK 连接名

oracle使用dblink连接sql server

环境说明: 数据库版本:11gR2 透明网关版本:11g 2 下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/...
  • Cbh5425
  • Cbh5425
  • 2016年06月08日 14:26
  • 1377

Oracle通过dblink直接访问Sqlserver

需求:通过在oracle创建dblink的方式直接访问Sqlserver数据库 操作方式:利用Oracle组件,透明网关(Transparent Gateway),建立dblink ,访...
  • liuxiang860927
  • liuxiang860927
  • 2017年03月21日 16:32
  • 269

oracle 11g建立DBLink访问sql server数据库

1.安装oracle数据库(步骤省略)            (IP:172.29.29.36)安装路径:E:\oracle\product\11.2.0\dbhome_1 2.安装oracle ga...
  • xiaoguo321
  • xiaoguo321
  • 2016年09月09日 11:41
  • 4881

创建在SQLServer 和 Oracle的 DBLINK

dblink 当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。 ...
  • lygzscnt12
  • lygzscnt12
  • 2014年10月14日 12:00
  • 4226

Oracle创建到sqlserver的dblink中的一个巨坑

oracle创建dblink连接sqlserver,ORA-01017: invalid username/password; logon denied和ORA-02063错误,那极有可能是在执行创建...
  • buxingshi
  • buxingshi
  • 2017年07月26日 15:48
  • 319

通过数据链接(Database Link),从Oracle 10g 连接 SQL Server 2000(实例)

 通过数据链接(Database Link),从Oracle 10g 连接 SQL Server 2000(实例)从Oracle 10g连接SQL Server2000,需要用透明网关(Transpa...
  • daimin1983
  • daimin1983
  • 2008年12月05日 09:34
  • 7041

Oracle数据库和SQLServer数据库中创建DB-Link语法

1.Oracle数据库中DB-Link对象创建语法: create public database link DB_Link_Name connect to userName identified ...
  • u012411219
  • u012411219
  • 2016年05月05日 14:50
  • 267

ORACLE 通过gateway组件建立dblink连接sqlserver数据库的实战详细过程

项目背景: Oracle数据库11.2.0.1版本,linuxcentos 6.5系统,单实例Sqlserver 2008版本,windows2008系统,单实例 1、下载地址:(1)oracle官网...
  • mchdba
  • mchdba
  • 2016年10月01日 23:13
  • 2434

SQL Server中创建Oracle的链接服务器

打开Microsoft SQL Server Management Studio并以sa身份登录,在左侧的“对象资源管理器”窗口中展开“服务器对象”节点,在其下的“链接服务器”节点上右键选择“新建链接...
  • m15188153014
  • m15188153014
  • 2015年12月24日 16:49
  • 628

[SQL SERVER] 如何linked server連接Oracle (Oracle Provider for OLE DB)

新手DBA上路,最近幫公司某一舊系統,昇級SQL SERVER2014,並使用Always On技術,一切順利完成 AP測試也都沒問題,結果AP又問了一個問題,linked server怎麼沒有連Or...
  • RyanSi
  • RyanSi
  • 2015年06月26日 19:42
  • 601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle 与 sql server 通过DB LINK连接
举报原因:
原因补充:

(最多只允许输入30个字)