Oracle
 sql >> Database >  >> RDS >> Oracle

Processi in background

Giuro che man mano che vado avanti nella mia carriera in Oracle, ho sempre più difficoltà a stare al passo con i processi in background di Oracle. Mi piacerebbe attribuire questo aspetto all'invecchiamento, ma dopo averci approfondito, sono abbastanza sicuro che sia solo l'esplosione di processi in background di Oracle in 11g che mi sta causando attacchi.

In precedenza, stavo guardando una scheda delle prestazioni del database di produzione in Controllo griglia. Il mio cluster RAC a 3 nodi presentava una CPU elevata, quindi ho approfondito e ho notato che la maggior parte dei cicli della CPU proveniva da un processo in background chiamato NSA2. Che cosa?!?!?! Cos'è l'NSA2? Sono abbastanza sicuro che questo non abbia nulla a che fare con la sicurezza nazionale.

Facendo una ricerca su Google di questo processo in background, mi sono imbattuto in una query elegante per darti una rapida descrizione di ogni processo in background di Oracle. Dovrai eseguirlo come SYS poiché interroga le tabelle 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
;

Nel mio database 11.2.0.2, questa query ha restituito 296 righe! Non c'è da stupirsi se non riesco a tenere il passo. Ricordo quando potevo elencare tutti i processi in background dalla parte superiore della mia testa (SMON, PMON, ARCH, DBWR, LGWR, CKPT e RECO). Ogni nuova versione di Oracle aumenta il numero di processi in background, il che è probabilmente una buona cosa. Ma a volte rende difficile per il DBA diagnosticare problemi.

Allora, cos'è l'NSA2? È un processo di trasporto di ripristino responsabile della spedizione dei registri di ripristino archiviati al mio database di standby. Una volta che ho visto la descrizione della query sopra, è stato ovvio.

Quindi dai un'occhiata al tuo database per vedere tutti i meravigliosi processi in background che potresti incontrare durante i tuoi viaggi. Uno dei miei preferiti nell'elenco è TEST.

Aggiornamento – 09/12/2012 – Dopo aver scritto questo post sul blog, ho scoperto che Oracle ha già documentato i processi in background nell'Appendice F del Database Reference. Non sono sicuro di quando Oracle abbia avviato questa appendice e se l'avessi saputo, avrei semplicemente cercato il processo NSAx. Ma lo script sopra è ancora divertente e può essere utilizzato per scoprire nuovi processi in background che Oracle non ha documentato.