imp方式还原数据库空间占用特别大

今天在数据库上通过imp的方式导入一个数据库dmp文件,该文件只有80M多点,心想这么小的数据文件应该不需要多大表空间,如是先创建了一个1024M的表空间,结果imp导入发现空间不够,如是再增加1G,再次导入,再次报错。。。增加了好几次,最后干脆一次增加4G,使整个表空间达到10G,终于正常导入了,nnd。

查看日志,所有数据表基本没什么数据,怎么会这么占空间了,如是查看 dba_segments ,看看哪些对象最占空间,发现占空间的都是都是数据库表,可查看对应的导入日志,导入的记录条数却为 0,奇怪,看看该表

select * from dba_tables where tablespace_name = 'ZZ_DB' and table_name='T_STDT';

     OWNER  TABLE_NAME  TABLESPACE_NAME  CLUSTER_NAME  IOT_NAME  STATUS  PCT_FREE  PCT_USED  INI_TRANS  MAX_TRANS  INITIAL_EXTENT  NEXT_EXTENT  MIN_EXTENTS  MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOGGING BACKED_UP NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE TEMPORARY SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION SKIP_CORRUPT MONITORING CLUSTER_OWNER DEPENDENCIES COMPRESSION DROPPED
 ZZ T_STDT ZZ_DB VALID 10 1 255 671088640 1048576 1 2147483645 YES N 1471049 158694 0 0 0 368 0 0         1         1    N ENABLED 2000 2014/3/5 17:03:31 NO N N NO DEFAULT DISABLED YES NO DISABLED YES DISABLED DISABLED NO


发现统计信息里面,该表的数据记录数为 100W多,难怪占这么大空间了,如是想到了给它 shrink 空间(这里就不介绍shrink相关话题了)。

alter table zz.T_STDT enable row movement;


alter table zz.T_STDT shrink space cascade;

再次查看该表的占用空间,发现由原来的接近1G缩小到现在的0.3M了,再次查询 dba_tables 该表的统计信息,和前面一样没有变化,如是分析一下该表。

exec dbms_stats.gather_table_stats(ownname => 'ZZ',tabname => 'T_STDT',estimate_percent => 30,degree => 2,cascade => true,force => true);

分析完后,再次查看dba_tables 该表的统计信息
select * from dba_tables where tablespace_name = 'ZZ_DB' and table_name='T_STDT';

    OWNER  TABLE_NAME  TABLESPACE_NAME  CLUSTER_NAME  IOT_NAME  STATUS  PCT_FREE  PCT_USED  INI_TRANS  MAX_TRANS  INITIAL_EXTENT  NEXT_EXTENT  MIN_EXTENTS  MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOGGING BACKED_UP NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE TEMPORARY SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION SKIP_CORRUPT MONITORING CLUSTER_OWNER DEPENDENCIES COMPRESSION DROPPED
 ZZ T_STDT ZZ_DB VALID 10 1 255 671088640 1048576 1 2147483645 YES N 0 0 0 0 0 0 0 0         1         1    N ENABLED 0 2014/3/5 17:16:57 NO N N NO DEFAULT ENABLED YES NO DISABLED YES DISABLED DISABLED NO


这次统计信息已更新,记录条数为0.

这样看来,分析一下整个数据库,这些表占用的空间应该也能释放了。

exec dbms_stats.gather_database_stats(estimate_percent => 30,degree => 4,cascade => true);

或者分析对应的schema

exec dbms_stats.gather_schema_stats(ownname => 'ZZ',estimate_percent => 30,degree => 4,cascade => true);

结果发现统计信息是更新了,数据表所占空间还是没有被释放。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-1101753/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9399028/viewspace-1101753/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值