分布式Oracle的database link --建立数据库间的通迅通道
url:http://hi.baidu.com/lgh_boffin/blog/item/2ff4f33872b4eb2a97ddd886.html
2009年07月26日 星期日 22:24
Oracle的database link --建立数据库间的通迅通道
数据库链接定义从一个Oracle数据库到另一个数据库的单行通信通道。
建立链接前要先有到远程数据库的命名服务(连接字符串),就是tnsnames.ora中描述的那个,如远程数据库SID名 'ora10g'
[测试] cmd:tnsping ora10g
Attemping to contact(...) OK (810 msec) // 说明对远程数据库ora10g可访问。
创建数据库链接的语法分为 public链接 和 私有链接;
public链接创建语法:
CREATE PUBLIC DATABASE LINK org10g USING 'org10g';
其中 org10g 必须是远程数据库的全局名(SID), ' org10g ' 就是到远程的连接字符串。
全局名可以通过远程登陆数据库执行SQL:
SELECT * FROM global_name@ora10g 查看到.
删除public link :
drop public database link linkname;
[注意]登陆名口令就是当前登陆本机的用户名和口令。也就是如果你用的是public链接,那么在远程就要有一个和本机相同的用户/口令才行。如:你以aa/111登录本机,然后执行
SELECT * FROM bb@ora10g;
那么对远程数据bb的访问用户为aa口令为11
也就是在本机和远程机上都有用户aa口令都为11才能执行成功!
私有链接创建语法:
CREATE DATABASE LINK ora10g CONNECT TO system IDENTIFIED BY aa;
这就建立了system的私有链接。
私有链接和public链接的差别就是登录名口令的限制。
即你不管用什么用户登录本机,执行
SELECT * FROM bb@ora10g;
访问远程机数据bb的用户和口令都为system/aa
建好的数据链接放在系统表SYS.link$表中
删除私有 link :
drop database link linkname;
或者: 当然,直接删除SYS.link$表中的记录一样可行。
oracle创建db link访问远程数据库中LOB表
2008-06-27 16:51
创建语句:
create database link REMOTE.US.ORACLE.COM connect to REMOTEUSER identified by "<pwd>" using 'REMOTEDB';
信息: Link Owner: LOCALUSER Link Name: REMOTE.US.ORACLE.COM Host : REMOTEDB User Name :REMOTEUSER
查询远程数据库用户表的内容: select * from tablename@REMOTE.US.ORACLE.COM
ora-22992 通过DBLINK 访问远程CLOB表问题(转载)
在本地用select语句访问远程,如果远程表有CLOB字段的话则会有错:ora-22992; 如果真的想看到clob字段的内容的话就得在本地建立一个表,用下面两条语句: 我刚才试验insert into table select * from remote table成功 remote table含有CLOB 总结:在我的环境中成功 (1)create table aaa select * from remote table (2)insert into table select * from remote table
不过网上也有以下说法,虽然有错,不过也是一种方法,
通过临时表从DBLink中获取Blob对象2006-12-05 20:37做系统集成时,通过Database Link共享数据是不错的选择。不过真正使用DBLink时却碰到一个不小的问题:从远程数据库上查询Blob字段时总返回ORA-22992错误,如下:
select blobcolumn from remoteTable@dl_remote;
ORA-22992: 无法使用从远程表选择的 LOB 定位器
查找了一下解决方法,有人提出了采用物化视图可以解决这个问题。物化视图唯一的缺陷在于同步机制的问题,如果同步时间设置过短,则占用大量的系统资源,给服务器带来极大的压力;如果设置时间过长,前台用户不可接受。
后来还是AskTom给出了极好的解决方案:使用全局临时表。
SQL> create global temporary table foo
2(
3 X BLOB
4)
5 on commit delete rows;
Table created
SQL> insert into foo select blobcolumn from remoteTable@dl_remote where rownum = 1;
1 row inserted
SQL>
插入本地临时表之后,在本地的操作就没有任何问题了。
至于为什么临时表可以直接插入,而永久表为什么不能插入,本人未做具体研究?/
|
分享到:
相关推荐
极少的分布式数据库的资料,比较详细的讲述了分布式数据库,添加了许多框图和动画。
基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-sequence基于数据库的分布式发号器-viemall-...
藏经阁-PolarDB-X开源分布式数据库实战进阶-134
该系统使用java编写,通过测试,可以运行。该系统模仿了分布式数据库。
distcc-2.18.3 分布式编译工具 distcc-2.18.3 分布式编译工具
ORACLE数据库常见问题诊断方法(分布式事务篇)-20021224-A2.doc
分布式架构网上商城-分布式架构网上商城系统-分布式架构网上商城系统源码-分布式架构网上商城管理系统-分布式架构网上商城管理系统java代码-分布式架构网上商城系统设计与实现-基于springboot的分布式架构网上商城...
分布式定时任务xxl-job 数据库为postgre版本
分布式缓存--缓存与数据库强一致场景下的方案.doc
分布式-系统-存储-数据库-云计算--(2).ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
藏经阁-开源分布式数据库PolarDB-X源码解读-200
分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于...
分布式实时数据库系统-AGILOR,电力行业
分布式数据库30讲,高清带目录,可编辑。
分布式数据库,介绍,教学用,外文教材。。。。。。。。
分布式数据库考试题目-共5题.doc
Oracle 分布式数据库环境搭建
分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理分布式数据库原理