请注意,本文编写于 472 天前,最后修改于 466 天前,其中某些信息可能已经过时。
EXPDP使用步骤
第一步:本地建立导出用户
Create user chen identified by chen;
Grant dba to chen;
alter user chen account unlock;
第二步:本地创建directory,并授权导出用户使用
在操作系统上创建目录
mkdir /home/oracle/dir_dp
SQL> create directory dir_dp as '/home/oracle/dir_dp';
SQL> grant read,write on directory dp_dir to chen;
查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
第三步:导出
如何调用
- 1.命令行方式
最简单的调用,但是写的参数有限,建议使用参数文件的方式。 - 参数文件方式
需要先编写一个参数文件。指定导出时需要的各种参数。然后以如下方式调用。
编写参数文件
- 参数文件方式
[oracle@chen dir_dp]$ vim expdp_tab.par
DIRECTORY=dir_dp
DUMPFILE=scott.dmp
LOGFILE=scott.log
SCHEMAS=scott
[oracle@chen dir_dp]$ expdp chen/chen parfile=expdp_tab.par
命令行方式
操作模式
1.全库模式
导入或者导出整个数据库,对应impdp/expdp命令中的full参数,只有拥有dba或者exp_full_database和imp_full_database权限的用户才能执行。
[oracle@chen dir_dp]$ expdp chen/chen directory=dir_dp dumpfile=full.dmp log=full.log full=y job_name=my_job01Schema 模式
导出或导入Schema下的自有对象,对应impdp/expdp命令中的Schema参数,这是默认的操作模式。如果拥有dba或者exp_full_database和imp_full_database权限的用户执行的话,就可以导出或导入多个Schema中的对象。
[oracle@chen dir_dp]$ expdp chen/chen directory=dir_dp dumpfile=expdp_chen.dmp log=expdp_chen.log schemas=chen
表模式
导出指定的表或者表分区(如果有分区的话)以及依赖该表的对象(如该表的索引,约束等,不过前提是这些对象在同一个Schema中,或者执行的用户有相应的权限)。对应impdp/expdp命令中的Table参数。
[oracle@chen dir_dp]$ expdp chen/chen directory=dir_dp dumpfile=emp.dmp log=emp.log tables=emp job_name=my_job
表空间模式
导出指定的表空间中的内容。对应impdp/expdp中的Tablespaces参数,这种模式类似于表模式和Schema模式的补充。
SQL> create tablespace chen_tbs datafile '/u01/app/oracle/oradata/orcl/chen_tbs01' size 5M autoextend on next 1M maxsize 10M;
SQL> create table t1 tablespace chen_tbs as select * from emp;
[oracle@chen dir_dp]$ expdp chen/chen directory=dir_dp dumpfile=chen_tbs.dmp log=chen_tbs.log tablespaces=chen_tbs
作者:chenoracle