Oracle11g RAC下真的要关闭DRM
以前从来没有遇到过如此的问题,特别是gcs drm freeze in enter server mode等待事件,是DRM特性。在影响用户的角度分析,执行频繁的insert语句很慢,我想原因与两个,一是插入的时候需要读取待插入数据块,二是需要读取待插入的索引块,还有索引的分裂。数据块在节点之间来回传输导致等待。 Top 10 Foreground Events by Total Wait Time
由于需要等几天才能重启数据库,所以临时的处理方案是将weblogic指向一个实例,从效果上来看,非常不错。 在10g中,可以采用如下方式禁用DRM(当然你也可以只禁用其中的一个模块object affinity或者undo affinity)
Oracle给出的Oracle11g下的调整:
alter system set "_gc_policy_time"=0 scope=spfile sid='*';
alter system set "_gc_undo_affinity"=false scope=spfile sid='*';
本次出问题的数据库SGA设置为1T,所以安装的时候需要初始化一些特殊的参数。 Best Practices and Recommendations for RAC databases with SGA size over 100GB (文档 ID 1619155.1) APPLIES TO:Oracle Database - Enterprise Edition - Version 11.2.0.3 and laterInformation in this document applies to any platform. PURPOSEThe goal of this note is to provide best practices and recommendations to users of Oracle Real Application Clusters (RAC) databases using very large SGA (e.g. 100GB) per instance (note that RAC assumes homogeneously sized SGAs across the cluster). This document is compiled and maintained based on Oracle's experience with its global RAC customer base. SCOPEThis article applies to all new and existing RAC implementations. This is for RAC databases only as most of the parameters listed in here are for RAC Database only. DETAILSNote that the recommendations presented in this note are a result of the experience from working on databases with SGA of 1 TB and 2.6 TB. Also,the databases with SGA of 100GB and 300GB also benefited from the recommendations init.ora parameters: Setting this will prevent some timeouts during reconfiguration and DRM. It's a static parameter and rolling restart is supported. b. Set _ksmg_granule_size to 134217728 Setting this will cut down the time needed to locate the resource for a data block.It's a static parameter and rolling restart is supported. c. Set shared_pool_size to 15% or larger of the total SGA size. For example,if SGA size is 1 TB,the shared pool size should be at least 150 GB.It's a dynamic parameter. d. Set _gc_policy_minimum to 15000 There is no need to set _gc_policy_minimum if DRM is disabled by setting _gc_policy_time = 0._gc_policy_minimumis a dynamic parameter,_gc_policy_time is a static parameter and rolling restart is not supported. To disable DRM,instead of_gc_policy_time,_lm_drm_disable should be used as it's dynamic. e. Set _lm_tickets to 5000 Default is 1000. Allocating more tickets (used for sending messages) avoids issues where we ran out of tickets during the reconfiguration. It's a static parameter and rolling restart is supported. When increasing the parameter,rolling restart is fine but a cold restart can be necessary when decreasing. f. Set gcs_server_processes to the twice the default number of lms processes that are allocated. The default number of lms processes depends on the number of CPUs/cores that the server has, so please refer to the gcs_server_processes init.ora parameter section in the Oracle Database Reference Guide for the default number of lms processes for your server. Please make sure that the total number of lms processes of all databases on the server is less than the total number ofCPUs/cores on the server. Please refer to the Document 558185.1 It's a static parameter and rolling restart is supported. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |