设为首页 收藏本站
查看: 717|回复: 0

[经验分享] Oracle数据库链接(Database Link)详解

[复制链接]

尚未签到

发表于 2016-7-24 12:15:31 | 显示全部楼层 |阅读模式
    Oracle数据库链接(Database Link
物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库。用户可以通过网络对异地数据库中的数据进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发人员无需关心网络的链接细节、数据在网络节点中的具体分布情况和服务器间的协调工作过程。
数据库之间的链接建立在DATABASE LINK上。数据库链接定义从一个Oracle数据库到另一个数据库的单行通信通道。要创建一个DATABASE LINK,必须首先在建立链接的数据库上设置链接字符串,即配置一个远程数据库的本地网络服务名。
 
1.数据库链接的类型
Oracle数据库支持3种数据库链接:
(1)       private:由创建该链接的用户拥有,且仅对创建者可用。
(2)       public:由PUBLIC用户拥有,数据库中的所有用户都可以使用它。
(3)       global:由PUBLIC用户拥有。当Oracle网络使用目录服务器时,目录服务器为网络中的每个数据库自动创建和管理global数据库链接(作为网络服务名)。数据库中的所有用户都可以使用它。
 
2.数据库链接的用户
       创建数据库链接时,应该确定哪个用户连接到远程数据库访问数据。
与数据库链接有关的用户有3类:
1Connected user
访问数据库链接(链接定义中没有固定的用户名和口令)的本地用户。例如,如果system在查询中使用了public链接,那么connected usersystem,且它访问远程数据库的system模式。
注意:一个connected user不必是链接的创建者,它可以是能够使用该链接的任何用户。
例:
       SQL> create public database link hq using 'hq';
2Current user
       一个current_user数据库链接的global userglobal user必须使用X.509证书进行认证(SSL认证的企业用户),或者使用口令进行认证(口令认证的企业用户),并且是涉及该数据库链接的两个数据库中的用户。
       SQL> create public database link hq connect to current_user using 'hq';
 
3Fixed user
用户名和口令是数据库链接定义中一部分的用户。如果链接中包含fixed用户,在使用该fixed用户的用户名和口令连接远程数据库。
         SQL> create public database link hq connect to jane identified by doe using hq;

       这样,当本地数据库上的scott用户使用链接hq时,他将作为jane用户连接到网络服务名为hq的数据库。
 
3.数据库链接的命名
数据库链接的命名与远程数据库的初始化参数global_names的值有关:
Ÿ           如果global_names=true,则要求数据库链接的名字与远程数据库的全局数据库名相同。
Ÿ           如果global_names=false,则不要求数据库链接的名字与远程数据库的全局数据库名相同。
 
4.创建数据库链接
使用create database link语句创建数据库链接。创建数据库链接的帐号必须有CREATE DATABASE LINKCREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。
CREATE DATABASE LINKCREATE SESSION这两种权限都包含在CONNECT角色中,而CREATE PUBLIC DATABASE LINK权限在DBA中。
 
设远程数据库的全局数据库名为sales.acme.com
1Private connected use
SQL> create database link sales.acme.com using 'sales_us';
 
2Private global current user
SQL> create database link foo connect to current_user using 'am_sls';
 
3Private fixed user
       SQL> create database link sales.acme.com connect to scott identified by tiger using 'sales_us';
 

4Public fixed user
   SQL> create public database link sales connect to scott identified by tiger using 'rev';
 
5 Shared public fixed user
   SQL> create shared public database link sales.acme.com connect to scott identified by tiger authenticated by anupam identified by bhide using 'sales';
 

共享数据库链接:

每个应用使用一个数据库链接访问远程数据库。当多个用户同时运行应用时,将在本地和远程数据库之间造成大量的连接。共享数据库链接可以限制网络连接的数量。

 
5.使用数据库链接
SQL> select * from emp@sales;
 
对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:
SQL> create synonym sales_emp for emp@sales;
 
还可以建立一个本地的远程视图,方便使用:
SQL> create view sales_emp_view as select * from emp@sales;
 
现在本视图可与本地数据库中的任何其它视图一样对待,也可以授权给其它用户,访问此视图,但该用户必须有访问数据库链接的权限。
 
6.管理数据库链接
1)关闭数据库链接
       如果用户在会话中访问数据库链接,那么直到会话结束时,该链接将一直保持打开。
      
手工关闭数据库链接:
         alter session close database link dblink;
 
2)删除数据库链接:
drop [public] database link dblink;
 
7.查看数据库链接的信息
1)查看有哪些数据库链接
       三个数据字典视图:dba_db_linksall_db_linksuser_db_links
SQL> select * from dba_db_links;
 
       desc dba_db_links:可以查看各字段的含义
 
2)查看哪些数据库链接是打开的
   使用动态性能视图v$dblinkgv$dblink(RAC中有用),可以查询当前会话中打开的数据库链接的信息
    SQL> select * from v$dblink;
 
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248625-1-1.html 上篇帖子: Quartzs -- JDBC-JobStore 下篇帖子: ORACLE等频直方图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表