zoukankan      html  css  js  c++  java
  • Oracle—dblink创建与使用

    一、DbLink的创建

    1.PLSQL图文方式

    2.SQL方式

    -- Drop existing database link 
    drop database link LINK_NC_ZS;
    -- Create database link 
    create database link LINK_NC_ZS  connect to ZSFNC  identified by 123 using '190.75.16.11:1327/ORCL';
    View Code
    -- Drop existing database link 
    drop database link LINK_NC_ZS2;
    -- Create database link 
    create database link LINK_NC_ZS2
      connect to ZSFNC identified by 123
      using 'ZSF_NC_ZS =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 190.75.16.11)(PORT = 1327))
        )
        (CONNECT_DATA =
          (SERVICE_NAME =ORCL)
        )
      )';
    View Code

    3.dblink查看

    SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
     
    OWNER                          OBJECT_NAME
    ------------------------------ --------------------------------------------------------------------------------
    PUBLIC                         DBMS_CLRDBLINK
    PUBLIC                         ZSF_TEST
    NC1013                         LINK_NC_ZS
    NC1013                         LINK_NC_ZS2
    NC1013                         ZSKJ_LINK
    View Code

    按照权限分为public、private两种。

    二、dblink使用

    1.数据查询

    select * from so_sale@link_nc_zs
    View Code

    2.数据插入

    SQL> insert into t@dblinktest values(1);
    1 row created.
    View Code

    三、dblink优缺点

    过度使用DBLINK做系统集成会带来很多问题,问题主要由以下几点:
    1. 大量消耗数据库资源;
    本地系统每通过DBLINK链接远端系统一次,都会生成一个本地session,如本地session不退出或者手动释放,只有通过session超时才能自动释放,会浪费大量的系统资源
    2. 容易出现数据库BUG;
    大量使用DBLINK,本地系统极易出现ORA-02068、ORA-03113、ORA-02080、ORA-02054、ORA-02050等Oracle错误,这种错误大部分会影响当前session正在处理的业务
    3. 性能较差;
    由于使用DBLINK,本地系统在获取数据时,每次链接都会对远端数据库进行一次全表扫描,且所有数据都会传输回本地数据库内,导致性能降低并且严重浪费当前系统资源。尤其出现一条sql语句从两个DBLINK中取数,更被称之为“性能杀手”,尤其是OLTP型数据库
    4. 数据传输不稳定,占用带宽严重,容易产生丢包风险;
    DBLINK本身没有数据存储、监控等功能,是通过网络中的数据库进行传输时,如果在传输过程中出现数据丢包现象,DBLINK本身不会发现,只用当业务进行完毕才能发现丢包现象,这样会影响当前正在处理的业务;另外,通过DBLINK查询的数据会像数据全部传至本地数据库进行操作,数据传输量很大,占用带宽严重,可能会导致网络堵塞
    5. Oracle数据功能受限
    DBLINK本身不支持对oracle LOB大对象的操作,在使用PROCDURE时,使用COMMIT等操作时可能会出现错误;
    6. 可扩展性较差
    如果多系统之间 使用DBLINK进行传输,每增加一个系统,都会增加一个或多个DBLINK链接或者修改对应的接口程序,如果修改其中一个接口,需要修改所有关联系统内的接口程序;
    7. 维护性差、安全性较低
    通过DBLINK进行链接需要将远端数据库用户名、密码、IP地址存在本地数据库,如远端进行密码修改、IP地址变更,本地数据库也需要修改,如果系统较多,每个系统都需要同时修改。切本地数据库管理员能够看到远端数据的密码、IP地址,对系统安全产生影响。

    来自 <https://www.cnblogs.com/samuelhu/p/12400543.html>

  • 相关阅读:
    【转】js 获取浏览器高度和宽度值(多浏览器)
    Css相册
    微信公众号开发笔记2-自定义菜单
    微信公众号开发笔记1-获取Access Token
    【转】CSS选择器笔记
    【转】CSS浮动(float,clear)通俗讲解
    高云的jQuery源码分析笔记
    经典闭包例子详解
    执行控制——节流模式
    图片上下左右的无缝滚动的实现
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/13929927.html
Copyright © 2011-2022 走看看