使用数据泵EXPDP(数据导出)
(一)创建Directory
1) 在源数据库操作系统上创建一个目录
mkdir $ORACLE_BASE/expdir
2) 在源数据库中创建一个目录指定到操作系统的目录上
SQL> create or replace directory scottexp as '/u01/app/oracle/expdir';
SQL>select * from dba_directories;
3) 创建的目录必须授予用户读写目录的权限
SQL> GRANT read,write ON DIRECTORYscottexp TO public;
(二)导出数据库
1)并行导出整个数据库
expdp \"/assysdba\" directory=scottexp dumpfile=dball%U.dmp full=y parallel=4
2)只导出scott用户的元数据,且不包含统计信息
expdp \"sys/oracleassysdba\" directory=scottexp schemas=scott content=metadata_onlyexclude=statistics dumpfile=scott_meta.dmp logfile=scott_meta.log
3)只导出scott用户的数据
expdp system directory=scottexp schemas=scott content=data_only dumpfile=scott_data.dmp logfile=scott_data.log
4)只导出scott用户下的emp,dept表
expdp scott/scott directory=scottexp tables=emp,dept dumpfile=scott_emp_dept.dmp logfile=scott_emp_dept.log
5)导出scott下除emp之外的表
vim scott_ex_emp.par
DIRECTORY=scottexp
DUMPFILE=scott_ex_emp.dmp
LOGFILE=scott_ex_emp.log
EXCLUDE=TABLE:"='EMP'"
expdp scott/scott parfile=/u01/app/oracle/expdir/scott_ex_emp.par
6)并行导出scott用户下所有的内容
expdp scott/scott@conn10 directory=scottexp schemas=scott dumpfile=scott_all%U.dmp logfile=scott_all.log parallel=2
7)带QUERY导出
vim scott_emp-dept_q.par
DIRECTORY=scottexp
DUMPFILE=scott_emp-dept_q.dmp
LOGFILE=scott_emp-dept_q.log
TABLES=EMP,DEPT
QUERY=EMP:"where empno>=8000"
QUERY=DEPT:"where deptno>=10and deptno<=40"
expdp scott/scott parfile=/u01/app/oracle/expdir/scott_emp-dept_q.par