故障简述:应用反应慢,访问页面卡。
操作系统:Redhat AS 5.4
数据库:Oracle 10.2.0.4 (RAC 2节点)
内存分配:物理内存:24G
SGA: 8G
PGA: 5G
数据库存储方式: ASM(FC_DATA-数据文件 SATA_DATA 归档)
二、故障描述
近期更改:监控到数据库FC ASM磁盘组使用率99%,反馈给应用方并协商解决办法;应用方最终考虑决定,从SATA ASM 磁盘组迁移 3T 到 FC ASM磁盘组。
故障报告现象: 自数据存储修改后, 页面开始出现反应很慢,甚至出现卡的现象。
三、分析处理过程
1.查看alert log,无相关错误信息。
2.检查 CPU/IO/内存使用率,并无使用异常情况,只是内存使用率相对之前稍有偏高。
3.与应用开发人员确认,近期应用并无任何变更。
4. 检查数据库等待事件,发现有由长时间等待造成的等待事件,找到相关语句并将主机资源使用情况提供给应用开发人员协助检查。应用开发人员检查后反馈相关SQL执行情况一直存在,并告知性能问题自数据库存储变更后才出现。
5. 对数据库提取10:00-11:00 和11:00-12:00 时间段的ADDM, AWR,ASH 性能报告分析,SGA设置偏低(当前配置为8G),建议增大SGA到12G。并将此情况反馈给应用开发人员,并告知SGA修改需要停库,会对业务造成影响。
6. 在经得应用方同意停库后,尝试增大SGA到12G,报内存不足,无法扩展的错误。分析系统内存使用情况,系统除了数据库使用的13G内存外,并无其他程序使用剩下的11G内存。尝试重启操作系统,再次修改SGA为11G,10G,9G,仍然报相同的错误。
7. 检查系统内核参数配置,发现系统内存相关内核参数kernel.shmall可能设置过小造成SGA无法扩展。对比其他系统配置,并在新搭建的类似环境RAC平台测试后,确认为此参数设置过低造成SGA无法扩展。在线增大内核参数如下:
SGA限制公式: page_size*kernel.shmall
vi /etc/sysctl.conf
修改前: kernel.shmall=2097152
SGA=4096*2097152=8G
修改后: kernel.shmall=4294967296(可为其他值,只要达到目标修改值即可)
sysctl –p --使参数立即生效
确认使用大小:
cat /proc/sys/kernel/shmall
4294967296
8. 再次修改SGA大小(SGA_MAX_SIZE和SGA_TARGET),并启动数据库
Alter system set sga_max_size=12G scope=spfile;
重启数据库,确认大小并分别增大节点SGA_TARGET:
show parameter sga;
Alter system set sga_target=12g sid=’gxqbst1’;
Alter system set sga_target=12g sid=’gxqbst2’;
9. 启动应用程序观察,页面访问恢复正常
四、总结及建议
根据处理过程分析,故障的原因很大程度上跟数据库存储变更有关。数据库FC ASM磁盘组由原来的只由FC盘组改为 FC和SATA盘混合组成,鉴于SATA盘读写性能相对FC差,以及存储底层配置不同,可能导致磁盘的读写对内存使用要求更高,导致当前SGA大小不够造成。
建议:并建议ASM磁盘组最好使用单一存储类型。
1024x768 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE转载于:http://blog.itpub.net/27064837/viewspace-750334/