今天在做数据库巡检的时候,发现数据库日志中有Some indexes or index [sub]partitions of tale ****.***** have ben marked unusable的提示,还是第一次看到这样的提示,由于没发现有相关的trace文件,只能按提示猜大概是由于这个表的某些index变为unusable状态。
1、通过SQL查该表的索引情况
通过dba_indexes和dba_ind_partitions表来查看,发觉确实有部分分区索引的status为unusable状态
2、对相关的index做rebuild操作
SELECT 'ALTER INDEX ' || INDEX_OWNER || '.' || INDEX_NAME ||
'REBUILD PARTITION ' || PARTITION_NAME || ' NOLOGGING online;'
FROM DBA_IND_PARTITIONS
WHERE INDEX_OWNER = &index_owner
AND STATUS = 'UNUSABLE';
执行上面生成的SQL,解决unusable的问题。
由于客户对系统保密性的要求,不便于直接写出相关表名等信息,简单记录下。