zoukankan      html  css  js  c++  java
  • [terry笔记]dblink

    dblink在分布式数据库集群中很常见,今天简单的总结一下。

    db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要保证唯一。
    数据库名称是db_name。数据库名称一般都取得比较短,重名概率高。
    所以,oracle模仿域名搞出一个global_name。
    global_name=db_name+db_domain。
    有了global_name,就可以实现数据库命名的全局唯一。
    例:ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

    数据库全局名称可以用以下命令查出
    SELECT * FROM GLOBAL_NAME;

    如果global_names=true,那么db link的命名要和远程数据库的global_name相同;(默认)
    如果global_names=false,那么你可以随便命名db link。

    查询global_names是true还是false,在pl/sql中的命令窗口(不是sql窗口)执行:show parameter global_names

    一、首先在tns文件中创建目标数据库的信息。

    # tnsnames.ora Network Configuration File: d:u01product11.2.0dbhome_1
    etworkadmin	nsnames.ora
    # Generated by Oracle configuration tools.
    
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )
    
    TERRY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = kkterry-PC)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = terry)
        )
      )
    
    gd2 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.199.250)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = good2)
        )
      )
    View Code

    创建connected user的db link语法:此种方法@gd2,只会返回目标库中scott下面的对象。

    create public databas link gd2 connect to scott identified by tiger using 'good2';

    创建fixed user的db link语法:此方法@gd2,原库是什么用户,就回读取目标库什么用户。如果目标库没有此用户,会报错ora01017,用户名密码不对。

    create public databas link gd2 using 'good2';

    public参数指的是是否为私有的。


    二、dblink查询:
    查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:   
    SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

    三、dblink删除:
    DROP PUBLIC DATABASE LINK gd2;
    DROP DATABASE LINK gd2;

    四、dblink使用:
    SELECT xxx FROM table_name@dblink_name;
    查询、删除和插入数据和操作本地的数据库是一样的

    五、同义词配合:
    第四点中from emp@toBeJing可以创建同义词来替代:
    CREATE SYNONYM 同义词名 FOR 表名;
    CREATE SYNONYM 同义词名 FOR 表名@数据库链接名;
    如:create synonym bj_scott_emp for emp@toBeJing;
    于是就可以用bj_scott_emp来替代带@符号的分布式链接操作emp@toBeJing

  • 相关阅读:
    Egg 中使用 Mongoose 以及 Egg 中的 model
    Egg.js 中使用第三方插件以及 Egg.js 插件 egg-mongo-native 操作 mongodb 数据库
    egg定时任务
    jsx中给VUE绑定事件
    【T09】要认识到TCP是一个可靠的,但不是绝对可靠的协议
    PostgreSQL 高级SQL(五) 内建窗口函数
    PostgreSQL 高级SQL(四) 滑动窗口函数
    PostgreSQL 高级SQL(三) 窗口函数
    PostgreSQL 高级SQL(二) filter子句
    PostgreSQL 高级SQL(一)分组集
  • 原文地址:https://www.cnblogs.com/kkterry/p/3460805.html
Copyright © 2011-2022 走看看