1.MOS中有一篇文档可参考ID 1347586.1
看题主的报错信息,已经影响到了resource manager,可以将相应的trace文件贴出来,查看详细报错。系统负载较高或者内存调度问题都会导致VKTM时间漂移,题主数据库版本是多少?在MOS文档中,Oracle认为这个错误在11.2.0.2到11.2.0.3之间会不断地出现,已经在11.2.0.4版本中被修复。Bug编号为:11837095 "TIME DRIFT DETECTED" APPEARS INTERMITTENTLY IN ALERT LOG, THO' EVENT 10795 SET。
VKTM进程全称为“Virtual Keeper of Time Process”,用于给数据库运行和间隔运算计量提供出一个统一的时间服务。官方解释是:
VKTM acts as a time publisher for an Oracle instance. VKTM publishes two sets of time: a wall clock time using a seconds interval and a higher resolution time (which is not wall clock time) for interval measurements. The VKTM timer service centralizes time tracking and offloads multiple timer calls from other clients.
在11g之前的版本中,如果数据库实例(包括ASM和RAC Instance)需要当前时间的时候,都调用操作系统层面的时间获取函数(例如:gettimeofday())。进入11g之后,这个动作就由统一的VKTM负责完成,并且在进程内部保留时间过程。其他进程如果需要时间,都通过这个进程间接获得。专门的时间后台进程的出现,最直接的效果就是减少了同操作系统内核的交互,提高了性能。