Oracle: How to solve "ORA-00800: [Set Priority Failed], [VKTM]"
When Oracle error ORA-00800 [Set Priority Failed], [VKTM] occurs, there are a few things to check:
Permissions
Owner
The binary $ORACLE_HOME/bin/oradism has to be root. If it's oracle or any other user, you should change it using the rootuser.
Group
The group of the executable $ORACLE_HOME/bin/oradism should be the same as for $ORACLE_HOME/bin/oracle:
# ls -lahtr $ORACLE_HOME/bin/oracle $ORACLE_HOME/bin/oradism
-rwsr-x---. 1 root oinstall 145K Apr 17 2019 /u01/app/oracle/product/19c/bin/oradism
-rwsr-s--x. 1 oracle oinstall 441M Nov 6 14:12 /u01/app/oracle/product/19c/bin/oracle
If it isn't: change it.
Sticky bit
Make sure that ORACLE_HOME/bin/oradism has the sticky bit.
It should look like this:
# ls -lahtr $ORACLE_HOME/bin/oradism -rwsr-x---. 1 root oinstall 145K Apr 17 2019 /u01/app/oracle/product/19c/bin/oradismIf it doesn't look like that, change it (using the root user):
$ chmod 04750 $ORACLE_HOME/bin/oradismPlease make sure to execute chmod after chown, or else the sticky bit will be lost again.
File System
Make sure the file system, where Oracle binaries are installed, is NOT mounted using nosuid:
# mount
/dev/sda2 on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)Database
Check if VKTM process is set for higher priority:
select a.ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance Value", a.KSPPDESC "Description"
from x$ksppi a, x$ksppcv b, x$ksppsv c
where a.indx = b.indx and a.indx = c.indx
and a.ksppinm like '_%' and a.ksppinm like '_highest_priority_process%';_highest_priority_processes
VKTM
VKTM
Highest Priority Process Name Mask
This looks ok...
Operating system
Check the priority of the VKTM process:
# ps -A -o pid,tid,pri,args |(head -1; grep vktm) PID TID PRI COMMAND
5230 5230 19 ora_vktm_orcl1919 does not seem to be the expected value...
DB Parameter
Let's set the parameter _highest_priority_processes to TRUE:
alter system set "_high_priority_processes"=true scope=spfile;To activate this parameter, the database has to be restarted.
After restart, the priority of VKTM process has changed:
# ps -A -o pid,tid,pri,args |(head -1; grep vktm)
PID TID PRI COMMAND
5230 5230 41 ora_vktm_orcl19Instead of 19, like before, the priority of the VKTM process is now 41, and ORA-800 should not occur anymore...