Exadata üzerindeki veriabanlarında 12c upgrade sonrasında yaşanan library cache lock , gc cr request ve gc buffer busy acquire bekleme olayları
Exadata üzerindeki veritabalarında 12.2 versiyonuna yükseltildiğinde , veritabanında birçok işlemlerde “gc cr request” ile “gc buffer busy acquire” bekleme olayları görülmektedir. Aynı zamanda kullanıcılar giriş yapmaya çalıştığında ” select spare6 from user$ where user#=:1 ” ya da “SELECT privilege# FROM sysauth$ WHERE (grantee# = 1 OR grantee# = 1) AND privilege# > 0 “şeklindeki sorguların “library cache lock” bekleme olayına sebep olduğu görülebilmektedir.
Login işlemlerini bekleten “update user$ set spare6=DECODE(to_char(:2, ‘YYYY-MM-DD’), ‘0000-00-00’, to_date(NULL), :2) where user#=:1” şeklinde bir güncelleme yapmaya çalışan başka bir session olduğu tespit edilmiştir. Bu update işlemini yapmaya çalışan session kill edildiğinde beklemedeki diğer session’lar işlemlerini yapabilmektedir. Fakat yoğun veritabanlarında “gc cr request ve gc buffer busy acquire” bekleme olayları , veritabanının cevap veremez duruma getirmektedir.
Sorunun kök nedeni aşağıda belirtilen bug’lar olduğu görülmektedir. Sorunun tamamen çözümü için 25163866 numaralı veritabanı yaması , eğer bu yama çözmez ise de 25730857 numaralı UEK4 kernel yaması uygulanmalıdır. Kernel için gerekli yamayı 2207063.1 numaralı dokümanı takip ederek uygulayabilirsiniz. Veritabanı yamasını uygulamak için RAC ve single bile olsa veritabanı kapalı olmalıdır. RAC sistemlerde bir noda uyguladığınızda uygulanan node’daki instance açılmamaktadır. Veritabanı kapatıp , tüm node’lara yamayı uygulayıp sonrasında açılmalıdır.
Internal Bug 25163866 – SAGEASM-E DB HANG AT ‘GC CR REQUEST'<=’LIBRARY CACHE LOAD LOCK’
Internal Bug 25730857 – UEK4: Cache Fusion Fails Because of Data Corruption in LWIPC
Sorun , 18.1 versiyonlu veritabanlarında çözülmüş durumdadır.