热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle10G使用数据泵(EXPDP和IMPDP)-mysql教程

欢迎进入Oracle社区论坛,与200万技术人员互动交流进入1.1.1expdp使用使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 1.1.1 expdp使用 使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  1.1.1 expdp使用

  使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.

  首先得建DIRECTORY:

  SQL> conn /as sysdba

  SQL> CREATE OR REPLACE DIRECTORY dir_dump AS '/u01/backup/';

  SQL> GRANT read,write ON DIRECTORY dir_dump TO public;

  1) 导出scott整个schema

  --默认导出登陆账号的schema

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott_full.dmp

  LOGFILE=scott_full.log

  --其他账号登陆, 在参数中指定schemas

  $ expdp system/oracle@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott_full.dmp

  LOGFILE=scott_full.log

  SCHEMAS=SCOTT

  2) 导出scott下的dept,emp表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  TABLES=DEPT,EMP

  3) 导出scott下除emp之外的表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  EXCLUDE=TABLE:"='EMP'"

  4) 导出scott下的存储过程

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  INCLUDE=PROCEDURE

  5) 导出scott下以'E'开头的表

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  INCLUDE=TABLE:"LIKE 'E%'" //可以改成NOT LIKE,就导出不以E开头的表

  6) 带QUERY导出

  $ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par

  expdp.par内容:

  DIRECTORY=dir_dump

  DUMPFILE=scott.dmp

  LOGFILE=scott.log

  TABLES=EMP,DEPT

  QUERY=EMP:"where empno>=8000"

  QUERY=DEPT:"where deptno>=10 and deptno<=40"

  注: 处理这样带查询的多表导出, 如果多表之间有外健关联, 可能需要注意查询条件所筛选的数据是否符合这样的外健约束, 比如 EMP中有一栏位是 deptno, 是关联dept中的主键, 如果"where empno>=8000"中得出的deptno=50的话, 那么, 你的dept的条件"where deptno>=10 and deptno<=40"就不包含deptno=50的数据, 那么在导入的时候就会出现错误.

[1] [2] [3] [4]


推荐阅读
author-avatar
手机用户2502913993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有