Exadata ortamındaki veritabanlarında alınan ORA-07445 [kxibFindIndex()+4] hatasının çözümü
Exadata ortamındaki veritabanlarında paralel delete işlemlerinde bazı bug’lara bağlı olarak ORA-07445 [kxibFindIndex()+4] şeklinde hata alınabilmektedir.
Hata mesajı aşağıdaki gibidir.
ORA-07445: exception encountered: core dump [kxibFindIndex()+4] [SIGSEGV] [ADDR:0x18] [PC:0x5FAF55E] [Address not mapped to object] []
ORA-07445: istisnayla karşılaşıldı: çekirdek bellek dökümü [kxibFindIndex()+4] [SIGSEGV] [ADDR:0x18] [PC:0x5C14454] [Address not mapped to object] []
Hatanın tam sebebi bilinmemekle birlikte aşağıdaki bug’larda aynı durumlar gözlemlenmektedir.
- Bug.20804290 RDBMS-11204 (31) EXADATA ORA-07445 [KXIBFINDINDEX()+4] RUNNING UPDATE STATEMENT:
- Bug.19613373 RDBMS-11203 (33) ORA-7445 [KXIBFINDINDEX()+4] WITH DELETE STATEMENT:,
- Bug.18990350 RDBMS-11204 (31) ORA-00600 [QERIMROP2] ON 11.2.0.4:
- Bug.18973328 RDBMS-11204 (33) ORA-07445 [KXIBFINDINDEX()+4] WITH A DELETE STATEMENT:
Çözüm olarak uygulanabilecek bazı yöntemler bulunmaktadır. Bu yöntemlerden herhangi birini uygulayarak sorgunun sorunsuz çalışmasını sağlayabilirsiniz.
- Sorgudan önce PARALLEL_FORCE_LOCAL parametresini session bazlı TRUE yapıp sorguyu çalıştırabilirsiniz.
SQL> alter session set PARALLEL_FORCE_LOCAL = TRUE ; SQL>-- sorun yaratan sorguyu çalıştırın
-
Sorgudan önce DML sorgularının paralel çalışmamasını sağlayın.
SQL> ALTER SESSION DISABLE PARALLEL DML; SQL>-- sorun yaratan sorguyu çalıştırın
-
DELETE işlemi yapılan tablonun DDL komutunu belirleyin. Sonra tüm indeksleri silin. DELETE işlemini yaptıktan sonra tekrar indeksleri oluşturun.