1、现象回顾
某日凌晨,其中一台ERP数据库主机宕机。AIX.5.3 HACMP RAC数据库环境。
2、故障分析
宕机时间点是在备份期间。通过分析数据库日志、系统日志、发现导致数据库停库的主要原因是由于HACMP的一个守护进程haemd发生自动重启,由于oracle数据库和haemd进程之间有关联,因此数据库在发现haemd重新启动后也自动停止。
经IBM工程师及实验室分析,Haemd自动重新启动的原因是由于在一定期间内(参数为2分钟)没有给HACMP系统响应,其原因之一是由于系统过于繁忙,没有响应Haemd。
随后分析结果发现在备份期间,从存储看系统不是很繁忙;但ERP数据库服务器主机性能异常:有时会出现阶段性的不响应现象,同时系统I/O高。停止备份后,这种现象消失。
经IBM实验室协助,初步经过分析
1) AIX系统内存分为计算类和非计算类内存。非计算类内存主要用于文件操作CACHE,以便提高文件再次读写的性能。目前ERP生产数据库占用了近20G内存作为文件系统CACHE。
2) 当文件系统CACHE有空间时,写文件操作将不会产生阻塞,当文件系统 CACHE无空间时,系统将会根据内部策略,挤出部分CACHE。当无法找到空闲的CACHE时,会等待系统调整出空闲的CACHE。当出现大量等待时,系统可能出现无响应的状态。
3、解决方案
考虑到将来数据量的增加,如果无法解决较大I/O对系统的影响过大的问题,这个隐患将一直存在。
调整该备份文件系统的属性,在该文件系统的I/O请求到达一定值的情况下,阻塞对该文件系统的读写I/O,从而保证预留足够的资源给系统。具体参数为Maxpout、Minpout。Maxpout、Minpout参数的选择,是和具体环境相关的,没有一个统一的建议值。若该参数设置不合理,可能会影响到文件系统的读写操作。而合适的参数需要经过设置、观察来确定。