今天早上,生产服务出现了中间件服务拥堵情况,排查到最后发现了一张历史表的查询返回非常慢,进一步排查该表hash分区索引失效,处于“UNUSABLE”状态,随重建索引。
问题产生在重建索引时“alter index index_name rebuild partition PA_1 parallel 32 nologging”, 返回如下错误
问题提示很清晰:因该表上指定的索引时一个全局hash分区索引,分区为8个子分区,在rebuild时后面不能与logging和nologging语法结合使用。事实也的确如此,测试环境11gR2下经测试同样报错。
该情况现在记录下来,特提醒注意。
补充说明一下:创建hash分区,利用hash函数打散某列使数据均匀分布,一般用于均衡I/O,缺点数据不容易管理,哈希分区不能DROP、SPLIT 以及MERGE分区。