Oracle 的dblink分析使用

2011-09-22 450 0

  数据库中的dblink是个好东西,可以很容易实现跨库的读取。

  在公司内部的各个系统之间,常常的要跨库读取数据,我们就建立了dblink。

  1.dblink的建立有两种方式

  a、在本地tnsnames.ora配置了主机服务

  语法:

  create public database

  link dapeng_link connect to dapeng

  identified by dapeng using ‘dapengdb’

  CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’

  b、未在本地主机配置的

  语法:

  create database link dapeng_link

  connect to dapeng identified by dapeng

  using

  ‘(DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.128.129)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVICE_NAME = dapengdb)

  )

  )’

  第二种其实也就是把tnsnames.ora中数据库的配置放进了建立dblink的过程中

  2.dblink的使用

  语法:

  select * from t_test@dapeng_link;

  操作和查询本地表的方式是一样的

  3.dblink使用注意

  在PL/SQL Developer的sql窗口执行带dblink的查询,会发现提交按钮和回滚按钮是高亮的,这个是由于dblink的查询会带一个事务,而且是一个distributed transaction(分布式事务),所以尽量的避免大量的使用dblink。

  使用dblink会占用远程数据库的session,本地的session没有释放掉或者出现异常信息,就会导致远程数据库的session大量占用。

  对于使用dblink之后,可以显示的用alter session close database dapeng_link来关闭手动的关闭远程数据库的session连接,但不能执行commit,否则会出现ORA-02080错误或者其他错误。

相关文章

15年来的手艺之路:手艺人赵鹏的自述
纪念 Google 25 周年:从搜索引擎到科技巨头的演变之路
1小时编写一个支持七牛上传的 markdown 客户端3(打包发布篇)
1小时编写一个支持七牛上传的 markdown 客户端2(代码优化篇)
1小时编写一个支持七牛上传的 markdown 客户端1(技术实现篇)
从 wordpress 转移到 hexo

Leave a Reply