[Placeholder for all my data pump notes] [Example assumes expdp from dbstage schema u and impdp to dbprod schema u or y] * Data pump impdp is only about twice as fast as traditional import in my test. expdp and export are both already fast. * When you expdp from a remote DB, you have to create a DB link in the local DB. In dbprod, as the user that expdp logins as: create database link dbstage connect to u identified by password123 using 'dbstage'; Make sure export_dir directory object exists in dbprod. expdp system/xxxxxxx schemas=u network_link=dbstage directory=export_dir dumpfile=expdp_dbstage_u.dmp logfile=expdp_dbstage_u.log or (if the link is in sys schema) expdp \'/ as sysdba\' schemas=u network_link=dbstage directory=export_dir dumpfile=expdp_dbstage_u.dmp logfile=expdp_dbstage_u.log (public db link would work too) In impdp, you don't even have to create the user in the target database: impdp system/xxxxxxx directory=export_dir dumpfile=expdp_dbstage_u.dmp schemas=u logfile=db_user_imp.log Or you can remap the schema from u to y (but you won't know y's new password): impdp system/xxxxxxx directory=export_dir dumpfile=expdp_dbstage_u.dmp remap_schema=u:y logfile=db_user_imp.log * exp consistent=y can be simulated by expdp flashback_time="to_timestamp(current-time)". The syntax is confusing. On UNIX, it is (assuming you use sysdate): flashback_time=\"to_timestamp\(to_char\(sysdate,\'yyyy-mm-dd hh24:mi:ss\'\),\'yyyy-mm-dd hh24:mi:ss\'\)\" On Windows, remove all \: flashback_time="to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')" But due to Bug:6641104, sysdate cannot be specified once on the command line; otherwise it would be re-evaluated for each table during the expdp period, and there would be no one single read consistent point in time. Instead, hardcode the time with actual time, or just use flashback_scn. I hope this bug can be fixed soon so you can just use sysdate. * However, expdp flashback_{time|scn} uses completely different mechanism than exp consistent=y. expdp uses flashback technology while exp runs set transaction read only at the beginning of the session, which is (in case you don't know!) silently ignored if the login user is SYS. * exp rows -> expdp content * imp ignore -> impdp table_exists_action * Parallel has problems. You may get errors like: ORA-31693: Table data object "APPUSER"."FILE_ENTRY_T" failed to load/unload and is being skipped due to error: ORA-29913: error in executing ODCIEXTTABLEOPEN callout ORA-29400: data cartridge error KUP-11010: unable to open at least one dump file for load If you do use parallel, you must specify multiple datafiles in expdp and the same in impdp; otherwise only one of multiple worker threads would do real work. * More syntax examples (remove \ if on Windows or in parfile): expdp yong/yong dumpfile=yong.dmp exclude=table:\"= \'TABLEINCAPITAL\'\" logfile=yong.log schemas=yong directory=yongtest rm yong.dmp #11g has reuse_dumpfiles=y; logfile can be overwritten expdp yong/yong dumpfile=yong.dmp exclude=table:\"like \'BIG\'\" query=testpart:\"where x\>20\" logfile=yong.log schemas=yong Appendix (may be deleted): flashback_time syntax reference (it took me a while to get it right): Note:204334.1 (Parameters FLASHBACK_SCN And FLASHBACK_TIME: Point In Time Export) exp system/manager file=exp.dmp flashback_time='"2004-06-19 13:24:26"' exp system/manager parfile=exp.par exp.par ------- file=exp.dmp flashback_time='2004-06-19 13:24:26' exp system/manager file=exp.dmp flashback_time=\"TO_TIMESTAMP('19-06-2004 13:24:26', 'DD-MM-YYYY HH24:MI:SS')\" exp system/manager file=exp.dmp flashback_time=\"TO_TIMESTAMP\(\'19-06-2004 13:24:26\', \'DD-MM-YYYY HH24:MI:SS\'\)\" When using the TO_TIMESTAMP function in a parameter file in Oracle10g, use double quotes. E.g.: FLASHBACK_TIME="TO_TIMESTAMP('19-06-2004 13:24:26', 'DD-MM-YYYY HH24:MI:SS')"