2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Oracle verfügt über viele Hintergrundprozesse. Wenn Sie in besonderen Situationen wie dem Sperren von Tabellen auf einen Hintergrundprozess warten, müssen Sie überlegen, ob Sie den Hintergrundprozess beenden können. Führt das Beenden dieses Hintergrundprozesses zum Absturz der Instanz? Im Sinne der Praxis kommt wahres Wissen aus der Praxis. Dieser Artikel konzentriert sich auf die drei Versionen von Oracle 11g, Oracle 19c und Oracle 23ai. Wir werden nacheinander die Hintergrundprozesse des Systems beenden, um zu sehen, ob dies dazu führt Absturz.
Jeder kennt bereits die sechs Kernprozesse pmon, smon, dbwr, lgwr, ckpt und mman. Das Beenden dieser sechs Kernprozesse führt definitiv zum Absturz der Instanz, daher werden diese sechs aus dem Skript entfernt.
#!/bin/sh
function startup()
{
sqlplus / as sysdba<<EOF
startup
exit
EOF
}
started=`ps -ef | grep pmon | grep -v grep | awk '{print $2}'`
test -z "$started" && startup >> /dev/null
sleep 5
# List of Oracle background processes to exclude from killing
exclude_processes="pmon|smon|dbw0|dbw1|lgwr|ckpt|mman"
# Get list of Oracle processes
prolist=`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 $prolist
do
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
Hier sind die Testergebnisse von drei Versionen
Orakel 11g
Killed process vktm has caused instance crash!
Killed process gen0 has caused instance crash!
Killed process dbrm has caused instance crash!
Orakel 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!
Orakel 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!
oracle11g (9)
Orakel 19c (9+4=13)
Gibt es in den offiziellen Dokumenten keine Einführung in bgnn?
PMON (Prozessmonitor):
Verantwortlich für die Überwachung des Status von Hintergrundprozessen und Benutzerprozessen. Wenn eine Anomalie oder eine Unterbrechung des Benutzerprozesses erkannt wird, ist PMON für die Bereinigung der zugehörigen Ressourcen und die Freigabe von Sperren verantwortlich.
SMON (Systemmonitor):
Verwaltet Transaktionen auf Systemebene und die Wiederherstellung von Datenbankinstanzen. SMON ist für die Aufrechterhaltung der Konsistenz der Datenbank verantwortlich, einschließlich des Rollbacks nicht abgeschlossener Transaktionen und der Bereinigung temporärer Segmente.
DBWR (Datenbankschreiber):
Verantwortlich für das Zurückschreiben der Daten im Puffer auf die Festplatte. DBWR führt nach Bedarf Prüfpunkte durch, um die Konsistenz und Haltbarkeit der Datenbank sicherzustellen.
LGWR (Protokollschreiber):
Schreiben Sie die Protokolldatensätze im Redo-Log-Puffer in die Redo-Log-Datei. LGWR stellt die Haltbarkeit der Transaktionen sicher und ermöglicht die Wiederherstellung der Datenbank nach einem Absturz.
CKPT (Checkpoint-Prozess):
Verantwortlich für die Durchführung regelmäßiger Prüfpunktvorgänge in der Datenbankinstanz. Ein Prüfpunkt schreibt geänderte Daten aus dem Datenbankpuffer in die Datendatei für Wiederherstellungsvorgänge.
MMAN (Speichermanager):
Verwalten Sie die Speicherzuweisung und -nutzung in Datenbankinstanzen. MMAN ist für die automatische Anpassung der Größe gemeinsam genutzter Pools und anderer Speicherstrukturen verantwortlich, um die Datenbankleistung zu optimieren.
VKTM (Virtueller Zeitnehmer):
Stellen Sie Zeitdienste in Datenbankinstanzen bereit. VKTM verwaltet alle zeitbezogenen Vorgänge in der Datenbank, einschließlich des Wartens auf Ereignisse und Transaktionszeitstempel.
Ein neuer Hintergrundprozess, der in Oracle 11g eingeführt wurde.
DBRM (Datenbankressourcen-Manager):
Verwalten Sie die Zuweisung und Nutzung von Datenbankressourcen, einschließlich CPU, E/A und Anzahl der Verbindungen. DBRM gewährleistet eine faire und effiziente Zuweisung von Ressourcen zwischen verschiedenen Benutzern und Anwendungen.
Neuer Hintergrundprozess in Oracle 11g eingeführt
GEN0 (Generischer Hintergrundprozess):
Ein allgemeiner Hintergrundprozess, der zur Abwicklung verschiedener Systemaufgaben und Verwaltungsvorgänge in einer Datenbankinstanz verwendet wird.
Hintergrundprozess eingeführt in Oracle 10g
23ai (13+1=14)
Neubgnn Prozess, 23ai hat mehrere Hintergrund-BGNN-Prozesse, wenn sie beendet werden. Es sollte ein Schlüsselprozess sein, aber es gibt keine offizielle Referenz. sehr eigenartig! Wenn es jemand weiß, hinterlassen Sie bitte eine Nachricht und geben Sie mir einen Rat!
CLMN (Hauptprozess bereinigen):
Funktion: Verantwortlich für die Durchführung von Bereinigungsaufgaben in der Oracle-Instanz.
Verantwortlichkeiten: Verwalten Sie die Bereinigung toter Prozesse, beendeter Sitzungen, Transaktionen, Netzwerkverbindungen, inaktiver Sitzungen, getrennter Transaktionen und Netzwerkverbindungen, die das Leerlaufzeitlimit überschreiten.
Oracle 12c führt ein und clnn ein, um pmon bei der Bewältigung einiger Aufräumarbeiten zu unterstützen
LGnn (Log Writer-Arbeiter):
Funktion: LGWR-Hilfsprozess.
Verantwortlichkeiten: In Multiprozessorsystemen erstellt LGWR Worker, um die Schreibleistung von Prozessen zu verbessern
Oracle19c wird eingeführt, um den LGWR-Prozess bei der Handhabung der Parallelität zu unterstützen und die Leistung beim Schreiben von Protokollen zu verbessern
LREG (Hörerregistrierungsprozess):
Funktion: Registrieren Sie die Oracle-Instanz beim Listener.
Verantwortlichkeiten : Benachrichtigt Listener über Instanzen, Dienste, Handler und Endpunkte. Stellen Sie sicher, dass der Listener weiß, mit welchem Datenbankdienst er eine Verbindung herstellen kann.
Oracle 12c eingeführt
PMAN (Prozessmanager):
Funktion: Verschiedene Hintergrundprozesse in der Oracle-Datenbank verwalten.
Verantwortlichkeiten: Überwachen, starten und stoppen Sie Verteiler- und gemeinsam genutzte Serverprozesse, Verbindungsbroker, gepoolte Serverprozesse für datenbankresidente Verbindungspools, Jobwarteschlangenprozesse und neu startbare Hintergrundprozesse nach Bedarf.
Oracle 12c eingeführt
Zusätzlich zu den oben genannten gibt es auch Hintergrundprozesse im Zusammenhang mit ASM-Instanzen in einer Clusterumgebung. Es gibt die folgenden vier ASM-Schlüsselprozesse, die nicht beendet werden können.
ASMB (ASM-Hintergrundprozess):
Funktion :ASMB ist der Hintergrundprozess des Automatic Storage Management (ASM). Es wird hauptsächlich zur Aufrechterhaltung der Kommunikation zwischen ASM-Instanzen und Oracle-Instanzen verwendet. ASMB verwaltet Verbindungen zu Oracle-Instanzen, verarbeitet Metadatenoperationsanfragen zwischen ASM-Instanzen und Clients und koordiniert Datenausgleichsoperationen.
RBAL (ASM Rebalance-Master-Prozess):
Funktion : RBAL ist ein weiterer Prozess im Zusammenhang mit ASM. Es ist für die Verteilung von Neuausgleichsaufgaben an ARBx-Slave-Prozesse in anderen ASM-Instanzen verantwortlich. Neuverteilungsvorgänge werden beim Hinzufügen oder Entfernen von ASM-Festplatten durchgeführt, um eine gleichmäßige Verteilung der Daten über die Festplattengruppe sicherzustellen.
PSP0 (Prozess-Spawner-Prozess):
Funktion : PSP0 ist der Process Spawner Process, der für die Generierung und Verwaltung anderer Hintergrundprozesse in der Oracle-Instanz verantwortlich ist. Es stellt sicher, dass erforderliche Hintergrundprozesse beim Start der Instanz gestartet werden und bei Bedarf neue Prozesse erzeugt werden.
GMON (ASM-Datenträgergruppen-Monitorprozess):
Funktion : GMON ist der ASM-Festplattengruppenüberwachungsprozess. Es wird hauptsächlich zur Überwachung und Verwaltung des Status und Zustands von ASM-Festplattengruppen verwendet. GMON stellt die Konsistenz der Festplattengruppe sicher und ergreift Korrekturmaßnahmen, wenn es Fehler oder Inkonsistenzen in einer Festplattengruppe erkennt.
ps: Oracle 23aiEs gibt noch eine weitere Änderung: Der Name des Hintergrundprozesses wurde von ora_xxxx in db_xxxx geändert und damit die seit Jahrzehnten verwendete Regel aufgegeben.
19c
23ai (nicht sicher, ob die offizielle EE-Version ora_ oder db_ verwendet)