RAC禁用DRM特性

查看“_gc”开头的隐藏参数值:

set linesize 333
col name for a35
col description for a66
col value for a30
SELECT   i.ksppinm name,  
   i.ksppdesc description,  
   CV.ksppstvl VALUE
FROM   sys.x$ksppi i, sys.x$ksppcv CV  
   WHERE   i.inst_id = USERENV ('Instance')  
   AND CV.inst_id = USERENV ('Instance')  
   AND i.indx = CV.indx  
   AND i.ksppinm LIKE '/_gc%' ESCAPE '/'  
ORDER BY   REPLACE (i.ksppinm, '_', '');  

–11g RAC关闭DRM特性

alter system set "_gc_policy_time"=0 scope=spfile sid='*';
alter system set "_gc_undo_affinity"=false scope=spfile sid='*';

–10g RAC关闭DRM特性

 alter system set "_gc_affinity_time"=0 scope=spfile sid='*';
 alter system set "_gc_undo_affinity"=FALSE scope=spfile sid='*';

参考老熊的文章,http://www.laoxiong.net/problem-caused-by-drm.html
10g RAC可以设置另外2个动态的隐含参数,来达到从”事实上“关闭DRM的目的:

 _gc_affinity_limit=250  
 _gc_affinity_minimum=10485760

2022-06-16 追加更新:
19c关闭DRM的方法又变了:

ALTER SYSTEM SET "_lm_drm_disable"=7 SCOPE=BOTH SID='*';

虽然是动态参数,但是有时候直接修改会导致节点重启出现问题,具体参见MOS文档:Startup Database Hang After Setting _lm_drm_disable Dynamically (Doc ID 2414292.1)

其中的workaround是建议在设置后关闭所有节点,然后再启动:
Shutdown all nodes after setting _lm_drm_disable=7, and then startup them.

This entry was posted in Oracle最佳实践 and tagged , , . Bookmark the permalink.