oracle10g 使用impdp导出导入后表空间的疑问

wssjsf 2012-02-29 02:18:07
我的oracle10g安装在aix5.3系统中,由于数据量过大对其中一个大表(40G左右)进行了历史数据迁移(即只保留2011年七月后的数据,以前的全部删除),通过expdp+query语句将其备份出来,然后truncate+drop表,之后使用impdp进行导入。执行之后数据没有问题,但是表空间却无故丢失了
清理前表空间剩余:30G
truncate+drop大表后:70G
重新impdp后:37G
我expdp+query出来的dmp只有14G大小,按说重新impdp后应该有50G以上的空间才对,不知道这个表空间丢失在何处了,如何找回来。
附导入导出命令:
expdp bank/bank@banks dumpfile=history20110701.dmp tables=co_history directory=dump_dir query=\"where v_date\>\'20110630\'\";
impdp bank/bank@banks dumpfile=history20110701.dmp tables=co_history logfile=history.log directory=dump_dir;
该大表已经进行了分区,大概每区300W数据
...全文
290 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
争取今天 2012-03-02
  • 打赏
  • 举报
回复
还真没有注意过COMPRESSIOn参数.
jdsnhan 2012-03-01
  • 打赏
  • 举报
回复
使用exp的时候,有个参数:compress ,是把dump文件中导出的表的所有数据压缩至一个数据的extent中,是把block都放进尽量放进initial extent里,可以减少碎片,同时也导致了storage。
对于expdp,有个COMPRESSION参数,是否有同样的功效,我没测试过
争取今天 2012-02-29
  • 打赏
  • 举报
回复
应该是的,用exp/imp不会导空块。 或者move table也可以释放
wssjsf 2012-02-29
  • 打赏
  • 举报
回复
是不是因为expdp的时候把空块也导出了,导致impdp的时候把空块也导入进去了
表的实际大小就是40G左右,我的目的就是想清除历史数据,腾出表空间,结果整了之后发现表空间没有减少多少
争取今天 2012-02-29
  • 打赏
  • 举报
回复
impdp 也会把段中的空块导出,你查一下那个表的大小. 不要用数据量计算.

另外expdp显示的数据大小是表中的数据,不包括索引大小.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