(ORA-04031)-Oracle内存过少导致分配共享内存失败
现象描述
Oracle分配共享内存失败,Alert日志显示如下错误信息。
说明:
Errors in file /oracle/db/diag/rdbms/ora01/ora01/trace/ora01_reco_233670.trc: ORA-00604: error occurred at recursive SQL level 1 ORA-04031: unable to allocate 4064 bytes of shared memory ("shared pool","select local_tran_id, global...","sga heap(1,0)","kglsim heap") Sat Jan 15 09:53:11 2011 DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6) Further messages for this problem key will be suppressed for up to 10 minutes Sat Jan 15 10:03:11 2011 DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6) Further messages for this problem key will be suppressed for up to 10 minutes Sat Jan 15 10:13:11 2011 DDE: Problem Key 'ORA 4031' was completely flood controlled (0x4) Further messages for this problem key will be suppressed for up to 10 minutes复制

Alert日志文件目录为“/$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert__<ORACLE_SID>.log”。
定位思路
检查Oracle内存控制参数配置。
SQL>show parameter memory
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 1000M memory_target big integer 1000M shared_memory_address integer 0如上所示,Oracle数据库内存配置值过少,只有1GB。复制
处理步骤
- 以oracle用户登录数据库所在机器。
- 以SYSDBA用户连接数据库。
% sqlplus / as sysdba
- 修改“memory_max_target”的值。
请根据实际情况修改。
SQL> alter system set memory_max_target=2147483648scope=spfile;
如上所示,将“memory_max_target”值修改为2GB。
- 修改“memory_target”的值。
SQL> alter system set memory_target=1610612736scope=spfile;
- 重新启动数据库。
SQL> shutdown immediate
SQL> startup
- 检查数据库运行状态。
SQL> select status from v$instance;
系统显示如下信息:STATUS ------------ OPEN
复制SQL> select open_mode from v$database;
数据库运行正常,系统显示如下信息:OPEN_MODE ---------- READ WRITE
复制 - 检查数据库内存控制参数配置。
SQL>show parameter memory
修改成功,系统显示如下信息:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 2048M memory_target big integer 1536M shared_memory_address integer 0
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
547次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
467次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
446次阅读
2025-04-01 11:08:44
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
445次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
442次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
438次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
413次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
410次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
393次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
356次阅读
2025-04-17 17:02:24