Understanding Real Application Cluster Processes

With all the Processes of Stand-alone Oracle Database, Real Application Cluster provides some other processes which plays important role. These Processes are:

1. LMON: Globa Enqueue Service Monitor
Responsibilities Assigned:

This Process is responsible for monitoring the entire cluster global enqueues and the resources. It also manages the instances failure and process failures and the associated recovery for Global Cache service and Global Enqueue Service.
Main responsibility of this process is recovery of Global Resources. Services provided by this process is also known as Cluster Group Services.

View:: So, we have one watcher and recovery agent for Global Resources.

2. LMDx: Global Enqueue Service Daemon (Lock Agent)
Responsibility Assigned:

This process controls the access of Global Enqueue and resources. It also handles the Deadlock detection and remote enqueue requests (i.e requests from instances).

View: Hmm, we have one recorder agent and resource information keeper.

3. LMSx: Global Cache Service Processes
Responsibility Assigned:

This is a process which works as Messages handler. RAC provokes up to 10 LMSx processes. It handles the acquisition interrupt and blocking interrupt requests from remote instances. It also keeps the consistency in read version of blocks. It also controls the flow of messages. Overall responsibilities can be described in bullets are given below:
a. Manage the resources requests and cross instance calls for shared resources
b. Listing all invalid lock elements and validating the locks during recovery.
c. Handles the deadlock detection and lock conversion timeouts.

View: So, we have clerk which can keep the records of locks and request for Global resources.

4. LCKx: Broadcaster
Responsibility Assigned:

This mainly manages the requests and Broadcast the information across the instances. Workload of this process automatically get balanced/shared if we have multiple LMSx.

View: This is a Broadcaster. I understand we require it.

4. DIAG: Diagnosability Darmon
Responsibility assigned:

It monitor the health of instances ad keeps the data of instance process failures. Naming Convention followed for this process is ora__NYDB1

View: Hmm Auditor and Nursing Assistant process.

Now lets understand the some important services and who is responsible for it.

1. Global Cache Service:
Responsibility comes under it:

a. Track the location and status of data block i.e its mode,role and access privileges of various data instances.
b. Block transfer between instances and give appropriate lock mode conversion

Who is responsible for it: LMSx and LMD

2. Global Enqueue service:
Responsibility comes under it:

a. Manage and track the status of enqueuing mechanism which includes all non cache fusion intra-instances operations.
b. Perform Concurrency Control on dictionary cache locks, library cache locks and transactions.

Who is responsible: Almost all the RAC specific processes are responsible for it.

So, above the important processes/managers which we get in RAC for Oracle Database Management to provide global services of GCS and GES.

Comments

  1. This summary of processes is very well put.
    Thanks!

    http://www.tejinderk.blogspot.com/

    ReplyDelete
  2. Thanks a lot for sharing your knowledge .

    ReplyDelete

Post a Comment

Popular posts from this blog

Does UPDATE Change ROWID in Oracle?

PostgreSQL Database Link to Oracle Database on Linux

Fix of "ORA-29275: partial multibyte character"