ORA-01502 Oracle Index in Unusable State

if you find out that you have indexes that are in “unusable state”.

first, list all invalid indexes within your Oracle database:

select * from dba_indexes where STATUS <>‘VALID’;

 

after that, rebuild each index, using sql statement:

alter index schema.index_name rebuild;

 

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [90], [46191], [46469], [], [], [], [], [], [], []

My Oracle database have crashed for some reason, and while trying to start up:

 

SQL> startup
ORACLE instance started.

Total System Global Area 7071333376 bytes
Fixed Size 1675792 bytes
Variable Size 829809390 bytes
Database Buffers 431527320 bytes
Redo Buffers 4405509 bytes
Database mounted.
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[90], [46191], [46469], [], [], [], [], [], [], []

 

Solution:

in order to resolve this you need t perform recovery, per the following steps:

SQL>Startup mount ;

SQL>Show parameter control_files

SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status=’CURRENT’ ;

remark: write down the name of the redo logs and their paths…

SQL> Shutdown abort ;

remark:Take a OS Level backup of the controlfiles in different directory

SQL> Startup mount ;

SQL> recover database using backup controlfile until cancel ;

Remark: Enter location of redo logs (refer to the query where you have wrote down the location of redologs),then hit ‘Enter’

SQL> Alter database open resetlogs ;