方法一:

在眼下绝大部分数据库有分布式查询的须要。以下简单的介绍怎样在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. 理解Android虚拟机体系结构(转)

    1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...

  2. ASN.1 Encode an Object Identifier (OID) with OpenSSL

    OID(Object Identifier) denotes an object. Examples: ------------------------------------------------ ...

  3. k8s google sample - guestbook

    Redis读写分离作为存储 PHP网页作为前端 github地址 https://github.com/kubernetes/kubernetes/blob/release-1.1/examples/ ...

  4. 使用PF_PACKET和SOCK_RAW发送自己定义type以太网数据包

    本文介绍使用PF_PACKET和SOCK_RAW发送自己定义type以太网数据包,使用wireshare抓包能够获取到数据包,为Linux内核添加网络协议做铺垫. 先上码: #include < ...

  5. 网站的SEO以及它和站长工具的之间秘密(转)

    博客迁移没有注意 URL 地址的变化,导致百度和 google 这两只爬虫引擎短时间内找不到路.近段时间研究了下国内最大搜索引擎百度和国际最大搜索引擎google的站长工具,说下感受. 百度的站长工具 ...

  6. HDOJ--4821--String【弦hash】

    联系:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题意:给一个字符串,选m个长度为l的子串组成新的串.要求这m个子串互不同样,问有多少种组合. 字符串 ...

  7. 我的MYSQL学习心得(四)

    原文:我的MYSQL学习心得(四) 我的MYSQL学习心得(四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(五) 我的MYSQL ...

  8. Android设计模式(五岁以下儿童)--简单工厂模式

    1.面试的时候问这个问题: 在ListView 的item小程序.很多不同的显示风格.或者是,为了更好地维护,不同的样式,应该怎么做? 我一下就想到的是工厂的模式,利用project,编写ViewFa ...

  9. MSMQ-发送消息到远程专用队列 实例

    目录 一:MSMQ的一些理论上的知识 二:队列类型(Queue Type) 三:安装消息队列 四:在C#中Messagequeue class 五:MSMQ-发送消息到远程专用队列 六:例子   一. ...

  10. 改动ubuntu/linux文件夹显示颜色

    通过secureCRT登陆linux,假设背景颜色选为黑色,非常可能在使用ls命令时看不清楚文件夹名,这时候我们能够通过一个简单的方式将文件夹变为一个显眼的颜色,比如"黄色". [ ...