美文网首页
关于oracle数据库的DBlink的建立

关于oracle数据库的DBlink的建立

作者: 可爱傻妞是我的爱 | 来源:发表于2017-11-09 13:32 被阅读56次

于申通地铁项目中,碰到系统集成的问题,数据源分散在各个服务器之中,为了方便本地的数据源获取,我们尝试进行BDLink的建立。从网上查询方法得知以下:

目的:oracle中跨数据库查询

两台数据库服务器db_A(本地)和db_B(远程192.168.1.100),db_A下用户user_a 需要访问到db_B下user_b的数据

解决:查询得知使用dblink(即database link  数据库链)

实现过程:

1、确定用户user_a有没有创建 dblink 的权限:

select*fromuser_sys_privswhereprivilegelikeupper('%DATABASE LINK%');

2、如果没有,以sys用户登录到本地数据库 给用户user_a赋权:

grantCREATEPUBLICDATABASELINK,DROPPUBLICDATABASELINKtouser_a;

注:

dblink有三种权限:

CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)

CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)

DROP PUBLIC DATABASE LINK

3、以用户user_a登录本地数据库,创建dblink

create public databaselink dblink1

connect to user_b identified   byuser_bpass

using'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';

*注释:在本次的DBlink创建之中碰到了密码中包含有特殊字符@的密码,经过测试,添加"",将密码包裹之后可以正常建立DBlink。

当数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。

数据库全局名称可以用以下命令查出:

SELECT*FROMGLOBAL_NAME;

修改可以用以下语句来修改参数值:

ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;

4、创建完成,引用

-- 查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

例:

select*fromuser_bTablename@dblink1 ;

一般情况下引用数据库链接,可以直接将其放到调用的表名或视图名称后面,中间使用一个 @ 作为分割符:

5、删除 DBLink

droppublicdatabaselink dblink1;

6、创建和删除同义词

对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用

create or replace synonym 同义词名 for 表名;

create or replace synonym 同义词名 for 用户.表名;

create or replace synonym 同义词名 for 表名@数据库链接名;

drop synonym 同义词名;

7、创建和删除视图

create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);

drop view 视图名;

其他:

创建方式二:要求数据库服务器db_A上 tnsnames.ora 中有 数据库db_B的映射(省略)

sql>create database link 数据库链路名 connect to 用户名 identified by 口令 using 'tnsnames.ora配置的主机字符串名';

相关文章

  • 关于oracle数据库的DBlink的建立

    于申通地铁项目中,碰到系统集成的问题,数据源分散在各个服务器之中,为了方便本地的数据源获取,我们尝试进行BDLin...

  • Oracle跨服务器访问使用dblink

    当要夸服务器访问数据库时,我们可以使用dblink建立连接服务器间的通道,本地创建了远程数据库的dblink后,访...

  • MySQL存储引擎Federated,实现类似Oracle的DB

    一、FEDERATED存储引擎的描述 MySQL提供了一个类似Oracle中的数据库链接(DBLINK)功能的存储...

  • DBLink(Oracle)

    两情若是久长时,又岂在朝朝暮暮 DBLink(Database Link):数据库链接顾名思义就是数据库的链接,就...

  • 【oracle】-创建DBlink

    一、创建DBlink的方法 二、创建DBlink后,要给相应的oracle用户赋予使用的权限用system或sys...

  • 视图、dblink、同义词,简介

    需要:从其他数据库获取数据,存储到我方的数据库。实现方式:dblink数据库连接的方式1、在对方数据库建立视图(d...

  • oracle dblink的创建

    oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink 首先了解下环境...

  • oracle中的DBLINK

    一:什么是DBLINK 本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建访问远程数据库的链路,...

  • 如何区分Oracle的数据库,实例,服务名,SID

    在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Ins...

  • DBLink

    DBLink作用:跨库访问。在当前数据库访问别的数据库,使用DBLink可以在当前数据库编写sql来查询别的数据库...

网友评论

      本文标题:关于oracle数据库的DBlink的建立

      本文链接:https://www.haomeiwen.com/subject/ylypmxtx.html