诊断案例:从实例挂起到归档失败和内存管理的蝴蝶效应

简介:

640?wxfrom=5&wx_lazy=1
杨廷琨(yangtingkun)

云和恩墨 CTO

高级咨询顾问,Oracle ACE 总监,ITPUB Oracle 数据库管理版版主

编辑手记:在很多数据库的故障案例中,一个简单的疏忽可能导致问题被层层放大,最终导致故障,这就是蝴蝶效应的传播原理。这里分享的小案例自顶向下的追溯可以显见:实例挂起->归档失败->实例错误->参数配置。根本的原因往往很简单,DBA的严谨尤其重要。


客户的11.2.0.3 RAC数据库出现了归档失败的情况,导致单个实例出现HANG死的状况。

检查错误信息发现:

Tue Jul 02 16:49:13 2013

ARC1: Error 19504 Creating archive log file TO '+DATA02'

ARCH: Archival stopped, error occurred. Will continue retrying

ORACLE Instance orcl1 - Archival Error

ORA-16038: log 14 SEQUENCE# 68244 cannot be archived

ORA-19504: failed TO CREATE file ""

ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.264.792274883'

ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.265.792274889'

Archiver process freed FROM errors. No longer stopped

Tue Jul 02 16:50:37 2013

ARC0: LGWR IS actively archiving destination LOG_ARCHIVE_DEST_3

ARCH: Archival stopped, error occurred. Will continue retrying

ORACLE Instance orcl1 - Archival Error

ORA-16014: log 14 SEQUENCE# 68244 NOT archived, no available destinations

ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.264.792274883'

ORA-00312: online log 14 thread 1: '+DATA02/orcl/onlinelog/group_14.265.792274889'

ARC0: Archive log rejected (thread 1 SEQUENCE 68240) at host 'orclsh'

FAL[server, ARC0]: FAL archive failed, see trace file.

ARCH: FAL archive failed. Archiver continuing

ORACLE Instance orcl1 - Archival Error. Archiver continuing.

由于归档失败发生在ASM磁盘上,首先检查ASM磁盘空间以及DB_RECOVERY_FILE_DEST_SIZE,ASM磁盘空间是足够的,而且由于只有一个节点出现出现了无法归档的问题,也可以排除是空间不足造成的。


确认两个节点的DB_RECOVERY_FILE_DEST_SIZE参数设置都是0,基本上可以判断问题和当前节点的ASM实例状态不正常有关。


接下来检查ASM实例的错误信息:

Tue Jul 02 16:41:43 2013

Dumping diagnostic DATA IN directory=[cdmp_20130702164115], requested BY (instance=2, osid=2032294 (LMD0)), summary=[incident=165521].

Tue Jul 02 16:49:13 2013

Dumping diagnostic DATA IN directory=[cdmp_20130702164845], requested BY (instance=2, osid=2032294 (LMD0)), summary=[incident=165522].


当前节点ASM实例出现了的这个信息,说明报错发生在实例2上,检查实例2的ASM告警日志文件:

Tue Jul 02 18:29:55 2013

Errors IN file /u01/app/grid/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_2032294.trc  (incident=186256):

ORA-04031: unable TO allocate 3768 bytes OF shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")

USE ADRCI OR Support Workbench TO package the incident.

See Note 411.1 at My Oracle Support FOR error AND packaging details.

 Insufficient shared pool TO allocate a GES object (ospid 2032294)

Tue Jul 02 18:29:55 2013

Sweep [inc][186256]: completed

Tue Jul 02 18:36:49 2013

Errors IN file /u01/app/grid/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_2032294.trc  (incident=186257):

ORA-04031: unable TO allocate 3768 bytes OF shared memory ("shared pool","unknown object","sga heap(1,0)","ges enqueues")

USE ADRCI OR Support Workbench TO package the incident.

See Note 411.1 at My Oracle Support FOR error AND packaging details.

 Insufficient shared pool TO allocate a GES object (ospid 2032294)

果然实例2上的ASM出现了大量ORA-4031错误,这说明ASM实例的Shared Pool内存可能配置不足。检查ASM启动的参数配置:


Sat Aug 25 20:06:55 2012

NOTE: No asm libraries found IN the system

ERROR: -5(Duplicate disk DATA_DG01:ASM_DISK1)

ERROR: -5(Duplicate disk DATA_DG01:ASM_DISK2)

MEMORY_TARGET defaulting TO 411041792.

* instance_number obtained FROM CSS = 2, checking FOR the existence OF node 0... 

