Oracle-dblink

说明:dblink(Database Link,数据库链接) 用于在本地数据库中访问远程数据库的数据对象

链接类型

  • 私有数据库链接(Private Database Links):只在当前用户下生效
  • 公共数据库链接(Public Database Links):具有public权限的用户可以使用
  • 全局数据库链接(Global Database Links):数据库的所有用户都可使用,全局生效。

创建DBlink

语法

create database link <link_name>
create public database link <link_name>
  • 创建私有DBlink

    create database link <link_name>
    --使用当前数据库的用户名和密码登录远程数据库
    create database link <link_name> connect to current_user using <server_name>
    --指定远程数据库用户密码
    create database link <link_name> connect to <username> identified by <password> using <server_name>

    注意:

    link_name链接名称可以任意指定,建议和远程数据库的全局数据库名称一致,方便对应联系。

    username/password远程数据库的用户名和密码

    server_name是在本机tnsnames.ora文件中配置的名称

  • 示例:

    create database link bjdbcore connect to admin iidentified by bjpassword using 'bjdbcore'
    #tnsnames.ora
    bjdbcore =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = bjdbcore)
        )
      )
  • 使用dblink查询数据

    --在分校的数据库查询总校数据库中学号是666的学生信息
    select * from student@shcoolcore where stu_id='6666'
  • 创建共享DBlink(Shared Database Links)

    场景:如果有很多应用同时使用DBlink,会导致本地数据库和远程服务器建立很多连接。共享DBlink可以限制本地服务器和远程服务器之间的网络连接数。

    CREATE SHARED DATABASE LINK dblink_name
    create shared database link <dblink_name>

管理DBlink

查看

  • 查看当前已有数据库链接(link)

    --通过USER_DB_LINKS查看dblink信息
    SELECT * FROM USER_DB_LINKS;

    DB_LINK:链接名称

    username:远程数据库用户名

    PASSWORD:远程数据库用户密码

    HOST:远程数据库

    CREATED

删除

drop [public|shared] database <link_name>

断开会话中的dblink

dblink的打开状态随会话的状态变化,会话关闭,链接也随之关闭。

--立即中断一个处于会话中的链接
alter session close database link <link_name>

标签: oracle, dblink

评论已关闭