Berbagi teknologi

Proses latar belakang mana di Oracle yang tidak dapat dihentikan?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Oracle memiliki banyak proses latar belakang. Saat menghadapi situasi khusus seperti mengunci tabel, jika Anda sedang menunggu proses latar belakang, maka Anda perlu mempertimbangkan apakah Anda dapat menghentikan proses latar belakang? Apakah mematikan proses latar belakang ini akan menyebabkan instance mogok? Dalam semangat praktik, pengetahuan sejati berasal dari praktik. Artikel ini berfokus pada tiga versi Oracle 11g, Oracle 19c, dan Oracle 23ai. Kami akan mematikan proses latar belakang sistem secara bergantian untuk melihat apakah hal itu akan menyebabkan instance tersebut menabrak.

1. Contoh basis data

1.1 Skrip pengujian bergantian mematikan proses latar belakang

Semua orang sudah familiar dengan enam proses inti yaitu pmon, smon, dbwr, lgwr, ckpt, dan mman. Membunuh enam proses inti ini pasti akan menyebabkan instance mogok, jadi keenam proses ini dihilangkan dari skrip.

#!/bin/shfunction startup(){    sqlplus / as sysdba<<EOF    startup    exitEOF}started=`ps -ef | grep pmon | grep -v grep | awk '{print $2}'`test -z "$started" && startup >> /dev/nullsleep 5# List of Oracle background processes to exclude from killingexclude_processes="pmon|smon|dbw0|dbw1|lgwr|ckpt|mman"# Get list of Oracle processesprolist=`ps -ef | grep ora | egrep -v "bash|su|h|ps|grep|more|sleep|awk|LOCAL|sy                                                                             sdba|log|$exclude_processes" | awk '{print $NF}'`for i in $prolistdo    proc_key=`echo $i | awk -F _ '{print $2}'`    pid=`ps -ef | grep $proc_key | grep -v grep | awk '{print $2}'`    test -z $pid && echo "$proc_key does not exist" || {        echo "Killing process $proc_key with PID $pid"        kill -9 $pid        sleep 20        # Check if PMON process exists        pc=`ps -ef | grep pmon | grep -v grep | wc -l`        echo "Number of PMON processes: $pc"        if [ $pc -eq 0 ]; then            echo "Killed process $proc_key has caused instance crash!"            startup >> /dev/null            sleep 5        else            echo "Killed process $proc_key has not caused instance crash."        fi    }done


Berikut hasil pengujian tiga versi
peramal 11g

Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process dbrm has caused instance crash!

peramal 19c

Killed process clmn has caused instance crash!Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process lg00 has caused instance crash!Killed process lg01 has caused instance crash!Killed process lreg has caused instance crash!Killed process dbrm has caused instance crash!Killed process pman has caused instance crash!

peramal 23ai

Killed process clmn has caused instance crash!Killed process vktm has caused instance crash!Killed process gen0 has caused instance crash!Killed process lg00 has caused instance crash!Killed process lg01 has caused instance crash!Killed process lreg has caused instance crash!Killed process dbrm has caused instance crash!Killed process pman has caused instance crash!Killed process bg02 has caused instance crash!

1.2 Ringkaslah proses latar belakang database mana yang tidak dapat dihentikan

oracle11g (9)

ramalan 19c (9+4=13)
 

