zoukankan      html  css  js  c++  java
  • Oracle 连接 另一个Oracle数据库 服务器连接

    一、场景
      两台不同的服务器A、B分别装有不同业务的oracle数据库,因业务需要,现需要将B中test表的数据,定时同步到A中。

    二、实现
      根据以上场景,我想到了oracle中的dblink,当用户需要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库可以通过创建远程数据库的dblink,实现像访问本地数据库一样访问远程数据库表中的数据。

    三、具体操作
    1、用sysdba身份登录A服务器oracle,首先确定是否有创建link的权限,执行锁起来:
    select * from user_sys_privs t where t.privilege like upper('%link%');
    查询结果:SYS CREATE DATABASE LINK NO
            SYS DROP PUBLIC DATABASE LINK NO
             SYS CREATE PUBLIC DATABASE LINK NO

    在数据库中dblink有三种权限
    CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),
        如果没有权限,可通过grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to sysdba赋予权限;

    2、配置A服务器oracle的tnsnames.ora,将B数据库的连接配置进来:
    TLINK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.100.100.100)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = oracle)
        )
      )

    3、创建A-B的dblink:
    create public database link alink
    connect to scott identified by tiger using 'TLINK';

    其中alink是你创建的dblink名字,'TLINK'是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。

    4、执行sql,在本地数据库中通过dblink访问远程数据scott.test表,如下示例:
      select * from scott.test@alink where 1=1;

  • 相关阅读:
    一个JAVA题引发的思考
    eclipse好玩的插件集(一) CKEditor插件
    Log4J使用实例---日志进行邮件发送或是存入数据库
    log4j输出到数据库(输出自定义参数、分级保存)
    String和StringBuffer的一点研究
    String、StringBuffer、StringBuilder区分和性能比较
    最新eclipse安装SVN插件
    jsoup select 选择器
    网页导出excel文件
    Dom4j完整教程
  • 原文地址:https://www.cnblogs.com/LittleFeiHu/p/10083273.html
Copyright © 2011-2022 走看看