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 连接名

1.8.    查询测试

select * from wz_kfmck@kftest

请参考:在SQL Server 2005中连接Oracle,完成查询、插入操作(SQL中访问Orcale) 

http://www.cnblogs.com/bribe/p/3351955.html

在oracle中通过链接服务器(dblink)访问sql server的更多相关文章

  1. 无法删除服务器 'old_server_name',因为该服务器用作复制过程中的发布服务器。 (Microsoft SQL Server,错误: 20582)

    无法删除服务器 'old_server_name',因为该服务器用作复制过程中的发布服务器. (Microsoft SQL Server,错误: 20582) 2013-01-05 15:02 478 ...

  2. sql server中使用链接服务器访问oracle数据库

    一.  安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l         完整的客户端 包括访问服务器端数据库 ...

  3. [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器

    本文转自:http://blog.csdn.net/nnaabbcc/article/details/7967761 存储过程调用不同数据库的数据 在存储过程调用不同数据库的数据该如何做,比如在存储过 ...

  4. sql server 与oracle数据互导的一种思路--sql server链接服务器

    思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好orac ...

  5. 1 sql server中添加链接服务器

    1  链接到另一个sql server 的实例 exec sp_addlinkedserver @server= '服务器的地址',@srvproduct='SQL Server' go 分布式查询中 ...

  6. 创建链接服务器(dblink)

    --创建链接服务器(dblink) exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrv ...

  7. sql server中创建链接服务器图解教程

    转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...

  8. ORACLE透明网关访问SQL Server配置总结

      透明网关概念 ORACLE透明网关(Oracle Transparent Gateway)可以解决ORACLE数据库和非ORACLE数据库交互数据的需求.在一个异构的分布式环境中,通过ORACLE ...

  9. Oracle Gateways透明网关访问SQL Server

    自己的本机安装了Oracle 12c,公司的平台需要同时支持Oracle与SQL Server,很多时候都有将数据从Oracle同步到SQL Server的需求.通过SQL Server的link S ...

随机推荐

  1. mysql 用户权限设置【转】

    在Linux下phpStudy集成开发环境中,要先进入mysql下bin目录,执行mysql ./mysql -u root -p 1.创建新用户 通过root用户登录之后创建 >> gr ...

  2. Java中的大数处理类BigInteger和BigDecimar浅析

    这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; BigInteg ...

  3. [SQL]SQL语言入门级教材_SQL语言快速入门(五)

    SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...

  4. DevExpress某些控件继承后的可编辑性

    今天在使用DevExpress的BarManager菜单控件时,发现在进行继承时无法在继承的子类窗体中对其进行编辑与修改,另外像GridView也有类似的情形,后来查阅资料后,现在可通过DevExpr ...

  5. 在 Angular 中实现搜索关键字高亮

    在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...

  6. 关于 profile文件(转)

    登录shell执行了两个特殊文件, 1个是:\etc\profile, 这个文件由系统管理员设置,通常做一些如检查是否有邮件,设置默认的创建文件的掩码,给某些表转到处变量赋值,已经任何管理员希望每当用 ...

  7. Java垃圾收集器之--Garbage-First Collector

    简介       Garbage-First(G1)垃圾收集器全面支持JDK7 Upate 4及后续版本.G1收集器是一个服务器形式(server-style)的垃圾收集器,主要用于内存大.多处理器的 ...

  8. 【测试】模拟一个全表扫描的sql,对其进行优化走索引,并且将执行计划稳定到baseLine。

    ①创建表t3: SQL> create table t3 (id int); Table created. SQL; rows created. ②开启自动捕获并修改时间格式: SQL> ...

  9. IP一些基础知识

    1.主机IP地址 IP地址:internet上的每一台计算机都被赋予了唯一的32位Internet地址,简称ip地址. (1)IP地址的组成 IP地址由两部分组成,如图1 网络地址(net-ID) 主 ...

  10. USACO Section 2.2 循环数 Runaround Numbers

    OJ:http://www.luogu.org/problem/show?pid=1467 #include<iostream> #include<vector> #inclu ...