(转载)Oracle10g 数据泵导出命令 expdp 使用总结(一)
原文链接:http://hi.baidu.com/edeed/item/890626ef6f6d9d265b2d646f
Oracle10g 数据泵导出命令 expdp 使用总结(二)
Oracle10g 数据泵导出命令 expdp 使用总结(三)
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的数据, 那么在导入的时候就会出现错误。
待续...
--End--