• oracle dblink的创建与使用


    一、什么是DBLINK

    dblink,顾名思义就是数据库的链接。

    当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过该dblink就可以达到访问远程数据库中表中数据的目的。

     注意:dblink是单向的连接。

    二、DBLINK创建实例

    目的:

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

    步骤:

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

    登陆用户user_a;

     select * from user_sys_privs where privilege like upper('%DATABASE LINK%');    
    

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

    grant create public database link,drop public database link to user_a;

    注:
    dblink有三种权限:
    CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
    CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
    DROP PUBLIC DATABASE LINK

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

    create public  database link dblink1 connect to user_b identified by user_bpass using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
    
    dblink1 表示dblink名称;
    user_b 表示远程数据库的用户;
    user_bpass 表示远程数据库的密码;
    port 表示远程端口;
    service_name 表示远程数据库实例名

    4、使用dblink

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

    select * from user_bTablename@dblink1 ;
    #举例
    #insert into test@dblink1 values (1);
    #select * from test@dblink1;

     

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

    三、DBLINK常用命令

    1、删除public的DBLINK

         drop public database link dblink1;

         删除非public的DBLINK

         drop  database link dblink1;

    注*只有owner自己能删除自己的非public类型dblink。

    2、查看数据库所有用户的DBLINK

          select * from ALL_DB_LINKS;

  • 相关阅读:
    [csp-s模拟测试72] 简单的期望
    [csp-s模拟测试72] 简单的序列
    csp-s模拟测试70
    经验积累
    [csp-s模拟测试69] 回滚莫队
    [模板]主席树查前趋后继
    复习及学习计划
    错排公式
    csp-s模拟测试 56~65
    LIS LCS LCIS
  • 原文地址:https://www.cnblogs.com/jinyuanliu/p/10397363.html
Copyright © 2020-2023  润新知