Oracle在10g的时候有一个很好用的导出工具expdp(数据泵)

但是这个工具好用的同时,有一个局限,就是必须用本地的用户才可以导出数据,也就是说数据泵只能导出本地数据库的数据

但是如果业务需求是   将一个用户的全部表都导出,但是不需要t1,t2,t3而且这个数据库不是本地的,是异地的一个数据库

正常的思路是通过exp userxx/passwd@192.168.1.100/orcl file=xxx.dmp log=xxx.log 就可以异地导出,但是消耗很多时间,而且有一个硬性要求,必须要除去某些表,所以必须要用到expdp来完成

expdp中有一个参数是exclude,这个参数中就可以添加不想导出的索引或者表之类的

但是再一想,必须要用expdp,而且是一个异地的数据库,主机登录不上,很是矛盾

思考了好久,终于想到办法

用dblink来做一个中间的链接,再用expdp导出

完事具备,开搞:

1.在本地创建一个用户,一个目录,授权

$ mkdir /home/oracle/dmpfile

CREATE USER TEST IDENTIFIED BY TEST DEFAULTE TABLESPACE XXX; 
CREATE DIRECTORY DMPFILE AS '/oracle/dmpfile'
GRANT resource,connect,imp_full_database to TEST;
GRANT read,write on directory dmpfile to test;

还要有一个准备工作:

如果需要用dblink来导出数据的话需要给远程的用户一个exp_full_database的权限

sqlplus system/xxxx@192.168.1.100/orcl

GRANT EXP_FULL_DATABASE TO USERXX;

2.创建dblink

这里要注意,创建的dblink必须要是public的

否则及时创建完后,也会报错找不到dblink

create public database link db_local
connect to userxx IDENTIFIED BY passwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl )
)
)';

创建完成后,查看下数据是否存在

select * from userxx.test@db_local;

如果找到userxx重的test表的数据,证明dblink创建成功

3.用expdp导出数据

这是最关键的一步,因为参数有很多,所以使用parfile来完成,格式更好看些

vim test.par

userid=test/test            --导出的用户,本地用户!!
directory=dmpfile          --导出的目录,一定要在oracle中创建完成的,并且给用户授权读写权限
dumpfile=userxx.dmp      --导出的数据文件的名称,如果想在指定的位置的话可以写成dumpfile=/home/oracle/userxx.dmp
logfile=userxx.log          --日志文件,如果不写这个参数的话默认名称就是export.log,可以在本地的文件夹中找到
SCHEMAS=userxx       --使用dblink导出的用户不是本地的用户,需要加上schema来确定导出的用户,类似于exp中的owner,但还有一定的区别
EXCLUDE=TABLE:"IN('T1','T2','T3')"     --exclude 可以指定不导出的东西,table,index等,后面加上不想导出的表名
network_link=db_local          --这个参数是使用的dblink来远程导出,需要指定dblink的名称

完成后退出保存。

执行导出

expdp parfile=test.par

就可以看到最后的导出了

导入的话需要这样:必须要在oracle中有一个目录,而且要有读写权限,要有imp_full_database权限

impdp testuser/testuser dumfile=userxx.dmp logfile=imp_userxx.log directory=dmpfile remap_schema=userxx:testuser

最后一个参数需要加上remap_schema=old:new

由一个用户导入到其他的用户,需要添加最后一个参数。

这样就可以导入成功了

SQL> 
SQL> 

【EXPDP】expdp/impdp数据泵远程导入导出的更多相关文章

  1. ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法

    ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法 (2010-05-28 12:54:34) http://blog.sina.com.cn/s/blog_67d41beb0100ixn ...

  2. oracle11g-R2数据库的逻辑备份(数据泵的导入导出)

    一.环境: server1迁移到server2 server1: 服务器号:201 系统:Windows server 2008 R2 x64 IP地址:192.168.2.201 oracle数据库 ...

  3. 【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

    一.expdp/impdp和exp/imp 客户端工具 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 服务端工具 2.expdp和impdp是服务端的工具程序,他们 ...

  4. PLSQL_数据泵Datapump导入导出数据IMPDP / EXPDP(概念)(Oracle数据导入导出工具)(转)

    一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间.oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间, ...

  5. expdp/impdp数据泵分区表导入太慢了。添加不检查元数据参数提高效率:ACCESS_METHOD=DIRECT_PATH

    分区表数据泵导入太慢,达不到客户的迁移要求导出语句如下:(10G单节点)userid='/ as sysdba'directory=milk_dirdumpfile=mon_%U.dmplogfile ...

  6. Oracle数据泵的导入导出

    说明:数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp导出 1.以s ...

  7. Oracle数据库采用数据泵方式导入导出数据

    特别说明:Oralce的数据泵导入导出技术只能用在数据库服务器上,在只有客户端的机器上是无法使用数据泵技术的. 1.创建备份文件目录  mkdir d:\dmp 2.在Oralce中注册该目录,将目录 ...

  8. oracle表分区、表分析及oracle数据泵文件导入导出开心版

    1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到 ...

  9. oracle表分区、表分析及oracle数据泵文件导入导出

    1.先说oracle表分区是什么吧 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到要的那个打开,嘿嘿,我们得找到什么时候. 这时候,有个人告诉你, ...

随机推荐

  1. JS怎么把for循环出来的东西放到一个数组里

    var students=[ {name: "vehicleTravelLicenseCopyBack", id: "a1"}, {name: "ve ...

  2. MySQL 5.7.29主从安装配置

    一.环境准备(关闭防火墙) 1.清除已安装数据库 [root@mysql01 ~]# rpm -qa | grep mariadb mariadb-libs-5.5.35-3.el7.x86_64 [ ...

  3. 查询id为键的数组

    public static function getKeyValuePairs() { $sql = 'SELECT id, name FROM ' . self::tableName() . ' O ...

  4. Django中ORM的使用

    Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...

  5. Redis基础篇(二)高性能IO模型

    我们经常听到说Redis是单线程的,也会有疑问:为什么单线程的Redis能那么快? 这里要明白一点:Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对 ...

  6. 由innodb锁引起的数据库相关

    innodb 锁的问题 1.事务 原子性:要么成功,要么失败 一致性:前后数据保持一致状态 隔离性:多个事务并行,相互不影响 持久性:事务提交之后,对数据的影响是永久性的,即使故障也可以保持. 2.并 ...

  7. 01 . Go之从零实现Web框架(类似Gin)

    设计一个框架 大部分时候,我们需要实现一个 Web 应用,第一反应是应该使用哪个框架.不同的框架设计理念和提供的功能有很大的差别.比如 Python 语言的 django和flask,前者大而全,后者 ...

  8. Maven的工程类型有哪些?

    POM工程:POM工程是逻辑工程.用在父级工程或聚合工程中.用来做jar包的版本控制. JAR工程:将会打包成jar用作jar包使用.即常见的本地工程 - Java Project. WAR工程:将会 ...

  9. javaScript编写9*9口诀

    学习html+css+javaScript<!DOCTYPE html> <html> <head> <title>chaoba</title&g ...

  10. springboot 启动jar正确方式

    首先需要pom.xml配置一个插件: IDEA 在右侧执行顶上m图片按钮 在command Line 中执行clean package命令 执行打包注意 打完jar包后最好解压jar查看一下META- ...