VKTM time drift in Alter Log

Source: Internet
Author: User

VKTM time drift in Alter Log

Time is an important factor in the infrastructure of many information systems, including database systems. For middleware components running on the operating system OS, it is important to obtain an accurate, continuous, and consistent time, especially in a multi-node environment. Without a unified time management mechanism, it is difficult to work on the cluster components.

This article describes the Bug of the Oracle vktm time background process alert.

1. Starting from the 11g VKTM Process

For Oracle databases, it has been the development direction to maintain a unified and stable time system without calling the time at the operating system level. In 11g, an independent backend process vktm was introduced to the instance system.

VKTM processes are all called Virtual Keeper of Time Process, which provides a unified Time service for database running and interval calculation. The official explanation is:

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 cballs from other clients.

In versions earlier than 11g, if the database instances (including ASM and RAC instances) require the current time, they all call the time acquisition function at the operating system level (for example, gettimeofday ()). After entering 11 GB, this action is completed by the Unified VKTM, and the process is retained internally. If other processes require time, they are obtained indirectly through this process. The most direct effect of the emergence of dedicated time background processes is to reduce interaction with the operating system kernel and improve performance.

2. Time Drift Problems

During a log inspection, I found that the alert log contains the following alarm information:

Tue December 22 21:56:26 2015

Warning: VKTM detected a time drift.

Time drifts can result in an unexpected behavior such as time-outs. Please check trace file for more details.

Tue December 22 23:02:44 2015

Warning: VKTM detected a time drift.

Time drifts can result in an unexpected behavior such as time-outs. Please check trace file for more details.

Alert log is the most direct way and method for us to find database operation problems. Starting from 11g, some prediction and diagnostic information are also output through alert log, which is expected to be used for pre-diagnosis of database faults.

From the log information, the database experienced the Time Drift phenomenon of two vktm processes at two Time points. Drift is the meaning of Drift and floating. As a background process for time maintenance, VKTM seems to have quickly moved forward and backward at two time points.

Based on the time information in the log, we can find the trace file to locate the fault.

[Oracle @ vLIFE-URE-PRD-DB-PRIMARY trace] $ ls-l | grep vktm

(Space reasons, omitted ......)

-Rw-r -----. 1 oracle oinstall 90 Dec 21 14:48 UREPRD_vktm_22700.trm

-Rw-r -----. 1 oracle oinstall 1846 Dec 22 UREPRD_vktm_23138.trc

-Rw-r -----. 1 oracle oinstall 128 Dec 22 UREPRD_vktm_23138.trm

The corresponding Trace file information is as follows:

Kmeanmainvktm: failed in setting elevated priority

Verify: SETUID is set on ORADISM and restart the instance

Highres_enabled

VKTM running at (100 ms) precision

Kstmrmtickcntkeeper: param _ dbrm_quantum will not be valid tive

* ** 16:15:27. 883

[Start] HighResTick = 1450685727883070

Kstmrmtickcnt = 0, ksudbrmseccnt [0] = 1450685727

Kmeanchkdrift (kstmrmtickcntkeeper: highres): Time jumped forward by (16898372) usec at (1450792586464465) whereas (1000000) is allowed

* ** 21:56:27. 439

Kmeanchkdrift (kstmrmtickcntkeeper: lowres): Time jumped forward by (18000000) usec at (1450792587) whereas (5000000) is allowed

Kmeanchkdrift (kstmrmtickcntkeeper: highres): Time jumped forward by (1112648) usec at (1450796564826494) whereas (1000000) is allowed

In the alert results, we can see two drift phenomena. Information, we see a unit of usec, equivalent to 0.000001 seconds. Then, the two prompts clearly mean that the VKTM process jumped forward for 18 seconds and 1.1 seconds respectively. The specified hop time is 1 second.

Then, the next question is, how did the problem come about? Do we need to intervene? Some warning information in alter log is based on database diagnostic rules. The warning content covers multiple aspects such as memory, security, and storage. Not every kind of information needs to be processed. A lot of information is based on the best Oracle practice.

In MOS, the author located an article about Time Drift error in alert log, named Time Drift Detected. please Check VKTM Trace File for More Details, Article No.: ID 1347586.1.

In this article, Oracle believes that this error will occur continuously between 11.2.0.2 and 11.2.0.3 and has been fixed in 11.2.0.4. Bug no.: 11837095 "time drift detected" appears intermittently in alert log, tho' EVENT 10795 SET.

If you need to fix the Bug separately, you need to install patch 11837095. Then, control by setting the wait event 10795.

Alter system set event = "10795 trace name context forever, level 2" scope = spfile;

The potential impact of such errors is explained in the MOS article as follows:

Impact of the error:

The time drifts usually occurring less than 1sec and 5 sec for forward and backward respectively are permissible and OK.

If the traces are emitting time drifts of amount beyond these ranges, then it needs to be analyzed.

Most of the times, during high loads, there wocould be issues with underlying OS due to virtual memory, network time protocol improper configuration etc.

In general VKTM process need to be scheduled in every 10 ms, if due to above reasons this is not happening we see the time drifts and to certain level (mentioned above) are permissible.

Eventually, this probably wowould cause the resource manager to take improper decisions and can lead to a hang in worst case.

VKTM process trace file can be found under bdump, However in this case the trace file doesn't contain useful information, Which makes the message ambiguous.

In most cases, due to system high load or memory scheduling configuration problems, VKTM jobs may encounter problems every 10 ms and may experience 1-5 seconds of Drift. If this problem occurs frequently, you need to consider the operating system and database configuration issues as a whole. VKTM may drift, which may affect the working conditions of resource manager.

3. Conclusion

VKTM is a new background process introduced in Oracle 11g. When faced with various strange problems in alert log, we 'd better take the initiative to consult the official MOS to see if there are similar solutions. Small problems can be solved as soon as possible to ensure that the system will not experience major faults.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.