删除4TB的表

    由于历史的原因, 居然有机会清理4TeraBytes大小的表, 而且这个表是在字典管理表空间(DMT)上的, 新建的都不会再用字典管理表空间了, 估计在其他地方是不可能遇到的了. 用最吐的CTAS方法将数据归档了一部份, 并重新设计分区的逻辑, 完成后就得将这个表删除以释放空间.

    心中很是担心害怕, 不过也没有办法, 只能继续. 大致经过了如下步骤:

drop index ...;
truncate table ... reuse storage;
alter table ... deallocate unused keep 2000000m;
alter table ... deallocate unused keep 1500000m;
alter table ... deallocate unused keep 1000000m;
alter table ... deallocate unused keep 500000m;
alter table ... deallocate unused keep 0;
drop table ...;

    发现KEEP的最大值只能是2000000m, 再加1M都不行了. 整个过程进行了大约1.5个小时, 每条命令后还加入了表空间COALESCE, 全程盯着数据库的Load, 累!

    还好安全地完成任务! 为了防止出现ST Enqueue, 可以对那个时间段修改比较忙的表事先分配几个Extent.

留言 (5)

这个表够大

好牛的表。。。。-_-||是不是历史记录表?没用分区么?
如果是LTM的表,还能用deallocate吗?记得数据字典管理的大表做drop可以用deallocate,LTM的大表drop时需不需要这样做呢?

LMT的特大表,也应当这样做, 只是不需要COALESCE表空间这一步.

还是挺快的,才1.5小时
眼睛不是太疼的

怎么看不懂?是什么意思?
为了防止出现ST Enqueue, 可以对那个时间段修改比较忙的表事先分配几个Extent,怎么做?

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • It hurts right here.
  • 就这儿疼.
  • It's bleeding. You'd better see a doctor about that cut.
  • 在流血呢, 你最好找个医生看看这伤口.
  • Call the doctor!
  • 快打电话叫医生!
  • Take two pills and have a good rest.
  • 吃两片药, 好好休息一下.
  • I hope you'll be well soon.
  • 祝你早日恢复健康.