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.”
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.
fpfks1