Home » Oracle, 本站推荐

database link在分布式Oracle中的应用

25 10月 2008 No Comment

在做分布式数据库时难免用到dblink,但关于dblink的资料很少,很多书上提到了,但不详细。我在实际应用中总结了一点经验,现在贴出来,大家共同讨论。

数据库链接定义从一个Oracle数据库到另一个数据库的单行通信通道。

建立链接前要先有到远程数据库的命名服务(连接字符串),就是tnsnames.ora中描述的那个,如’oradxp’
先测试一下:


$tnsping oradxp
Attemping to contact(...) OK(30毫秒).

说明对远程数据库oradxp可访问。

创建数据库链接的语法为:


CREATE PUBLIC DATABASE LINK oradxp.cug.edu.cn USING 'oradxp';

其中 oradxp.cug.edu.cn 必须是远程数据库的全局名(SID),’oradxp’就是到远程的连接字符串。远程数据库的全局名可以通过登陆远程机,


SELECT * FROM global_name;

得到。

现在你就可以用链接oradxp.cug.edu.cn访问远程数据库了


SELECT * FROM global_name@oradxp.cug.edu.cn;

看看得到的是不是远程机的全局名。
所有SELECT 语句后面跟上链接名都是对远程机的访问。

注意:登陆名口令就是当前登陆本机的用户名和口令。也就是如果你用的是public链接,那么在远程就要有一个和本机相同的用户/口令才行。如:你以aaa/aaa登录本机,然后执行


SELECT * FROM BBB.bbb@oradxp.cug.edu.cn;

那么对远程数据BBB.bbb的访问用户为aaa口令为aaa
也就是在本机和远程机上都有用户aaa口令都为aaa才能执行成功!

关于私有链接:


CREATE DATABASE LINK oradxp.cug.edu.cn CONNECT TO system IDENTIFIED BY aaa;

这就建立了system的私有链接。
私有链接和public链接的差别就是登录名口令的限制。也就是
你不管用什么用户登录本机,执行


SELECT * FROM BBB.bbb@oradxp.cug.edu.cn;

访问远程机数据BBB.bbb的用户和口令都为system/aaa

建好的数据链接放在系统表SYS.link$表中
通过OEM控制台的 分布-〉数据库链接可以查看所有的链接。

要删除public link 可以


drop public database link linkname;

对于私有链接先以相应用户登陆,如上述system/aaa
然后


drop database link linkname;

当然,直接删除SYS.link$表中的记录一样可行。

本文源自互联网,原作者未知,由KingLife搜集整理.


Article Tags>> | | | |

相关文章:

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

:dm/wx :dm/fn :dm/tp :dm/cy :dm/? :dm/shuai :dm/dk :dm/yx more »