zoukankan      html  css  js  c++  java
  • Oracle dblink配置

    一. dBlink 简述

      dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

    二. 创建dblink

      

      创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:

    1 select * from user_sys_privs t
    2 where t.privilege like upper('%link%');

      查询结果集 :

     

     

        可以看出在数据库中dblink有三种权限:

          1.CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了) ,

          2.CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),

          3.DROP PUBLIC DATABASE LINK。(删除dblink)
      在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASELINK权限授予给你的用户:

         1 grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott; 

         然后以scott用户登录本地数据库

    2.1 已经配置本地服务 

    1 create public database link link_name
    2 connect to username identified by password
    3 using 'connect_string';

    :link_name是连接名字,可以自定义;

      username是登陆数据库的用户名;

      password是登陆数据库的用户密码;

      connect_string是数据库连接字符串。

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

    2.2 直接建立链接

     1 create database link link_name
     2 connect to username identified by password 
     3 using ' (DESCRIPTION =
     4     (ADDRESS_LIST =
     5       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.13.178)(PORT = 1521))
     6     )
     7     (CONNECT_DATA =   
     8       (SERVICE_NAME = rzzqnew)
     9     )
    10   )'; 

    :host=数据库的ip地址;

      service_name=数据库的ssid。

    2.3 两种方法比较

      其实两种方法配置dblink是差不多的,第二种方法比较不受本地服务的影响。
       注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

    三. dblink常用命令

    3.1 dblink查询

      查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:

    1 SQL>select owner,object_name from dba_objects 
    2 where object_type='DATABASE LINK';
    3 或者
    4 select * from dba_db_links;

    3.2  dblink删除
      

    1 DROP PUBLIC DATABASE LINK link_name;

    3.3  dblink使用 

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

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

    四.  配置实例

    4.1 机器准备

    Machine 1:

      Ip   : 10.10.13.178

      ORACLE: rzzqnew

    Machine 2:

      Ip   :10.10.13.35

      ORACLE:headdb

    4.2 创建db link

      登陆headdb数据库,账号kingstar 密码kingstar

      

     1 create  database  link  dblinktest
     2 connect  to  kingstar  identified  by  kingstar
     3 using  '  (DESCRIPTION = 
     4                (ADDRESS_LIST =
     5                  (ADDRESS = (PROTOCOL = TCP)  (HOST = 10.10.13.178)
     6                  (PORT = 1521))
     7                 )
     8                 (CONNECT_DATA = 
     9                   (SERVICE_NAME = rzzqnew)
    10                 )
    11              ) ';

    注意:1. 创建dblink时候,主要看本地的global_name 是否为true,如果本地的global_name =true,那么你创建的dblink必须和远端数据               库的global_name 一样,否则创建了dblink也不能查到数据;

       2. 上面这段代码,如果打错,使用dblink时会报错。

     这里我们创建的dblink  名字是dblinktest,与其不一样,所以可以做下面修改。

    1 alter  system  set  global_names=false;

    4.3 使用dblink

      执行:

    1  select * from dual@dblinktest

      结果如下:

    通过这种方法即可实现在headdb数据库上使用rzzqnew数据库下的内容。

     

    :其实两种方法配置dblink是差不多的,第二种方法比较不受本地服务的影响;
       假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

     

     

     

     

     

  • 相关阅读:
    转:BIOS的恢复技术之Top Swap的原理应用
    半硬化树脂PP的型号
    PADS常用画板过程
    ad2014注册出现:注册
    CPU处理多任务——中断与轮询方式比较
    PDS常用快捷键
    方法三破解:Excel工作表保护密码
    【Linux指标】内存篇
    mac apt-get--> Homebrew
    20180113Go匿名函数和闭包
  • 原文地址:https://www.cnblogs.com/ZiyuanZhu/p/5923600.html
Copyright © 2011-2022 走看看