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.命令行方式
    最简单的调用,但是写的参数有限,建议使用参数文件的方式。
    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_job01
    1. Schema 模式
      导出或导入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
    1. 表模式
      导出指定的表或者表分区(如果有分区的话)以及依赖该表的对象(如该表的索引,约束等,不过前提是这些对象在同一个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
    1. 表空间模式
      导出指定的表空间中的内容。对应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

最后修改:2022 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