Кълна се, че с напредването на кариерата си в Oracle ми е все по-трудно да се справя с основните процеси на Oracle. Бих искал да приписвам това на остаряването, но след като се задълбочих в него, съм сигурен, че просто експлозията на фонови процеси на Oracle в 11g ми причинява припадъци.
По-рано днес гледах раздел за производителност на производствена база данни в Grid Control. Моят RAC клъстер с 3 възела изпитваше високо ниво на CPU, така че аз се разрових и забелязах, че по-голямата част от циклите на процесора са от фонов процес, наречен NSA2. Какво?!?!?! Какво е NSA2? Почти съм сигурен, че това няма нищо общо с националната сигурност.
При търсене в Google на този фонов процес попаднах на страхотна заявка, за да ви дам бързо описание на всеки фонов процес на Oracle. Ще трябва да изпълните това като SYS, тъй като запитва 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
В моята база данни 11.2.0.2 тази заявка върна 296 реда! Нищо чудно, че не мога да се справя. Спомням си, когато можех да изброя всички фонови процеси от върха на главата си (SMON, PMON, ARCH, DBWR, LGWR, CKPT и RECO). Всяка нова версия на Oracle увеличава броя на фоновите процеси, което вероятно е добре. Но понякога това затруднява DBA да диагностицира проблеми.
И така, какво е NSA2? Това е процес на транспортиране на повторно изпълнение, отговорен за изпращането на архивирани регистрационни файлове за повторно изпълнение в моята база данни в режим на готовност. След като видях описанието от заявката по-горе, беше очевидно.
Затова прочетете вашата база данни, за да видите всички прекрасни фонови процеси, които може да срещнете по време на пътуванията си. Един от любимите ми в списъка е TEST.
Актуализация – 09/12/2012 – След като написах този запис в блога, открих, че Oracle вече е документирал фоновите процеси в Приложение F на Справочника за базата данни. Не съм сигурен кога Oracle стартира това приложение и ако знаех за него, просто щях да потърся процеса на NSAx. Но горният скрипт все още е забавен и може да се използва за откриване на нови фонови процеси, които Oracle не е документирал.