Ich schwöre, je weiter ich in meiner Oracle-Karriere vorankomme, desto schwerer fällt es mir, mit den Hintergrundprozessen von Oracle Schritt zu halten. Ich würde das gerne dem Älterwerden zuschreiben, aber nachdem ich mich damit beschäftigt habe, bin ich mir ziemlich sicher, dass es nur Oracles Explosion von Hintergrundprozessen in 11g ist, die meine Anfälle verursacht.
Heute früh habe ich mir in Grid Control eine Registerkarte für die Leistung einer Produktionsdatenbank angesehen. Mein 3-Knoten-RAC-Cluster hatte eine hohe CPU-Leistung, also habe ich einen Drilldown durchgeführt und festgestellt, dass die Mehrheit der CPU-Zyklen von einem Hintergrundprozess namens NSA2 stammte. Was?!?!?! Was ist NSA2? Ich bin mir ziemlich sicher, dass das nichts mit der nationalen Sicherheit zu tun hat.
Bei einer Google-Suche nach diesem Hintergrundprozess bin ich auf eine raffinierte Abfrage gestoßen, die Ihnen eine kurze Beschreibung jedes Oracle-Hintergrundprozesses gibt. Sie müssen dies als SYS ausführen, da es X$-Tabellen abfragt:
column EXTERNAL_NAME format a13
;
column INTERNAL_NAME format a13
set lin 120
SELECT x$ksbdd.ksbddidn AS external_name,
x$ksmfsv.ksmfsnam AS internal_name, x$ksbdd.ksbdddsc AS description
FROM x$ksbdd, x$ksbdp, x$ksmfsv
WHERE x$ksbdd.indx = x$ksbdp.indx AND x$ksbdp.addr = x$ksmfsv.ksmfsadr
ORDER BY 1
In meiner 11.2.0.2-Datenbank hat diese Abfrage 296 Zeilen zurückgegeben! Kein Wunder, dass ich nicht mithalten kann. Ich erinnere mich, als ich alle Hintergrundprozesse auf Anhieb auflisten konnte (SMON, PMON, ARCH, DBWR, LGWR, CKPT und RECO). Jede neue Oracle-Version erhöht die Anzahl der Hintergrundprozesse, was wahrscheinlich eine gute Sache ist. Aber es macht es dem DBA manchmal schwer, Probleme zu diagnostizieren.
Was ist also NSA2? Es ist ein Redo-Transportprozess, der für den Versand archivierter Redo-Protokolle an meine Standby-Datenbank verantwortlich ist. Als ich die Beschreibung aus der obigen Abfrage sah, war es offensichtlich.
Lesen Sie also in Ihrer Datenbank nach, um all die wunderbaren Hintergrundprozesse zu sehen, denen Sie auf Ihren Reisen begegnen können. Einer meiner Favoriten in der Liste ist TEST.
Update – 12.09.2012 – Nachdem ich diesen Blog-Eintrag geschrieben habe, habe ich festgestellt, dass Oracle die Hintergrundprozesse bereits in Anhang F der Datenbankreferenz dokumentiert hat. Ich bin mir nicht sicher, wann Oracle mit diesem Anhang begonnen hat, und wenn ich davon gewusst hätte, hätte ich einfach den NSAx-Prozess nachgeschlagen. Aber das obige Skript macht trotzdem Spaß und kann verwendet werden, um neue Hintergrundprozesse zu entdecken, die Oracle nicht dokumentiert hat.