Ini adalah masalah lama bagi saya yang saya selesaikan cukup lama, tetapi saya pikir saya akhirnya akan menulisnya. Ketika saya mulai di perusahaan baru saya, database produksi akan macet sekitar sebulan sekali dengan kesalahan memori ORA-4031. DBA saat ini menemukan masalahnya adalah kurangnya variabel pengikatan dalam kode aplikasi, yang biasanya merupakan penyebab yang paling mungkin. Kurangnya variabel bind adalah masalah, tetapi setelah saya mengetahuinya, masalahnya tidak terkait dengan pernyataan SQL sama sekali. Sebaliknya, masalahnya adalah karena bug dengan Direct NFS. Rupanya, Direct NFS memiliki kebocoran memori di dalamnya. Kebocoran memori memengaruhi Pangkalan Bersama dan diberi waktu yang cukup, memori bebas di Pangkalan Bersama menjadi tidak ada, kesalahan ORA-4031 akan dibuang, dan basis data akan macet.
Saya bekerja dengan Dukungan Oracle untuk mengonfirmasi bahwa ini adalah bug. Masalah ini diajukan sebagai Bug 10237987 dan memengaruhi versi 11.1.0 dan 11.2.0. Saya mengalami bug ini pada cluster RAC 3 node yang menjalankan Oracle Enterprise Linux. Saya tidak pernah bisa mendapatkan jawaban jika bug ini terjadi pada platform OS lain atau untuk lingkungan non-RAC. Bug menyebabkan kumpulan KGNFS di Pangkalan Bersama tumbuh secara signifikan dari waktu ke waktu.
Saya menyesal bahwa saya tidak pernah bisa melihat bug ini sampai ke kesimpulan dengan Dukungan Oracle. Dukungan ingin saya menangkap jejak ketika database macet karena kesalahan ORA-4031 dengan kumpulan KGNFS. Apa yang gagal mereka sadari adalah bahwa kumpulan KGNFS menyebabkan kekurangan ruang di semua kumpulan lain di Kumpulan Bersama. Kumpulan KGNFS akan memeras kumpulan lain dan sering kali ketika ruang diminta di kumpulan lain, kesalahan ORA-4031 tercapai. Dan satu-satunya saat file jejak dibuat adalah menunggu instance mogok. Saya tidak bisa duduk dan menunggu instance kami mogok di tengah hari hanya untuk menangkap file jejak untuk Dukungan Oracle, terutama karena file jejak mungkin bukan dari kumpulan KGNFS!
Pada akhirnya, solusi kami adalah berhenti menggunakan Direct NFS dalam konfigurasi kami. Pengujian kami tidak menunjukkan perbedaan kinerja dengan atau tanpa Direct NFS. Sejak kami berhenti menggunakan Direct NFS, kami belum melihat kesalahan ORA-4031. Saya melihat bug masih ada di Metalink tetapi belum ada perbaikan.