RAC Dynamic Remastering (DRM) Freeze Waits (11g)

Following is a brief account of some serious issues we had with DRM on a 3 node RAC system running 11g R2.

We had intermittent spikes that were severe enough to disrupt service. Here is a section from a 10-minute ASH showing DRM related wait “gcs drm freeze in enter server mode.”

drm2

Our first attempt was to disable DRM by setting _gc_policy_time=0. But even after that change, we had significant DRM related  waits.

It appeared that the lmon and lms0 background processes were the root of the drm waits. ora_lmon_node_1, experienced “gcs drm freeze in enter server mode”  waits,  while ora_lms0_node_1 experienced “ges lms sync during dynamic remastering and reconfig” wait. ora_lmon_node_1 was the blocker.

Following are some observations.

• DRM activity _gc_policy_time=0 was not on database tables or indexes. Maybe undo remastering was happening.

09:42:46 SQL> WITH t
09:56:15   2       AS (SELECT /*+materialize*/
09:56:15   3                 data_object_id
09:56:15   4             FROM gv$policy_history
09:56:15   5            WHERE TO_DATE (event_date, 'mm/dd/yyyy hh24:mi:ss') >
09:56:15   6                     TO_DATE ('03/07/2016 06:00:00', 'mm/dd/yyyy hh24:mi:ss'))
09:56:15   7  SELECT *
09:56:15   8    FROM dba_objects
09:56:15   9   WHERE data_object_id IN (SELECT data_object_id FROM t);
 
no rows selected

• GRD (Global Resource Directory) is frozen during remastering activity(lmon and lms0). This causes sessions to wait on “gcs drm freeze in enter server mode”

• UNDO remastering could happen if _gc_undo_affinity is set to TRUE (even if  _gc_policy_time=0)

It seems _gc_policy_time is the only param to set to disable DRM in 11g. Unfortunately, parameters like _gc_undo_affinity  are not well documented.

In an unrelated Metalink note with Doc ID 14588746.8, it suggests the following to disable DRM in 11g.

Workaround
Disable DRM by setting:
_gc_policy_time=0
_gc_undo_affinity=false <= suggesting it is still needed in 11g to disable DRM?

Solution

Finally, Oracle support recommend  to set _lm_drm_disable=7  since _gc_policy_time=0 did not seem to eliminate the drm waits. This can be set dynamically set  without having to bounce the DB.

alter system set “_lm_drm_disable=7”  scope=both  sid=’*’;

Set the level to 4 to disable DRM for read-mostly only, 5 to disable DRM for all but undo, and 7 to disable DRM for all including undo.

_lm_drm_disable=7 eliminated the DRM related waits.

One thought on “RAC Dynamic Remastering (DRM) Freeze Waits (11g)

Leave a Reply

Your email address will not be published. Required fields are marked *