在 Oracle® Database Utilities 10g Release 2 (10.2) Part Number B14215-01 Chept中,Oracle说明exp/imp已经不在被支持,取而代之的是expdp/impdb,据说可以提高性能,提供高速的数据传输。
新的expdp/imdp非常好用,让我觉得最好的地方就是明细的日志,最后结束时的总结。这些都可以让DBA对导入过程中出现的错误一目了然。然后可以进行下一步的修正工作。强烈推荐使用。
使用中遇到一个问题,源有public的Synonym,在进行导出时没有选取Public,之后执行impdp时,报错,很快就找到错误原因。常用参数介绍:
expdp 
   directory 备份文件和日志文件存放的目录。这里需要注意的是,如果不指定,那么会使用默认的DATA_PUMP_DIR,这个是指向$ORACLE_HOME/rdbms/log。手工简历,可以参考create directory命令。
   parallel  并行度。这个是Oracle大力推荐的参数,有了这个可以大幅度提升备份速度,老的EXP只能写一个文件,一个进程做这个事情,所以数据量大时,就很慢。此参数配合DUMPFILE使用。
   dumpfile  备份文件。这个不用多说,需要注意和parallel的配合,例如dumpfile%u.exp,这里%u是关键,会按照parallel的值进行自动增长,也就是说,你备份出来的文件是多个,有多少并行度,就有几个文件。
   schema    这个不用说,大家都知道。可以同时备份几个schema,之间用逗号隔开。
   Tablespace 表空间模式。可以按照表空间进行备份。但是这里要注意,这个只会给你备份表定义和表数据,其他的东西都不管。(这个我没有测试)
impdp
   directory,parallel,dumpfile 这个和expdp一样,就不说了。
   使用这个之前,一定要实现把表空间和用户都事先建立好,否则就fail。举例:
   expdp superuser/oracle123 directory=bkdir dumpfile=fullbk%u.dump schemas=HCTS_TEST,CASS_TEST,MIS_TEST,ELMP_TEST,CLS_CASM,CLS_MPDB_RO,CLS_ELMP logfile=testlog.log
   impdp superuser/oracle123 directory=bkdir dumpfile=fullbk%u.dump logfile=testlog.log