Oracle—dblink创建与使用

摘要:
这些错误中的大多数将影响当前会话正在处理的业务。3.性能差;每个链接将在远程数据库上执行全表扫描,通过DBLINK查询的数据将被传输到本地数据库进行类似数据的操作,这可能会导致网络拥塞。5.Oracle数据功能有限。DBLINK本身不支持oracle LOB大型对象的操作,并将添加一个或多个DBLINK链接或修改相应的接口程序,这些程序需要修改所有关联系统中的接口程序。

一、DbLink的创建

1.PLSQL图文方式

Oracle—dblink创建与使用第1张

2.SQL方式

Oracle—dblink创建与使用第2张Oracle—dblink创建与使用第3张
-- 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
Oracle—dblink创建与使用第4张Oracle—dblink创建与使用第5张
-- 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查看

Oracle—dblink创建与使用第6张Oracle—dblink创建与使用第7张
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.数据查询

Oracle—dblink创建与使用第8张Oracle—dblink创建与使用第9张
select * from so_sale@link_nc_zs
View Code

2.数据插入

Oracle—dblink创建与使用第10张Oracle—dblink创建与使用第11张
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>

免责声明:文章转载自《Oracle—dblink创建与使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安卓学习(一)给PHP安装和开启curl扩展下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据库系统中文件附件保存的最佳办法

数据库系统中文件附件保存的最佳办法 作者:http://blog.csdn.net/jacklondon http://blog.csdn.net/jacklondon/archive/2010/10/26/5966558.aspx 开发数据库系统的人很多,我相信也有很多人碰到过要将文件保存在数据库中的问题。常见的数据库系统,都有 blob/image/b...

MySQL连接池

一. 什么是数据库连接池 官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对连接池中的连接进行申请,使用,释放。 理解:创建数据库连接池是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接池,并把他们集中管理,供程序使用,可以保证...

python用sqlite3模块操作sqlite数据库-乾颐堂

SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。 一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用,以便于以后转移到更大型的数据库。 SQLite的主要优点: 1. 一致性的文件格式: 在SQLite的官方文档中是...

系统综合实践 第5次实践作业

目录 (一)Python容器文件配置 (二)程序的部署运行 (1)helloworld (2)日历输出 (3)数据库操作 (4)opencv (三)实验感想 作业地址 (一)Python容器文件配置 目录结构 Dockerfile FROM python MAINTAINER yezi WORKDIR /app #添加依赖文件 C...

js中访问SqlServer数据库

1 <script language="JavaScript"> 2 //创建数据库对象 3 var objdbConn = new ActiveXObject("ADODB.Connection"); 4 //DSN字符串 5 var strdsn = "Driver={SQL Server};...

Oracle12c中配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)

Oracle12c中的多宿主选项允许一个容器数据库(CDB)容纳多个独立的可插拔数据库(PDB)。本文将展示如何配置实例参数和修改容器数据库(CDB)及可插拔数据库(PDB)。1. 配置CDB中的实例参数(ALTER SYSTEM)配置CDB实例参数和配置非CDB实例参数没什么不一样。ALTER SYSTEM命令用来设置初始化参数,而有些数据库配置修改需要...