联系:手机/微信(+86 17813235971) QQ(107644445)
标题:win平台报ORA-15055 ORA-21561错误处理—增加SharedSection值
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
有一套win环境的rac,不定期的异常,alert日志经常报ORA-15055 ORA-21561错误,经过分析是由于win默认的Desktop Heap Size值太小导致该问题,以此提醒各位win平台跑oracle 的朋友注意。
alert日志报错
Current log# 6 seq# 1820 mem# 0: +DATA/rac/onlinelog/group_6.3110.876059421 Thread 2 advanced to log sequence 1821 (LGWR switch) Current log# 5 seq# 1821 mem# 0: +DATA/rac/onlinelog/group_5.3109.876059417 Mon Jul 06 14:11:34 2015 WARNING: ASM communication error: op 0 state 0x0 (15055) ERROR: direct connection failure with ASM WARNING: ASM communication error: op 0 state 0x0 (15055) ERROR: direct connection failure with ASM NOTE: Deferred communication with ASM instance Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\rac\rac2\trace\rac2_arc0_276.trc: ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败 ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败 NOTE: deferred map free for map id 28882 Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\rac\rac2\trace\rac2_arc0_276.trc: ORA-00313: 无法打开日志组 6 (用于线程 2) 的成员 ORA-00312: 联机日志 6 线程 2: '+DATA/rac/onlinelog/group_6.3110.876059421' ORA-17503: ksfdopn: 2 未能打开文件 +DATA/rac/onlinelog/group_6.3110.876059421 ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败 ARCH: Archival stopped, error occurred. Will continue retrying WARNING: ASM communication error: op 0 state 0x0 (15055) ERROR: direct connection failure with ASM WARNING: ASM communication error: op 0 state 0x0 (15055) ERROR: direct connection failure with ASM NOTE: Deferred communication with ASM instance Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\rac\rac2\trace\rac2_arc0_276.trc: ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败 ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败 NOTE: deferred map free for map id 28883 Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\rac\rac2\trace\rac2_arc0_276.trc: ORA-00313: 无法打开日志组 6 (用于线程 2) 的成员 ORA-00312: 联机日志 6 线程 2: '+DATA/rac/onlinelog/group_6.3110.876059421' ORA-17503: ksfdopn: 2 未能打开文件 +DATA/rac/onlinelog/group_6.3110.876059421 ORA-15055: 无法连接到 ASM 实例 ORA-21561: 生成 OID 失败
数据库版本
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production PL/SQL Release 11.2.0.3.0 - Production CORE 11.2.0.3.0 Production TNS for 64-bit Windows: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production
OS版本
SQL> host systeminfo 主机名: RAC2 OS 名称: Microsoft Windows Server 2008 R2 Enterprise OS 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: Microsoft Corporation OS 配置: 独立服务器 OS 构件类型: Multiprocessor Free 注册的所有人: Windows 用户
通过查询MOS,发现该问题主要是由于win的SharedSection设置不足导致,而此类问题可能还导致其他错误,如:TNS12531:TNS:cannot allocate memory。
建议:对于Microsoft Windows 平台数据库,数据库版本为Version 11.2.0.1 to 12.1.0.2的系统,根据实际情况适当增加SharedSection大小。
例如:修改\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\: SharedSection=1024,20480,1024。
这里的第二个为交互式的Desktop Heap Size,第三个是非交互式的Desktop Heap Size,我们主要修改第三个值
Windows 2008 R2的默认值为:在\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\windows这个选项里面:
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16