Przysięgam, że w miarę postępów w mojej karierze Oracle coraz trudniej jest mi nadążać za procesami w Oracle. Chciałbym to podsumować starzeniem się, ale po zagłębieniu się w to jestem prawie pewien, że to tylko eksplozja procesów w tle Oracle w 11g, która sprawia, że pasuję.
Wcześniej dzisiaj obserwowałem zakładkę wydajności produkcyjnej bazy danych w Grid Control. Mój 3-węzłowy klaster RAC miał wysoki poziom procesora, więc zagłębiłem się i zauważyłem, że większość cykli procesora pochodzi z procesu działającego w tle o nazwie NSA2. Co?!?!?! Co to jest NSA2? Jestem prawie pewien, że nie ma to nic wspólnego z bezpieczeństwem narodowym.
Przeszukując Google ten proces w tle, natknąłem się na sprytne zapytanie, które daje krótki opis każdego procesu w tle Oracle. Będziesz musiał uruchomić to jako SYS, ponieważ odpytuje tabele X$:
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
W mojej bazie danych 11.2.0.2 to zapytanie zwróciło 296 wierszy! Nic dziwnego, że nie nadążam. Pamiętam, kiedy mogłem wymienić wszystkie procesy w tle z góry mojej głowy (SMON, PMON, ARCH, DBWR, LGWR, CKPT i RECO). Każda nowa wersja Oracle zwiększa liczbę procesów w tle, co prawdopodobnie jest dobrą rzeczą. Jednak czasami administratorowi administratorowi trudno jest zdiagnozować problemy.
Czym więc jest NSA2? Jest to proces transportu ponawiania odpowiedzialny za wysyłanie zarchiwizowanych dzienników ponawiania do mojej bazy danych w trybie gotowości. Kiedy zobaczyłem opis z powyższego zapytania, było to oczywiste.
Przeczytaj więc swoją bazę danych, aby zobaczyć wszystkie wspaniałe procesy w tle, które możesz napotkać podczas swoich podróży. Jednym z moich ulubionych na liście jest TEST.
Aktualizacja – 12.09.2012 – Po napisaniu tego wpisu na blogu odkryłem, że firma Oracle udokumentowała już procesy w tle w dodatku F odniesień do bazy danych. Nie jestem pewien, kiedy Oracle uruchomił ten dodatek i gdybym o tym wiedział, po prostu sprawdziłbym proces NSAx. Ale powyższy skrypt jest nadal zabawny i można go wykorzystać do odkrywania nowych procesów w tle, których Oracle nie udokumentował.