expdp/impdp在进行数据迁移时速度极快,通过一定的优化方法,我们让expdp和impdp跑得更加快
1,parallel,在很多oracle的程序中都离不开并行操作,通过利用多core cpu的处理能力(根据自己机器实际情况优化一般不要超过core的2倍),速度增加相当明显
例:frank用户主要有表T1,T2,T3,每个表
中数据有500万行
[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc.dmp
real 0m41.692s
user 0m0.011s
sys 0m0.032s
[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc.dmp parallel=3
real 0m26.710s
user 0m0.019s
sys 0m0.007s
速度提升相当明显,如果每个dw进程都使用单独的dmp文件会更快
[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc%U.dmp parallel=3
real 0m22.928s
user 0m0.017s
sys 0m0.008s
一般建议parall设置不要超过cpu*2.
2,transport_tablespace方法,直接复制表空间文件的方式。使用expdp和impdp只导出了数据字典信息.表空间
要是自包含的
SQL> exec dbms_tts.transport_set_check('US