Oracle 跨库 查询 复制表数据 分布式查询

时间:2021-05-11 02:11:00

方法一:

在眼下绝大部分数据库有分布式查询的须要。以下简单的介绍怎样在oracle中配置实现跨库訪问。

比方如今有2个数据库服务器,安装了2个数据库。数据库server A和B。如今来实如今A库中訪问B的数据库。

第一步、配置Aserver端的tnsnames.ora文件(TNSNAMES.ORA Network Configuration File),该文件存放的位置为:

$ORACLE_HOME/network/admin/tnsnames.ora

加入例如以下行,当中DBLINK为连接名(可自己定义),HOST和PORT为数据库侦听的IP及port,SERVICE_NAME为数据库的SID, 
 
MEDIADBLINK = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = db) 
    ) 
  ) 

第二步、在Aserver的一个库中建立B的一个数据的DBLINK。语法例如以下:

运行例如以下查询语句,当中MEDIADB为database link名(可自己定义),MEDIADBLINK为先前在tnsnames.ora中定义的连接名, 
  dbuser为username,password为密码 
    
  -- Create database link 
  create database link MEDIADB 
  connect to dbuser identified by password 
  using 'MEDIADBLINK'; 
第三步.使用链接的数据库 
  
  3.1 查询、删除和插入数据和操作本地的数据库是一样的。仅仅只是表名须要写成“表名@database link名”,如 
 
  select * from table_name@MEDIADB ; 
 
  3.2 也能够为这个表创建一个同义词 
  
  create synonym aaa for table_name@MEDIADB ; 
 
  例如以下语句的效果和3.1中的一样 
 
  select * from aaa; 
 
  删除同义词的语句为 
 
  drop synonym aaa; 

select * from tabname@dcmdb where 1=1;

方法二:

首先创建数据库链接:

CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆username IDENTIFIED BY password USING '(DESCRIPTION =

     (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracleserver的IP地址)(PORT = port号))

     )

     (CONNECT_DATA =

(SERVICE_NAME = 对方Oracleserver服务名)

     )

   )' 

当中 数据链名称 为加入到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名

要查询对方数据库的表TableName语句例如以下:

SELECT 字段名 FROM TableName@数据链名称;

复制表数据:

insert into 表名(字段名) (SELECT 字段名 FROM TableName@数据链名称);

查看DBLINK:

select owner, db_link from dba_db_links;

删除:

drop database link dblink名称

drop public database link

dblink名称

Oraclepassword的问题:

SQL> CREATE USER AAA IDENTIFIED BY 1;

CREATE USER AAA IDENTIFIED BY 1

                              *

ERROR 位于第 1 行:

ORA-00988: 缺少或无效口令



SQL> CREATE USER AAA IDENTIFIED BY"1";



用户已创建

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Oracle 跨库 查询 复制表数据 分布式查询的更多相关文章

  1. Oracle 跨库 查询 复制表数据

    在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...

  2. laravel利用subquery使左连接查询右表数据唯一查询

    如:表a,连接表b,b中有多条符合查询的记录 1.建立需要的子查询 $sub = DB::table('b')->select(['aid'])->selectRaw('max(id) a ...

  3. sql server2008 跨服务器之间复制表数据

    首先2个数据库要能互相访问,在本地数据库用 select * into 新表 from opendatasource('SQLOLEDB','Data Source=远程数据库IP;User ID=用 ...

  4. SQL Server跨库复制表数据错误的解决办法

    SQL Server跨库复制表数据的解决办法   跨库复制表数据,有很多种方法,最常见的是写程序来批量导入数据了,但是这种方法并不是最优方法,今天就用到了一个很犀利的方法,可以完美在 Sql Serv ...

  5. SQL跨数据库复制表数据

    SQL跨数据库复制表数据   不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库.. ...

  6. oracle复制表数据,复制表结构

    1.不同用户之间的表数据复制 2.同用户表之间的数据复制 3.B.x中个别字段转移到B.y的相同字段 4.只复制表结构 加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内 ...

  7. oracle 两个网络不通的远程数据库如何将一个库中的表数据导入到另一个库中?

      1.情景展示 本地可以直接连接2个不同的远程数据库: 两个数据库由于网络不通,无法建立DBLINK完成数据传输: 将A库中C表的数据插入到B库中C表,如何快速实现? 2.解决方案 通过kettle ...

  8. oracle 复制表数据,复制表结构

    1.不同用户之间的表数据复制 对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:insert into B.new(selec ...

  9. oracle 复制表结构 复制表数据 sql 语句

    1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table ta ...

随机推荐

  1. 使用bootstrap的日期插件

    1.  需要用的js包点击下载,在项目中引入该js. <script language="JavaScript" src="${pageContext.reques ...

  2. AX2012 DMF数据导入的问题

    由于AX2012的数据结构比较复杂,通过Excel直接导入表的方式很多数据已经难以导入,比如物料信息,2009只需要导入InventTable,InventTableModule和InventItem ...

  3. 【C&num;】IDispose接口的应用

    .net的GC机制有两个问题: 一.GC并不能释放所有资源,它更不能释放非托管资源. 二.GC也不是实时的,所有GC存在不确定性.所以需要使用析构函数,但是为了不重复GC,需要做一些处理. publi ...

  4. ORACLE错误一览表【转】

    http://blog.itpub.net/26892340/viewspace-722178/

  5. ERROR 1130&colon; Host is not allowed to connect to this MySQL server

    解决远程连接mysql错误1130代码的方法 今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host 192.168.2.159 is ...

  6. 微信公众号开发,weUi组件,问题总结

    1.实现上拉分页,Google兼容问题,weui框架提供的模板是这样的($(document.body).infinite()),在body定一个div通过这个div,实现上拉 $('#wrapper ...

  7. Javascropt-KeyCode

    当点回车时触发搜索事件 $(document).keydown(function (e) {                if (e.keyCode == 13) {                 ...

  8. Java基础学习笔记(三)

    18.2.1无参无返回值的方法 18.2.1.1定义方法的语法格式 public static void 方法名称(){ 方法体 } 方法调用 类名.方法名称(); 注意:在Java中,同一个类中的方 ...

  9. ibmv7000查看序列号

    ssh后 命令:lsenclosure 有以下数据 id status   type      managed IO_group_id IO_group_name product_MTM serial ...

  10. &period;net core 基于Jwt实现Token令牌

    Startup类ConfigureServices中 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJw ...