系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > oracle > 详细页面

ORACLE创建DBlink的过程及使用方法

时间:2023-10-31来源:系统城装机大师作者:佚名

1. ORACLE DBlink的创建和使用

1.1. 基本概念:

  • database link(简称DBLINK)是定义一个数据库到另一个数据库的路径的对象,database link允许查询其他数据库的远程表及执行远程程序。
  • database link是单向的连接。在创建database link的时候,Oracle在数据字典中保存相关的database link的信息。
  • 在使用database link的时候,Oracle通过预先定义好的连接信息,访问相应的远程数据库以完成相应的工作。
  • dblink(Database Link)就像电话线一样是一个通道,如果要访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

1、建立dblink之前需要确认的事项:

1
2
#确认从local database到remote database的网络连接是正常的,tnsping要能成功。
#确认在remote database上面有相应的访问权限。

1.2. 概述

1、database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。

2、在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。

1.2.1. database link分类

类型 Owner 描述
Pr ivate 创建database link的user拥有该database link 在本地数据库的特定的schema下建立的database link。只有建立该database link的schema的session能使用这个database link来访问远程的数据库。同时也只有Owner能删除它自己的private database link。
Public Owner是PUBLIC. Public的database link是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此database link来访问相应的远程数据库。
Global Owner是PUBLIC. Global的database link是网络级的,When an Oracle network uses a directory server, the directory server automatically create and manages global database links (as net service names) for every Oracle Database in the network. Users and PL/SQL subprograms in any database can use a global link to access objects in the corresponding remote database.
Note: In earlier releases of Oracle Database, a global database link referred to a database link that was registered with an Oracle Names server. The use of an Oracle Names server has been deprecated. In this document, global database links refer to the use of net service names from the directory server.

1.3. database link的创建

创建dblink的用户有对应的数据库权限,创建dblink命令为:

--public表示所创建的dblink所有用户都可以使用

1 create public database link

或者
--所创建的dblink只能是创建者能使用,别的用户使用不了

1 create database link

如果用户没有权限创建dblink,则可以通过管理员身份并使用 :

1 grant create public database link, create database link to myAccount;

1.4. 查看dblink

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
set linesize 300
set pagesize 999
col DB_LINK format a30
col USERNAME format a30
col HOST format a30
col CREATED format a10
col OWNER format a10
col object_name format a20
select owner,object_name from dba_objects where object_type='DATABASE LINK';
SELECT   A.OWNER, A.HOST, A.DB_LINK, A.USERNAME, A.CREATED,
         DECODE (B.FLAG, 0, 'NO', 1, 'YES') "DEC", B.AUTHUSR, C.STATUS
    FROM DBA_DB_LINKS A, SYS.USER$ U, SYS.LINK$ B, DBA_OBJECTS C
   WHERE A.DB_LINK = B.NAME AND
         A.OWNER   = U.NAME AND
         B.OWNER#  = U.USER# AND
         A.DB_LINK = C.OBJECT_NAME AND
         A.OWNER   = C.OWNER AND
         C.OBJECT_TYPE = 'DATABASE LINK'
ORDER BY 1, 2, 3;
查看dblink的link信息:
select * from dba_db_links;

或者

1 select * from dba_db_links;

如:A库需要访问B库的表数据,需要在A库建立连接到B库的dblink,在A账户下执行(推荐):

1
2
create database link LIS_LINK01 connect to bUser identified by bPasword using '10.22.xx.xx:1521/orcl'
create database link hebtz connect to hebtz identified by "1" using '192.168.2xx:1521/hebtzstd';

bUser:B库的数据库账户

bPassword:B库的数据密码

10.22.xx.xx:B库的ip地址

1
2
3
4
5
6
7
create database  link blink1 connect to dbName identified by dbPassword using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.106)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
--blink1 : 表示dblink名字
--dbName :表示 远程数据库的用户
--dbPassword:表示 远程数据库的密码
--HOST : 表示远程数据库IP
--PORT : 表示远程数据库端口
--SERVICE_NAME : 远程数据库的实例名

1.5. 使用toad for oracle创建dblink

图解dblink创建过程:

这时可以通过SSH用户访问SJSJZX用户中的表了:

1 select * from T_WEBSERVICE@db3

1.6. database link删除

-- 删除public类型的database link

1 DROP PUBLIC database link link_name;

-- 删除非public类型的database link

-- 注意:只有owner自己能删除自己的非public类型database link

1 DROP database link link_name;

1.7. 通过dblink应用例子

当需要跨库拷贝数据而且数据量很大的时候,使用dblink速度很快。

如:通过dblink跨库复制数据量非常多的表T_WEBSERVICE

1 create table test as select * from T_WEBSERVICE@db3

到此这篇关于ORACLE DBlink的创建和使用的文章就介绍到这了

分享到:

相关信息

  • Oracle rac环境的数据库导入操作步骤

    Oracle rac环境的数据库导入操作 以下应是规范的操作步骤: 1. 创建表空间前,先查看表空间所在目录 2. 创建用户表空间、用户及密码 3. 如果表空间不足,需创建足够的表空间文件 4. 如果上述创建的表空间存在问题,执行删除...

    2023-10-31

  • oracle分区表创建(自动按年、月、日分区)实战记录

    一、为什么要分区(Partition) 二、oracle 11g 如何按天、周、月、年自动分区 2.1 按年创建 2.2 按月创建 2.3 按天创建 2.4 按周创建 2.5 测试 三、numtoyminterval 和 numtodsinterval 的区别 3.1 numtodsinterval(<x...

    2023-10-31

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载