Tidak ada pengenalan bgnn di dokumen resmi?

  • PMON (Pemantau Proses):

    • Bertanggung jawab untuk memantau status proses latar belakang dan proses pengguna. Ketika kelainan atau pemutusan proses pengguna terdeteksi, PMON bertanggung jawab untuk membersihkan sumber daya terkait dan melepaskan kunci.

  • SMON (Pemantau Sistem):

    • Menangani transaksi tingkat sistem dan pemulihan instance database. SMON bertanggung jawab untuk menjaga konsistensi database, termasuk mengembalikan transaksi yang belum selesai dan membersihkan segmen sementara.

  • DBWR (Penulis Basis Data):

    • Bertanggung jawab untuk menulis data di buffer kembali ke disk. DBWR melakukan pos pemeriksaan sesuai kebutuhan untuk memastikan konsistensi dan ketahanan database.

  • LGWR (Penulis Log):

    • Tulis catatan log di buffer log ulang ke file log ulang. LGWR memastikan ketahanan transaksi, memungkinkan database pulih setelah terjadi kerusakan.

  • CKPT (Proses Titik Pemeriksaan):

    • Bertanggung jawab untuk melakukan operasi pos pemeriksaan berkala dalam instance database. Pos pemeriksaan menulis data yang dimodifikasi dari buffer database ke file data untuk operasi pemulihan.

  • MMAN (Manajer Memori):

    • Kelola alokasi dan penggunaan memori dalam instans database. MMAN bertanggung jawab untuk secara otomatis menyesuaikan ukuran kumpulan bersama dan struktur memori lainnya untuk mengoptimalkan kinerja database.

  • VKTM (Penjaga Waktu Virtual):

    • Menyediakan layanan waktu dalam contoh database. VKTM mengelola semua operasi terkait waktu dalam database, termasuk menunggu peristiwa dan stempel waktu transaksi.

    • Proses latar belakang baru diperkenalkan di Oracle 11g.

  • DBRM (Manajer Sumber Daya Basis Data):

    • Kelola alokasi dan penggunaan sumber daya database, termasuk CPU, I/O, dan jumlah koneksi. DBRM memastikan alokasi sumber daya yang adil dan efisien di antara pengguna dan aplikasi yang berbeda.

    • Proses latar belakang baru diperkenalkan di Oracle 11g

  • GEN0 (Proses Latar Belakang Umum):

    • Proses latar belakang tujuan umum yang digunakan untuk menangani berbagai tugas sistem dan operasi manajemen dalam instance database.

    • Proses latar belakang diperkenalkan di Oracle 10g

    23ai (13+1=14)

    Barubgn Proses, 23ai memang memiliki beberapa proses bgnn latar belakang. Jika dimatikan, instance akan macet. sangat aneh! Jika ada yang tahu, silakan tinggalkan pesan dan beri saya saran!

    • CLMN (Proses Pembersihan Utama)

      • Fungsi: Bertanggung jawab untuk melakukan tugas pembersihan di instance Oracle.

      • Tanggung jawab: Mengelola pembersihan proses yang mati, sesi yang dihentikan, transaksi, koneksi jaringan, sesi idle, transaksi terpisah, dan koneksi jaringan yang melebihi batas waktu idle.
        Oracle 12c memperkenalkan dan clnn untuk membantu pmon dalam menangani beberapa pekerjaan pembersihan

    • LGnn (Pekerja Penulis Log)

      • Fungsi: proses bantu lgwr.

      • Tanggung jawab: Dalam sistem multi-prosesor, LGWR menciptakan pekerja untuk meningkatkan kinerja proses penulisan

      • Oracle19c diperkenalkan untuk membantu proses lgwr dalam menangani konkurensi guna meningkatkan kinerja penulisan log

    • LREG (Proses Registrasi Pendengar)

      • Fungsi: Daftarkan instance Oracle ke pendengar.

      • Tanggung jawab : Memberi tahu pendengar tentang instans, layanan, penangan, dan titik akhir. Pastikan pendengar mengetahui layanan database mana yang dapat disambungkan.

      • oracle 12c diperkenalkan

    • PMAN (Manajer Proses)

      • Fungsi: Kelola berbagai proses latar belakang di database Oracle.

      • Tanggung jawab: Memantau, memulai, dan menghentikan proses distributor dan server bersama, broker koneksi, proses server gabungan untuk kumpulan koneksi residen database, proses antrian pekerjaan, dan proses latar belakang yang dapat dimulai ulang sesuai kebutuhan.

      • oracle 12c diperkenalkan

2. Contoh ASM

Selain hal di atas, ada juga proses latar belakang yang terkait dengan instans ASM di lingkungan cluster. Ada empat proses kunci ASM berikut yang tidak dapat dihentikan.

  • ASMB (Proses Latar Belakang ASM)

    • Fungsi :ASMB adalah proses latar belakang Manajemen Penyimpanan Otomatis (ASM). Hal ini terutama digunakan untuk menjaga komunikasi antara instans ASM dan instans Oracle. ASMB mengelola koneksi ke instans Oracle, menangani permintaan operasi metadata antara instans ASM dan klien, dan mengoordinasikan operasi penyeimbangan ulang data.

  • RBAL (Proses Master Penyeimbangan ASM)

    • Fungsi : RBAL adalah proses lain yang terkait dengan ASM. Ia bertanggung jawab untuk mendistribusikan tugas penyeimbangan kembali ke proses budak ARBx di instans ASM lainnya. Operasi penyeimbangan ulang dilakukan saat menambahkan atau menghapus disk ASM untuk memastikan pemerataan data di seluruh grup disk.

  • PSP0 (Proses Pemijahan Proses)

    • Fungsi : PSP0 adalah Proses Spawner, yang bertanggung jawab untuk menghasilkan dan mengelola proses latar belakang lainnya di instance Oracle. Hal ini memastikan bahwa proses latar belakang yang diperlukan dimulai saat instance dimulai, dan proses baru muncul saat diperlukan.

  • GMON (Proses Pemantau Grup Disk ASM)

    • Fungsi : GMON adalah proses pemantauan grup disk ASM. Hal ini terutama digunakan untuk memantau dan mengelola status dan kesehatan grup disk ASM. GMON memastikan konsistensi grup disk dan mengambil tindakan perbaikan ketika mendeteksi kesalahan atau ketidakkonsistenan dalam grup disk.

ps: orakel 23aiAda perubahan lain: nama proses latar belakang telah diubah dari ora_xxxx menjadi db_xxxx, mengabaikan aturan yang telah digunakan selama beberapa dekade.

abad ke 19

23ai (tidak yakin apakah versi resmi EE menggunakan ora_ atau db_)