数据库用户不能登录 alert日志报ORA-04031故障分析处理

php中文网
发布: 2016-06-07 16:48:52
原创
2016人浏览过

数据库用户不能登录 alert日志报ORA-04031故障分析处理

现象:
1、在数据库主机sqlplus  / as sysdba都进不去。
 
2、alert日志中报错如下:
 errors in file /oracle/admin/dbrac/bdump/dbrac2_q000_1329.trc:
 ora-22303: type "sys"."aq$_history" not found
 ora-00604: error occurred at recursive sql level 1
 ora-04031: unable to allocate 32 bytes of shared memory ("shared pool","select user#,type# from user...","sql area","tmp")
 
原因如下:
 1、由于不能在share pool中分配内存导致不能登录
 2、导致share pool不能分配内存的原因是数据库大量使用常量sql(未使用绑定变量sql)硬解析导致。
 
此时数据库sqlplus / as sysdba都进不去,怎么办?
 
解决办法:
 1、基于快速恢复数据库原则,,首先将pmon进程予以kill,重新拉起数据库
 
2、目前为减少该故障发生的概率,方法如下:
 在自动计划中加入自动刷数据库share pool计划,每天晚上1点刷一次,该操作对业务影响可以忽略,刷share pool的sql如下:
 alter system flush shared_pool;
 
 3、为了彻底解决该问题,需应用方将常量sql(未使用绑定变量sql)全部修改成使用绑定变量sql。

--------------------------------------分割线 --------------------------------------

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Linfo.ai
Linfo.ai

Linfo AI 是一款AI驱动的 Chrome 扩展程序,可以将网页文章、行业报告、YouTube 视频和 PDF 文档转换为结构化摘要。

Linfo.ai 151
查看详情 Linfo.ai

--------------------------------------分割线 --------------------------------------

本文永久更新链接地址:

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号