oracle ASM实例ORA-04031故障处理
来源:互联网 发布:全知科技张超微博 编辑:程序博客网 时间:2024/05/16 11:03
数据库服务器为两台AIX小型机配置的2点11gR2 RAC数据库。故障发生后,业务应用无法连接数据库故障,数据库整体故障,而非某一节点故障导致。
首先,通过cts_stat -t查看集群资源,发现两个节点的实例状态是offline,其他集群资源正常。随即登陆node2数据库,发现数据库实例的状态为“start”即no mount状态,尝试open数据库,无法open。
第二步,查看oracle数据库的alert日志,提示
“ORA-19504: failed to create file "+ARCLOG"
ORA-17502:ksfdcre:4 Failed to create file +ARCLOG
ORA-15041:diskgroup "ARCLOG" space exhausted”,归档日志创建失败。
随即登陆asmcmd管理工具使用lsdg查看磁盘组存储空间,发现只剩余不到4GB的容量了,在征求用户同意后,将该 ASM上的历史归档日志进行手工删除,以释放空间。
使用rm -rf 删除命令后提示“ORA-04031:unable to allocate 3896 bytes of shared memory ("sharedpool","unknown object","sgaheap(1,0)","kglsim object batch")”导致无法删除历史归档日志回收空间。
第三步,查看grid数据库的alert日志,得到的提示如上。asm实例是用于管理数据库的数据库文件等物理文件系统资源。那么可以定位问题在于数据库asm实例无法分配空间至shared pool导致了oracle数据库实例获取数据文件、日志文件等信息从 而导致实例崩溃。
第四步,登陆asm实例通过“show parameter mem”查看asm实例的内存分配情况,默认情况下asm实例是采用的amm内存管理方 式。当前实例仅分配了340M内存,根据Oracle的推荐,在11g中使用MEMORY_TARGET参数的话, MEMORY_TARGET至少应该分 配256M以上,而且随着DISK GROUP的容量的增长,SHARED_POOL所需要的空间也随着增加。因此对于磁盘组空间比较大的ASM实 例而言,采用默认参数作为MEMORY_TARGET是不够的。只需要简单的调整ASM实例的MEMORY_TARGET参数,将其扩大到500M以上,就可以避免该错误。
第五步,调整asm实例的内存配置,在两个节点的asm实例均执行。
SQL> altersystem set memory_max_target=500M SCOPE=spfile;
SQL> altersystem set memory_target=500M scope=spfile;
配置完成后需要进行重启实例生效,但是该ASM实例无法正常管理,仍然提示无法分配共享池错误。
最后只能在root用户下通过crsctl stop has -f强制停止集群资源命令停止来完成ASM实例的关闭。
第六步,启动集群资源
使用crs_stat -all命令
启动后,两个asm实例以及oracle实例均正常启动,业务也恢复正常。
最后再次进行手工删除历史归档日志,保障数据库归档空间配额。
总结:
本次故障咋一看现象是因为归档日志空间已满,数据库hang住,导致业务应用中断,但是通过查看asm实例的alert_ +ASM1.log日志发现问题是由于asm实例内存资源无法分配,数据库实例无法获取asm文件系统资源最终导致数据库实例挂掉。最 后手工修改asm实例后发现asm实例无法正常重启,只能通过crsctl stop has-f强制关闭。
在处理故障的时候应当结合多方面日志进行分析,不能仅根据部分日志就盲目去操作。
- oracle ASM实例ORA-04031故障处理
- Oracle故障处理 ORA-16038 ORA-19502 ORA-00312
- ORA-04031故障分析处理
- Oracle Goldengate ORA-21780故障处理
- Oracle数据库 ORA-600 [13013]故障处理
- ORA-01591故障处理
- ORA-01591故障处理
- ora-3136故障处理
- Oracle-Ora-04031故障的分析
- ASM单实例由Oracle Restart引发的系列故障分析(Final Version)
- 管理Oracle ASM实例
- 故障处理:ORA-01034 - Oracle not available ORA-27101 - shared memory realm does not exist
- ORA-01031 故障处理方法
- oracle 11gR2 单机使用asm存储 改主机名 重启系统 GI故障处理
- ORA-07445/ORA-00108故障处理
- ORA-00376/ORA-01110 故障处理办法
- ASM磁盘容量改变的故障处理
- 创建oracle实例报错ora-28056从ASM拷贝文件的方法
- Mysql+java后台判断数据库表是否存在
- UiAutomator笔记之UiCollection API(五)
- suse zypper操作命令
- hadoop学习
- Android 反编译初探 应用是如何被注入广告的
- oracle ASM实例ORA-04031故障处理
- 一起talk C栗子吧(第一百八十五回:C语言实例--打印常用的ASCII码对照表)
- Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib
- 初识Unity 3D——常用API(1)
- 11.27
- 0005算法笔记——【分治法】快速排序
- 11.创建模型
- Linux开发环境搭建(三)
- javascript学习之三(闭包)