`
argel_lj
  • 浏览: 364854 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初识 DB Link

 
阅读更多

1   何为db link ?

    

2   db link 详解

一:dblink创建: 

     

       1、已经配置本地服务

             create public database

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

 


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

 

数据库连接字符串'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)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

 

3   dblink 介绍

 

   数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先在每个数据库服务器上设置链接字符串。
  
  1、 链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名:
  
  2、创建数据库链接,
  进入系统管理员SQL>操作符下,运行命令:
  
  SQL>create public database link beijing connect to scott identified by tiger
        using 'tobeijing';
  
  则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据:
  
  SQL>select * from emp@beijing;
  
  这样就可以把深圳和北京scott用户的数据做成一个整体来处理。
  
  3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym
  
  SQL>create synonym bjscottemp for emp@beijing;
  
  于是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。
  
  4、查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:
  
  SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

分享到:
评论

相关推荐

    初识C++ 初识C++

    初识C++ 初识C++ 初识C++初识C++初识C++初识C++初识C++

    初识云计算.ppt

    初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算

    python初识

    python 列表初识,通过此代码,你能够了解到python的列表操作

    jvm初识及JIT优化

    jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识...

    三年级信息技术课程初识画图

    三年级信息技术课程《初识画图》课件内容 因为要参加比赛,所属机房 装不上

    初识C语言.pdf

    初识C语言.pdf

    初识JavaScript(源代码)

    初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...

    头歌初识redis答案.rar

    在头歌平台初识Redis的答案可以总结如下: 一、基础知识 Redis数据库数量: Redis默认有16个数据库,可以使用select命令进行切换。 数据库大小与键的查看: 使用DBSIZE命令查看当前数据库的大小(即键的数量)。 ...

    初识ERP初识ERP.ppt

    初识ERP初识ERP

    初识计算机PPT课件.pptx

    "初识计算机PPT课件" 计算机的基本概念: 计算机是一种电子设备,能够执行用户的指令,进行数据处理和存储。计算机的种类很多,可以分为台式计算机、便携式计算机、掌上计算机等。 台式计算机: 台式计算机是一...

    初识数据安全系列语音教程

    初识数据安全系列语音教程

    初识EXCEL教案

    初识EXCEL 教案 多媒体课件教师上课专用

    初识excel教学设计

    【初识Excel教学设计】 Excel是一款广泛应用于数据管理和分析的电子表格软件,对于初学者来说,理解其基本功能和操作是至关重要的。本教学设计针对初中信息技术课程,旨在引导初一学生逐步熟悉Excel,帮助他们建立...

    MATLAB初识神经网络

    这个“MATLAB初识神经网络”视频教程是为那些想要入门神经网络学习者设计的,它将引导你逐步了解神经网络的基本概念和MATLAB中的实现方法。 神经网络,作为人工智能的重要分支,模仿了人脑的结构和功能,通过大量的...

    初识A寻路算法

    标题中的“初识A*寻路算法”表明我们要探讨的是计算机科学中的一种路径搜索算法——A*(A-star)算法。A*算法是Dijkstra算法的优化版本,广泛应用于游戏开发、地图导航、网络路由等领域,它通过引入启发式信息来实现...

    《初识Excel》

    本课是中学信息技术-_《初识Excel》PPT课件.ppt 的课件

    第01讲 初识Java.ppt

    第01讲 初识Java.ppt

    初识电脑朋友课件

    【初识电脑朋友课件】是一份专为初学者设计的信息技术入门教程,旨在帮助初次接触电脑的朋友快速理解和掌握基本的计算机操作技能。这个课件可能涵盖了从打开电脑到使用各种常见软件的全面内容,是学习电脑基础知识的...

    初识单片机知识初识单片机知识.doc

    初识单片机知识初识单片机知识

Global site tag (gtag.js) - Google Analytics