数据库越来越大,社保的AC43表经过不断的细化和拆分,目前一次数据转换入门级都是20G左右的,因此大多数项目都是用到了数据泵,他的导出效率相当高,导入大家可能会遇到一些和索引、undo有关的问题,这里结合自己的项目实践与大家一起分析讨论。
1、并行度
导出:
命令:expdp XXSi/XXSi dumpfile=expdp_dir:XXSi2013_%U.dmp logfile=expdp_dir:XXSi2013.log tables=ac20 EXCLUDE=CONSTRAINT:\"like \'%\'\" EXCLUDE=INDEX:\"like \'%\'\" PARALLEL=2
耗时:5`30"(5分30秒)
命令:
expdp XXSi/XXSi dumpfile=expdp_dir:XXSi2013_%U.dmp logfile=expdp_dir:XXSi2013.log tables=ac20 EXCLUDE=CONSTRAINT:\"like \'%\'\" EXCLUDE=INDEX:\"like \'%\'\" PARALLEL=3
耗时:1`30"
导入:
单实例oracle:
直接执行impdp没有任何问题,具体数据没有记录下来,分先并行度=3的时候导入最快,并行度=2,4的时间都比=3的时候大很多,因此并不是并行度越大,导入越快。
rac oracle:
执行的时候提示找不到文件,但是文件是有的啊,很奇怪,最后发现执行impdp的时候并不是左右的进程都在你发出命令的当前实例节点,他会在rac的两个节点上分别并发出进行导入,因此必须保证你的数据文件在每个节点都是可访问到的,
大家可以试一下回复