Oracle中DBLink的相关操作

Oracle中的DBLink的相关操作

摘要:

​ DBLink,全称databasse link(数据库连接),就是在一个数据库中创建另一个数据库的连接或着说映射,然后就可以在数据库中通过tableName@DBLink_NAME方式来操作另一个数据库的数据。

一、创建

第一步:赋予权限

​ 在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用wangyong用户登陆orcl):

-- 查看wangyong用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';

​ 如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为WANGYONG用户赋予创建权限

-- 给wangyong用户授予创建dblink的权限
grant create public database link to wangyong;

​ 此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限

创建sql

CREATE PUBLIC DATABASE LINK db_link_name CONNECT TO username IDENTIFIED BY password USING '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =visist_IP)(PORT =visit_port ))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = db_name)
    )
  )';
  --参数说明
  --username 需要访问数据用户名, password  密码, visit_ip  需要访问数据库的ip,visit_port 窗口, db_name数据库名称

注意:1. 创建dblink时候,主要看本地的global_name 是否为true,如果本地的global_name =true,那么你创建的dblink必须和远端数据库的global_name 一样,否则创建了dblink也不能查到数据;

   2. 上面这段代码,如果打错,使用dblink时会报错。

这里我们创建的dblink 名字是dblinktest,与其不一样,所以可以做下面修改。

1 alter  system  set  global_names=false;

二、查看

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

或者

select * from dba_db_links;

三、使用

select count(*) from tableName@DBLink_NAME;

tableName为表名,DBLink_NAME为创建的DBLink的名字

四、删除

drop public database link  DBLink_NAME
posted @ 2022-08-15 09:51  猫的烦恼  阅读(553)  评论(0编辑  收藏  举报