In this Document
Symptoms
Changes
Cause
Solution
References
APPLIES TO:
Oracle Database - Enterprise Edition - Version 19.3.0.0.0 and later
Linux x86-64
SYMPTOMS
ORA-00800: soft external error, arguments: [Set Priority Failed], [VKTM],
Error attempting to elevate VKTM's priority: no further priority changes will be attempted for this process
CHANGES
Database upgraded to 19c
CAUSE
19c moved to OL7/UEK4. UEK4 requires rt_period and rt_runtime set for the cgroup from where the database is started.
Typically the root one unless the customer is setting up their own cgroups or using system user slices.
It requires the proper values such as the 95%. For this problem, ORA-800 will have the following message in the incident.
SOLUTION
This Note is for ORA-800[VKTM] issues. If you are facing only warning messages like below, Then follow Note 1347586.1 for Solution
Time drift detected. Please check VKTM trace file for more details.Warning: VKTM detected a time drift
1. ORADISM Permission:
Check the oradism permission in $ORACLE_HOME/bin. It should be owned by root and sticky bit set.
Oradism should be owned by root:dba with permission of 4750.
2. Check the priority of VKTM or LMS* @RDBMS level:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.7.0.0.0
SQL> 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%';
Parameter Session Value Instance Value Description
-------------------------------------------------- -------------------- ---------------------------
_highest_priority_processes VKTM VKTM Highest Priority Process Name Mask
If not "VKTM" is not prioritized, please elevate the priority using below SQL
SQL> alter system set "_high_priority_processes"='VKTM' scope=spfile;
Restart the Database and verify VKTM is elevated or not.
3. Cgroup Configuration:
After setting the above, still you have error for vktm then we need to verify the cgroup configuration.
Note: The above looks good or configured proper and it still fails. In which case, the instance might be running in some other cgroup.
Please find PID of VKTM of database which has problem :
The instance might be running in some other cgroup. Check the VKTMs cpu cgroups.
cat /proc/<vktm pid>/cgroup | grep cpu
If it shows some other path ( other than root such as 7:cpu,cpuacct:/ ), then make sure that the required cgroup is having the correct settings.
Try for VKTM :
-bash-4.1$ ps -eaf|grep -i vktm |grep -v grep
oracle 15722 1 29 Sep05 ? 06:49:05 ora_vktm_orcl12102
oracle 18110 1 0 13:33 ? 00:00:01 ora_vktm_orcl12201
If it shows some other path ( other than root such as 7:cpu,cpuacct:/ ), then make sure that the required cgroup is having the correct settings
If customer has below settings, For the vtkm process
SID= > cat /proc/60698/cgroup | grep cpu
6:cpuset:/
2:cpuacct,cpu:/user.slice
Please make following settings
Please check the mount having the oradism binary is having "nosuid" option set. Even if the permissions are proper and kernel configurations are fine, the oradism execution as root user will not be honored by root. Check the mount option for this case.
6. Oradism and Oracle binary permission difference:
Sometimes oradism and oracle binary will have different permissions (see bug 31909951).
For example, the oracle and oradism will have permissions as below