oracle中db link

一、db_link 的概述

  db_link是定义一个数据库到另一个数据库的路径的对象。db_link允许你查询远程表及执行远程的程序。

二、查看db_link (必须在DBA权限下查看)

select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;

oracle中db link_第1张图片

三、给用户配置创建dblink的权限

--给用户配置创建公共DB link(整个数据库中所有的用户下都能够使用)和创建私有DB link(只有创建DB link的用户能够使用) 的权限

grant create public database link,create database link to scott(用户名);

四、创建DB link

创建DB link 的方式有两种:

1)创建 DB link 的第一种方式是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库

 create (public)database link link_liu connect to HY_A0008282 identified by HY_A0008282 using 'AWS';
 
 其中link_liu 是创建的dblink名字,AWS是远程数据库的实例名,HY_A0008282/HY_A0008282123 是登录到远程数据库的用户/密码

2)创建 dblink的第二种方式是在本地数据库tnsnames.ora文件中没有配置要远程访问的数据库

create public database link link_q connect to HY_A0008282 identified by HY_A0008282123 using ' (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = orcl******naws.com.cn)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )';

第二种方式是把tnsnames.ora中的配置信息直接放到了dblink语句后面

四、使用dblink

 select * from dm_custbd_value_set@link_q;
 select * from HY_A0008282.dm_custbd_value_set@link_q;

五、删除的blink

 --注意:用户要有create public database link 或者 create database link的权限
 
 drop public database link LINK_AWS;

六、dblink与global_name的关系

创建dblink时要看本地的global_name是否为true,如果该参数为true,那么dblink的名字一定要和被访问数据库实例名一致,否则会报错。



你可能感兴趣的:(oracle基础)