ORA-08104

Beberapa waktu lalu, saya mendapatkan error “ORA-08104” di database warehouse di kantor, dikarenakan di “kill” nya proses “rebuild index online” nya, sehingga menyebabkan index tersebut menjadi tidak valid.

Dan berdasarkan referensi dari metalink note.375856.1, disitu dinyatakan bahwa error tersebut terdapat relasi dengan BUG 3805539, yang nyatanya issue tersebut harusnya sudah fix di Oracle Ver. 10.2.0.1, Tapi nyatanya di database warehouse saya yang notabene adalah Oracle Ver. 10.2.0.4.0 dan miskin downtime masih terdapat error tersebut.

Tilik ditilik ternyata didapatkan 2 solusinya, yaitu dengan mengganti flag pada “SYS.IND$” tersebut, atau menggunakan “dbms_repair.online_index_clean” sesuai dengan note.375856.1 tadi.

Oke pertama kita gunakan solusi yang pertama dengan menganti flag pada “SYS.IND$” tersebut.
1) Kita cari dulu “object ID” dari index yang bermasalah itu

SELECT obj# FROM sys.ind$ WHERE bitand(flags, 512)=512;

2) Update flag untuk “object id” tersebut.

1
2
UPDATE sys.ind$ SET flags = flags - 512 WHERE obj# = 317358;
commit;

3) Drop and recreate the index

Disini setelah update flag, ternyata index tidak bisa didrop, malah muncul error “ORA-00054: resource busy and acquire with NOWAIT specified”, puih..

Oke saya anggap gagal, Next kita coba solusi berikutnya,
1) Kita cari dulu “object ID” dari index yang bermasalah itu

SELECT i.obj#, i.flags, u.name, o.name, o.type#
FROM sys.obj$ o, sys.user$ u, sys.ind$ idx, sys.ind_online$ i
WHERE聽 bitand(i.flags, 512) = 512 AND o.obj#=idx.obj# AND
o.owner# = u.user# AND idx.obj#=i.obj#;

2) Execute DBMS_REPAIR.ONLINE_INDEX_CLEAN

1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE
RetVal BOOLEAN;
OBJECT_ID BINARY_INTEGER;
WAIT_FOR_LOCK BINARY_INTEGER;
 
BEGIN
OBJECT_ID := 317358; --ini Object ID Hasil dari Kueri 1
WAIT_FOR_LOCK := NULL;
 
RetVal := SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN ();
COMMIT;
END;
/

Setelah proses clean up diatas berhasil, coba lakukan DML ke dalam tabel dimana index tersebut berada.
Dijamin tokcer, tanpa perlu bouncing databasenya.

3 thoughts on “ORA-08104

  1. waaaaahhh… 馃槙

    kaya’nya bisa belajar banyak nih saya..

    *boleh numpang tanya tanya juga kan :d
    *maklum niubi :d

Leave a Reply

Your email address will not be published. Required fields are marked *