OS : AIX
Oracle : oracle 8.1.7
客户一个分区表分区做到 2006 年,并且 2006 年的分区中用的是 maxvalue ; 随着 2007 年的临近,客户要求为 2007 年的数据增加分区。因 客户数据库上跑的是财务系统,并且周一到周五时间不能停机,客户 DBA 也不能确定工作时间什么时间,业务比较空闲,后经客户 DBA 的协调,安排在中午吃饭时间来做,我让他给我们空出 2 个小时来做。 早上,9:30 到客户那里后,先建了一个与分区表相同的表(分区,索引都相同)作为测试表,并导了一些真实的数据到测试表中。然后 按照我 写的增加分区计划操作步骤,一步一步来做测试。本以为,因为没有数据分 move 到新的分区,所以分区表的索引没必要重建(分区表的索引没有做分区),但是实践检验,我的理解是错误的,2006年的分区 split 为 2006 年和2007 以上的分区后, 索引全都成 invalid ,需要重建索引。1.5 G 的分区表+ 7个索引(索引估计也有 1.5 G), 后来在正式做的时侯, 用了 1 个小时。
主要用到以下 sql 语句:
alter table xx.xxx split partition P6 at (to_date('2007.01.01','yyyy.mm.dd')) into (partition P6, partition P7);
alter index xx rebuild nologging;
[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/66634/viewspace-883814/
,如需转载,请注明出处,否则将追究法律责任。