ORA-08102: TRYING TO MANIPULATE A JOB IN DBA_JOBS [ID 1036858.6]

msdnchina發表於2011-09-16
you are trying to manipulate a job in the job queue
(DBA_JOBS/USER_JOBS) and you receive:

 ORA-08102: index key not found, object... 
     Cause: Internal error: possible inconsistency in index
    Action: Send trace file to your customer support representative, along
            with information on reproducing the error

Example:

SQL> execute dbms_job.remove(1);
ORA-08102: index key not found, object #124 ->>> SYS.I_JOB_NEXT

where object #124 is the object# in DBA_OBJECTS

SQL> column owner format a10
SQL> column object_type format a10
SQL> column object_id format 99999
SQL> column object_name format a10

SQL> select owner, object_name, object_type, object_id
  2  from dba_objects where object_id=124;

OWNER      OBJECT_NAM OBJECT_TYP OBJECT_ID
---------- ---------- ---------- ---------
SYS        I_JOB_NEXT INDEX            124  


Solution Description:
=====================

You need to recreate the inex I_JOB_NEXT.

Script "$ORACLE_HOME/rdbms/admin/cat7103.sql" creates the I_JOB_NEXT:

Drop and recreate this index.

connect sys/
drop index i_job_next;
create index i_job_next on job$ (next_date)

Note: alter index I_JOB_NEXT rebuild; 

      Will not fix the problem.


Explanation:
============

The ORA-8102 pointed to index corruption, so rebuilding the offending index 
fixed the problem.


Search Words:
=============

DBMS_JOB ALTER CHANGE UPDATE
對於損壞的index,建議先drop 再create,不要用online rebuild
[@more@]
                                                    

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/161195/viewspace-1055101/,如需轉載,請註明出處,否則將追究法律責任。

相關文章