Přísahám, že jak se ve své kariéře Oracle posouvám dál a dál, bude pro mě stále těžší držet krok s procesy Oracle na pozadí. Rád bych to přiřadil stárnutí, ale poté, co jsem se do toho pustil, jsem si docela jistý, že je to jen exploze procesů na pozadí společnosti Oracle v 11g, která mi způsobuje, že mi to sedí.
Dříve jsem dnes sledoval kartu výkonu produkční databáze v Grid Control. Můj 3-uzlový RAC cluster měl vysoký CPU, takže jsem prošel a všiml jsem si, že většina cyklů CPU pochází z procesu na pozadí s názvem NSA2. Co?!?!?! Co je NSA2? Jsem si docela jistý, že to nemá nic společného s národní bezpečností.
Při prohledávání Google tohoto procesu na pozadí jsem narazil na šikovný dotaz, který vám poskytl rychlý popis každého procesu na pozadí Oracle. Budete to muset spustit jako SYS, protože se dotazuje na X$ tabulky:
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
V mé databázi 11.2.0.2 tento dotaz vrátil 296 řádků! Není divu, že nestíhám. Pamatuji si, když jsem mohl z hlavy vypsat všechny procesy na pozadí (SMON, PMON, ARCH, DBWR, LGWR, CKPT a RECO). Každá nová verze Oracle zvyšuje počet procesů na pozadí, což je pravděpodobně dobře. Ale pro DBA je někdy obtížné diagnostikovat problémy.
Co je tedy NSA2? Je to proces redo transportu zodpovědný za odesílání archivovaných redo logů do mé Standby databáze. Jakmile jsem viděl popis z dotazu výše, bylo to zřejmé.
Pročtěte si tedy svou databázi, abyste viděli všechny úžasné procesy na pozadí, které můžete na svých cestách potkat. Jedním z mých oblíbených v seznamu je TEST.
Aktualizace – 9. 12. 2012 – Poté, co jsem napsal tento příspěvek na blog, jsem zjistil, že Oracle již zdokumentoval procesy na pozadí v příloze F referenční databáze. Nejsem si jistý, kdy Oracle spustil tento dodatek, a kdybych o něm věděl, vyhledal bych si proces NSAx. Ale výše uvedený skript je stále zábavný a lze jej použít k objevování nových procesů na pozadí, které Oracle nezdokumentoval.