环境:OS:AIX Version 6.1Oracle : 10.2.0.5 rac(节点rac2)一、问题描述晚上22:40 收到一条短信,数据库挂了,立马连上数据库,在日志里面发现:从日志里面看问题很明显:是由于ora04031导致数据库重启。
二、分析与解决问题思路:ora04031错误导致后台进程LCK0挂了,进而导致数据库重启:查看当前数据库相关参数: 查看awr:这里可以看出shared pool size 是8G ,buffer cache有 160G,有7个子池查看dump文件/oracle/product/admin/oss139/bdump/oss1392_lck0_6685174.trcMemory Utilization of Subpool 1================================ Allocation Name Size _________________________ __________"free memory " 19127320 19MMemory Utilization of Subpool 2================================ Allocation Name Size _________________________ __________"free memory " 131103400 130MMemory Utilization of Subpool 3================================ Allocation Name Size _________________________ __________"free memory " 19409776 19M Memory Utilization of Subpool 4================================ Allocation Name Size _________________________ __________"free memory " 19172224 19Memory Utilization of Subpool 5================================ Allocation Name Size _________________________ __________"free memory " 18623928 18MMemory Utilization of Subpool 6================================ Allocation Name Size _________________________ __________"free memory " 18026416 18MMemory Utilization of Subpool 7================================ Allocation Name Size _________________________ __________"free memory " 12162296 12M 从dump文件可以看出除了Subpool 2总空闲空间比较多,其他的进程的可用内存都非常少。从这些迹象可以看出来确实是shared_pool不够。查看awr和前一天的对比图:相比前一天总free memory下降到只有200多M,对应的gcs resources,gcs shadows却占用了5G多空间,gcs resources和gcs shadow资源均是Oracle RAC中特有的全局缓存服务资源,这些资源负责处理RAC中的全局buffer cache。然后查询shared_pool当前的剩余内存:只有16M了,也就是昨天发生ora 04031并不是偶然。在metalink搜索gcs resource:Gcs 这两位兄弟会导致ora 04031错误:那么如何评估gcs的大小?从上图红线可以看出他的大小依赖于db buffer的大小。当实例高速缓存buffer cache增加的时候,gcs资源所占用的空间也相应增长,具体算法如下:
Example with Linux x86-64 / 10.2.0.4o v$resource_limit Resource Name Current Max Initial Limit -------------- ------- ------- ------- -------gcs_resources 585758 1110251 1113203 1113203 gcs_shadows 909888 1111054 1113203 1113203 o Initial shared memory in theory, gcs resources = 1113203 * 120(+alpha) bytes = 133,584,360 (+alpha) bytes gcs shadows = 1113203 * 72(+alpha) bytes = 80,150,616 (+alpha) byteso Actual size in shared pool gcs resources = 185,766,864 bytesgcs shadows = 107,993,760 bytesPractically, a little bigger memory is used because gcs resources/shadows structure sizes are different depending on Oracle versions and platforms.以上是metalink给的例子:也就是加大shared_pool。Oracle spool格式化数据使用DB2数据库利用备份实现异机还原实例分析相关资讯 ORA-04031
- 在 11.2.0.4 运行 utlrp.sql 出现 (11/23/2015 20:28:05)
- RMAN连接辅助数据库ORA-04031的解 (03/18/2015 20:04:07)
- Parallel Query 导致的ORA-04031 (12/14/2014 16:43:59)
| - ORA-12853和ORA-04031 large pool (04/04/2015 19:42:17)
- Oracle 11g报ORA-04031错误的解决 (01/28/2015 19:08:57)
- 数据库用户不能登录 alert日志报 (06/14/2014 21:04:25)
|
本文评论 查看全部评论 (0)