* node 0 does NOT exist. instance_number = 2 

Starting ORACLE instance (normal)

LICENSE_MAX_SESSION = 0

LICENSE_SESSIONS_WARNING = 0

Private Interface 'en1' configured FROM GPnP FOR USE AS a private interconnect.

  [name='en1', TYPE=1, ip=169.254.78.6, mac=00-1a-64-bb-50-7d, net=169.254.0.0/16, mask=255.255.0.0, USE=haip:cluster_interconnect/62]

Public Interface 'en0' configured FROM GPnP FOR USE AS a public interface.

  [name='en0', TYPE=1, ip=10.1.16.35, mac=00-1a-64-bb-50-7c, net=10.1.16.32/27, mask=255.255.255.224, USE=public/1]

Picked latch-free SCN scheme 3

USING LOG_ARCHIVE_DEST_1 parameter DEFAULT VALUE AS /u01/app/11.2.0.3/grid/dbs/arch

Autotune OF undo retention IS turned ON. 

LICENSE_MAX_USERS = 0

SYS auditing IS disabled

NOTE: Volume support  enabled

Starting up:

Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

WITH the REAL Application Clusters AND Automatic Storage Management options.

ORACLE_HOME = /u01/app/11.2.0.3/grid

System name: AIX

Node name: orcldb2

Release: 1

Version: 6

Machine: 00C94E064C00

USING parameter settings IN server-side pfile /u01/app/11.2.0.3/grid/dbs/init+ASM2.ora

System parameters WITH non-DEFAULT VALUES:

  large_pool_size          = 12M

  instance_type            = "asm"

  remote_login_passwordfile= "EXCLUSIVE"

  asm_diskstring           = "/dev/ocr_*"

  asm_diskstring           = "/dev/voting_*"

  asm_diskstring           = "/dev/asm_*"

  asm_diskgroups           = "DATA"

  asm_diskgroups           = "DATA_DG01"

  asm_diskgroups           = "SPFILE_DG"

  asm_power_limit          = 1

  diagnostic_dest          = "/u01/app/grid"

Cluster communication IS configured TO USE the following interface(s) FOR this instance

  169.254.78.6

cluster interconnect IPC version:Oracle UDP/IP (generic)

IPC Vendor 1 proto 2


当前ASM实例使用默认的MEMORY_TARGET配置,分配大小大约是400M,根据Oracle的MOS文章:ASM & Shared Pool (ORA-4031) [ID 437924.1],在11.2.0.3中,Oracle增加了ASM实例所允许的默认进程数PROCESSES,但是默认的MEMORY_TARGET参数没有增加。

根据Oracle的建议,11.2.0.3的MEMORY_TARGET至少应该设置到1536M,而MEMORY_MAX_TARGET设置为4096M

SQL> ALTER system SET memory_max_target=4096m scope=spfile;

SQL> ALTER system SET memory_target=1536m scope=spfile;

对于当前的情况,如果短时间内无法重启DB和ASM实例,可以在问题节点配置一个第二本地归档路径,设置目标路径为本地磁盘,从而避免归档无法完成而导致的实例HANG死。


本文出自数据和云公众号,原文链接


相关文章
|
26天前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
4月前
|
人工智能 Java 5G
常见的Java内存溢出情况和实例
常见的Java内存溢出情况和实例
|
6月前
|
存储 编译器 Go
Go 语言内存逃逸案例
Go 语言内存逃逸案例
31 0
|
7月前
|
存储 弹性计算 Linux
阿里云服务器实例规格CPU内存带宽系统盘等配置选择注意事项
在购买阿里云服务器时,实例规格、CPU、内存、带宽和系统盘等配置都是重要的,合理选择这些配置不仅能够更好地满足我们的需求,提高服务器的性能和稳定性。同时还能尽可能的节约购买成本,本文将对阿里云服务器实例规格CPU内存带宽系统盘等配置选项进行详细解释,并提供一些选择建议及注意事项,以供参考。
797 0
阿里云服务器实例规格CPU内存带宽系统盘等配置选择注意事项
|
16天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
2月前
|
存储 负载均衡 算法
负载均衡案例:如何只用2GB内存统计20亿个整数中出现次数最多的整数
负载均衡案例:如何只用2GB内存统计20亿个整数中出现次数最多的整数
29 2
|
2月前
|
缓存 Dubbo Java
案例 1: 某财险承保系统内存泄漏问题
案例 1: 某财险承保系统内存泄漏问题
|
2月前
|
网络协议 Linux
【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?
【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?
105 0