适用范围
Oracle Database 11g 11.2.0.4
问题概述
X86环境打了数据库补丁Patch 31718723 RAC每个节点无法正常启动,报错信息ORA 29770
问题原因
X86环境下数据库启动过程中内存分配环节出现hang
解决方案
gcs_server_processes参数采用自动计算,不建议手工修改 背景:客户计划将核心系统Oracle数据库由AIX平台下移到X86平台,X86服务器为8路 4T内存。 基础环境: Redhat Enterprise 7.9,Oracle 11g 11.2.0.4.201020,3节点RAC 问题概述:X86环境打了数据库补丁Patch 31718723 RAC每个节点无法正常启动 报错信息: 数据库日志报错信息:
allocate domain 0, invalid = TRUE Fri Aug 12 21:52:05 2022 LMON (ospid: 94465) waits for event ‘SGA: allocation forcing component growth’ for 94 secs. Errors in file /u01/app/oracle/diag/rdbms/enmodb/enmodb3/trace/enmodb3_lmhb_94500.trc (incident=2476361): ORA-29770: global enqueue process LMON (OSID 94465) is hung for more than 70 seconds trace报错信息: enmodb3_lmhb_94500 *** 2022-08-12 21:51:03.896 ============================== LMON (ospid: 94465) has not moved for 34 sec (1660312263.1660312229) kjfmGCR_HBCheckAll: LMON (ospid: 94465) has status 2 : waiting for event ' SGA: allocation forcing component growth’ for 33 secs with wait_id 103. ===[ Wait Chain ]=== LMON (ospid: 94465) waits for event ‘SGA: allocation forcing component growth’. MMAN (ospid: 94502) is not in wait. 2022-08-12 21:51:24.376 ============================== 分析和处理过程 AIX环境数据库内存参数 sga_max_size=858993459200 db_cache_size=644245094400 X86环境数据库内存参数 sga_max_size=900G db_cache_size=700G 数据库DB11204未打补丁的情况下可以正常启动打补丁后的测试 1、打了Patch 31718723
Oracle Grid Infrastructure Patch Set Update 11.2.0.4.201020之后,数据库无法正正常启动。回退补丁后数据库可以正常启动。 2、更换补丁Patch 31305209测试1:SGA自动管理方式测试。 将SGA_TARGET分别设置为50G,800G,900G,gcs_server_processes=7,数据库均可以正常启动。 测试2:SGA手工管理方式测试。 将sga_max_size设置为900G,db_cache_size设置为700G,gcs_server_processes=7,数据库无法正常启动。 测试3:SGA手工管理方式测试。 将sga_max_size设置为900G,db_cache_size设置为500G,gcs_server_processes=7,数据库可以正常启动。 测试4:SGA手工管理方式测试。 X86环境自动计算gcs_server_processes=16(cpu_count 448 ,2+448/32=2+14=16) sga_max_size设置为900G,db_cache_size设置为700G 打了Patch 31718723补丁后,数据库可以正常启动。
