Sunday, May 1, 2022

Oracle Background Processes that can be restarted and How to prioritize an Oracle Database background process

 
Thought of  documenting  this as at times we come across situations where w have to kill certain background process to high load  or other issues . 
This is only for information purpose . Its advisable to  check with  Oracle Support for any actions 


Killable:
ARCn: Redo log archivers
CJQn: Job scheduler coordinator
Dnnn: Dispatchers
DIA0: Diagnosibility process 0
DIAG: Diagnosibility coordinator
FDBA: Flashback data archiver process
Jnnn: Job scheduler processes
MMNL: Manageability Monitor Process 2
MMON: Manageability Monitor Process
PING: Interconnect latency measurement
Qnnn: Queue cleanup processes
QMNC: Queue coordinator
RECO: Distributed recovery process
Snnn: Shared servers
SMCO: Space management coordinator
Wnnn: Space management processes

Instance-Critical:
ACMS: Atomic controlfile to memory server
CKPT: Checkpoint
DBRM: Resource manager process
DBWn: Database writer processes
LGWR: Redo log writer
LMDn: Global enqueue service daemons
LMON: Global enqueue service monitor
MMAN: Memory manager
PMON: Process monitor
PSPn: Process spawners
RMSn: RAC management server
RVWR: Recovery writer
SMON: System monitor process
VKTM: Virtual keeper of time process



Increasing Priority of Background process . 

In   Test case we  will be increasing priority of LGWR  proces to get rid of log file snc wait . 

Increasing the LGWR priority is putting the LGWR process in the Round-Robin (SCHED_RR) class. You can increase process’s priority both using OS (renice, nice commands) or Database methods, but this post is about setting the priority using ‘_high_priority_process’ an undocumented/hidden parameter that prioritizes your database managed processes

starting from 21.3.0.0.0 LGWR process is part of _high_priority_processes group along with VKTM & LMS* processes.
Note: This being a hidden/undocumented parameter I advise to consult with Oracle support before going and changing the parameter value. 


 select ksppstvl from x$ksppi join x$ksppcv using (indx) where ksppinm='_high_priority_processes';

alter system set "_high_priority_processes"='LMS*|VKTM|LGWR' scope=spfile;

Restart the database

srvctl stop database -d abdul1
srvctl start database -d abdul2 


 select ksppstvl from x$ksppi join x$ksppcv using (indx) where ksppinm='_high_priority_processes';



No comments:

Post a Comment