Saya memiliki database Uji yang merupakan sistem RAC 2-simpul. Saya bekerja untuk mencapai tujuan mendapatkan database produksi ke Oracle 12.1.0.2 dalam jangka waktu sekitar satu bulan. Ini tentu saja berarti saya harus mengupgrade Infrastruktur Grid sebelum upgrade db. Saya telah memutakhirkan GI di cluster siaga saya dan juga di database Test saya. Peningkatan GI utama dijadwalkan untuk malam ini.
Sejak saya mengupgrade GI dalam Test beberapa minggu yang lalu, saya mendapatkan peringatan dari EM12c seperti berikut:
Host=host01
Jenis target=Kluster
Nama target=tes-scan
Categories=Bisnis
Message=Server berada di bawah tekanan memori yang tinggi dan layanan pada semua instance di server ini akan dihentikan
Keparahan=Peringatan
Waktu yang dilaporkan acara=29 Juli 2015 13:05:13 CDT
Sistem Operasi=Linux
Platform=x86_64
Jenis Peristiwa=Peringatan Metrik
Nama acara=wlm_event:wlm_qosm_mpa_risk_state
Grup Metrik=Peristiwa QoS
Metric=Status Risiko Analisis Tekanan Memori
Nilai metrik=MERAH
Beberapa detail lansiran dihapus agar lebih singkat.
Jadi dari mana ini berasal? Mengapa itu berarti bagi saya?
Kesalahan ini berasal dari Kualitas Layanan (QoS) Oracle di Infrastruktur Grid. Itu bergantung pada informasi Cluster Health Monitor (CHM). Lebih khusus lagi, peringatan ini datang dari Memory Guard. Untuk beberapa informasi tentang Memory Guard, lihat PDF ini, khususnya di akhir halaman kedua.
Memory Guard mencoba menyelamatkan saya dari diri saya sendiri, dan seperti yang akan kita lihat, ia melakukan pekerjaan yang buruk. Idenya adalah ketika server memiliki tekanan memori, Memory Guard akan menghentikan layanan apa pun pada node tersebut. Mengizinkan lebih banyak koneksi akan menghabiskan lebih banyak memori dan dapat memperburuk situasi. Permintaan koneksi baru harus pergi ke node lain di cluster yang menjalankan layanan itu. Inilah tepatnya yang dikatakan oleh nilai Pesan dalam lansiran kepada saya.
Menurut dokumen EM 12c ini, bagian 4.3.2, Status Risiko Analisis Tekanan Memori, teks peringatan seharusnya berisi nama server. Namun teks pesan di atas tidak memberi tahu saya server mana yang mengalami masalah. Untungnya bagi saya, ini hanya cluster RAC 2-node, jadi saya tidak punya terlalu banyak untuk diperiksa.
Ketika saya melihat penggunaan CPU, semuanya baik-baik saja. Penggunaan swap praktis nol di kedua node. Memori bebas lebih dari 25% pada kedua node. Penasaran…kenapa harus waspada?
Setiap kali saya mendapatkan peringatan ini, saya dapat email lain yang mengatakan bahwa kondisi tersebut akan selesai dalam beberapa menit. Jadi masalahnya hanya sebentar. Namun peringatan tetap datang.
Ternyata, setelah beberapa penyelidikan, Oracle membuat perubahan ke Memory Guard di Grid Infrastructure 12.1.0.2. Di versi sebelumnya, Memory Guard hanya menjaga database yang dikelola kebijakan. Di GI 12.1.0.2, Memory Guard juga mulai menjaga database yang dikelola admin. Dan database RAC saya biasanya dikelola oleh admin, itulah salah satu alasan mengapa saya melihat ini sekarang.
Untuk lebih menambah masalah, ternyata GI 12.1.0.2 telah mengetahui Bug 1582630 di mana jumlah memori bebas jika dihitung secara tidak benar. Catatan 1929994.1 mencantumkan solusi dan ada tambalan juga. Saya menerapkan solusi dan itu menyelesaikan masalah saya. Saya akan menerapkan patch ke Test sebelum melanjutkan ke produksi dalam waktu yang tidak terlalu lama.
Untungnya, saya menemukan ini sebelum upgrade GI produksi saya nanti malam. Kalau tidak, saya akan mengecewakan pengguna akhir yang mungkin mengalami masalah saat menyambung ke database. Ini hanyalah satu contoh lagi mengapa saya memiliki platform pengujian yang baik untuk menemukan dan menyelesaikan masalah sebelum perubahan dibuat dalam produksi.