`

Database Link详解

阅读更多

--创建 CREATE public database link test_link CONNECT TO scott IDENTIFIED BY tiger using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = LEE) ) )'; --使用 select ename from emp@test_link; --删除 drop public database link TEST_LINK;


 

 

一:dblink创建:

 

 

 

 

 

     

       1、已经配置本地服务

             create public database

  link  toBeJing connect to scott
  identified by tiger using 'BEJING'

 


数据库连接字符串'BEJING'是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

 

        2、直接建立链接

             create database link toBeJing

   connect to scott identified by tiger
   using '(DESCRIPTION =
   (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X )(PORT = 1521))
   )
   (CONNECT_DATA =
   (SERVICE_NAME = BJORCL)
   )
   )';

 


host=数据库的ip地址,service_name=数据库的ssid。

  其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。

注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

1.先创建PUBLIC DATABASE LINK,不用指定用户和密码 

scott@TEST>conn system/test
   Connected.
system@TEST>CREATE PUBLIC DATABASE LINK orcl USING 'BEJING';
  Database link created.


  2.再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码
system@TEST>conn scott/tiger
   Connected.
  
scott@TEST>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;
   Database link created.

  实际上相当于: 

 CREATE DATABASE LINK orcl USING 'BEJING' CONNECT TO scott IDENTIFIED BY tiger;

 


db link 有3种类型,我这里只讨论其中两种,connected user和fixed user。
connected user,简单来说,连接方数据库以connected的用户来连接远程数据库。
fixed user,简单来说,连接方数据库以fixed(指定的)用户来连接远程数据库。

 


看看创建db link语法,你对这两种类型就比较清楚了。

创建connected  user的db link语法:
create databas link foo connect to scott identified by tiger using 'BEJING' ;

创建fixed user的db link语法:
create databas link foo using 'BEJING' ;

 


db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要保证唯一。数据库名称是db_name。数据库名称一般都取得比较短,我的习惯一般取长度4个字符,重名概率高。

所以,oracle模仿域名搞出一个global_name,global_name=db_name+db_domain。
有了global_name,就可以实现数据库命名的全局唯一。例:ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

 


数据库全局名称可以用以下命令查出
       SELECT * FROM GLOBAL_NAME;

 


如果global_names=true,那么db link的命名要和远程数据库的global_name相同;
如果global_names=false,那么你可以随便命名db link。

 


查询global_names是true还是false,在pl/sql中的命令窗口(不是sql窗口)执行:show parameter global_names

 

二、dblink查询:

查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:   
  SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

 


三、dblink删除:

    DROP PUBLIC DATABASE LINK toBeJing

 

四、dblink使用:

       SELECT……FROM表名@数据库链接名;

  查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

例:查询北京数据库中emp表数据   select * from emp@toBeJing;

 

五、同义词配合:

       第四点中from emp@toBeJing可以创建同义词来替代:
       CREATE SYNONYM同义词名FOR 表名;


CREATE SYNONYM同义词名FOR 表名@数据库链接名;

       如:create synonym bj_scott_emp for emp@toBeJing;

于是就可以用bj_scott_emp来替代带@符号的分布式链接操作emp@toBeJing

 

      DB LINK是独立于创建用户(USER_DB_LINKS的USERNAME)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

 

 

 

分享到:
评论
5 楼 刘一杰 2013-02-26  
4 楼 chaomc 2012-06-19  
3 楼 kadan_james 2012-06-12  
2 楼 andysofan 2011-02-17  
不错不错
1 楼 greedsluck 2010-08-30  

相关推荐

    database link详解

    database link详解 一:dblink创建 二、dblink查询 三、dblink删除 四、dblink使用 五、同义词配合

    Database Link经典详解

    Database Link详细讲解oracle分布式.文档详细,精简,供大家学习!

    Oracle创建Database Link的两种方式详解

    Oracle数据库如何创建Database Link呢?本文我们主要就介绍一下这部分内容,Oracle数据库创建Database Link有两种方式,一种是通过菜单,一种是通过SQL

    Oracle dblink详解

    database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。 在创建database ...

    orcle dblink 的创建与删除的详解及实例

    orcle dblink 的创建与删除的详解及实例 易混淆术语介绍:Db_name,Db_domain,Global_name,Service_name 删除 Dblink 报错 ORA-02024: database link not found 的解决方法 .

    oracle跨库查询dblink的用法实例详解

    本文实例讲述了oracle跨库查询dblink的用法。分享给大家供大家参考,具体如下: 1.创建之前的工作 在创建dblink之前,...SYS CREATE DATABASE LINK NO SYS DROP PUBLIC DATABASE LINK NO SYS CREATE PUBLIC DATABASE

    Oracle 12C实现跨网络传输数据库详解

    跨网络传输数据库,可以通过使用network_link参数来执行导入操作,导入操作将使用数据库链路,不需要生成dump文件。 操作步骤如下: 1、在目标数据库中创建链接到源数据库的数据链路。执行导入操作的用户必须要有...

    Altium Designer 基于access数据库的集成库设计

    Altium Designer 基于access数据库的集成库设计,Excel也类似。 基于数据库的集成库设计,可以很方便管理元器件,和导出待料号,单价等信息...具体详解见博客: https://blog.csdn.net/wybliw/article/details/85041494

    Word_2003域应用

    (6)Link域 9 (7)NoteRef域 10 (8)PageRef域 10 (9)Quote域 11 4.日期和时间 12 (1)CreateDate域 12 (2)Date域 12 (3)EditTime域 12 (4)PrintDate域 12 (5)SaveDate域 12 (6)Time域 13 5.索引和目录 13 (1)Index域 13...

    从入门到精通HTML5——PDF——网盘链接

     2.5.4 设置链接文字属性——link 35  2.5.5 设置边距——margin 37  2.6 页面的注释标记 38  2.7 实例演练——创建基本的HTML网页 38  2.8 小结 39  2.9 习题 40  第3章 设计网页文本内容 41  教学录像:29...

Global site tag (gtag.js) - Google Analytics