热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Ora-04031问题诊断思路

我们看到INDX5,DBMS_LOB造成换页(就是做exp涉及到lob对象处理造成的换页情况),换出最近未使用的内存,但是换出内存并合并碎片后在

我们看到INDX=5,DBMS_LOB造成换页(就是做exp涉及到lob对象处理造成的换页情况),换出最近未使用的内存,但是换出内存并合并碎片后在

--一、错误提示:
> EXP-00008: Oracle error 4031 encountered
> ORA-04031: unable to allocate 4096 bytes of shared memory
("shared pool","BEGIN :EXEC_STR := SYS.DBMS...","PL/SQL MPCODE","BAMIMA: Bam Buffe
--二、错误原因:
-- 共享内存太小,,存在一定碎片,没有有效的利用保留区,造成无法分配合适的共享区。
--三、解决步骤:
--1.查看当前环境
SQL> show sga Total System Global Area 566812832 bytes
Fixed Size 73888 bytes Variable Size 28811264 bytes
Database Buffers 536870912 bytes Redo Buffers 1056768 bytes
show parameter shared_pool
NAME TYPE VALUE : shared_pool_reserved_size string 1048576
shared_pool_size string 20971520
SQL> select sum(free_space) from v$shared_pool_reserved;
SUM(FREE_SPACE) : 1048576
--我们可以看到没有合理利用保留区
--2.查看保留区使用情况
SQL> SELECT FREE_SPACE,FREE_COUNT,REQUEST_FAILURES,REQUEST_MISSES, LAST_FAILURE_SIZE
FROM V$SHARED_POOL_RESERVED;
FREE_SPACE FREE_COUNT REQUEST_FAILURES REQUEST_MISSES LAST_FAILURE_SIZE
---------- ---------- ---------------- -------------- -----------------
1048576 1 146 0 4132
-- 最近一次申请共享区失败时该对象需要的共享区大小4132
select name from v$db_object_cache where sharable_mem = 4132;
name :dbms_lob


--3.分析各共享池的使用情况
SQL> select KSPPINM,KSPPSTVL from x$ksppi,x$ksppcv
where x$ksppi.indx = x$ksppcv.indx and KSPPINM = '_shared_pool_reserved_min_alloc';
KSPPINM KSPPSTVL
------------------------------- --------
_shared_pool_reserved_min_alloc 4400 --(门值)
-- 我们看到INDX=5,DBMS_LOB造成换页(就是做exp涉及到lob对象处理造成的换页情况),换出最近未使用的内存,但是换出内存并合并碎片后在共享区仍然没有合适区来存放数据,说明共享区小和碎片过多,然后根据_shared_pool_reserved_min_alloc的门值来申请保留区,而门值为4400,所以不符合申请保留区的条件,造成4031错误。我们前面看到保留区全部为空闲状态,所以我们可以减低门值,使更多申请共享内存比4400小的的对象能申请到保留区,而不造成4031错误。


--4.解决办法:
--1).增大shared_pool (在不DOWN机的情况下不合适)
--2).打patch (在不DOWN机的情况下不合适)
--3).减小门值 (在不DOWN机的情况下不合适)
-- 因为LAST_FAILURE_SIZE<_shared_pool_reserved_min_alloc所以表明没有有效的使用保留区
SQL> alter system set "_shared_pool_reserved_min_alloc" = 4000;
alter system set "_shared_pool_reserved_min_alloc"=4000
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
-- 9i的使用方法alter system set shared_pool_reserved_min_alloc"=4000 scope=spfile;
--4).使用alter system flush shared_pool; (不能根本性的解决问题)
-- 5).使用dbms_shared_pool.keep


推荐阅读
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 利用Git GUI将本地项目同步至GitHub的方法
    GitHub作为开发者不可或缺的工具,不仅提供了丰富的开源项目资源,还极大地便利了个人项目的管理和版本控制。本文将详细介绍如何使用Git GUI工具将本地开发的项目上传至GitHub。 ... [详细]
  • 本文提供了一个SQL脚本,用于在Microsoft SQL Server中创建一个数据字典视图,该视图详细列出了表名、表描述、字段名称、字段描述、字段类型、字段大小、字段精度、是否可为空、默认值以及是否为标识或主键等信息。 ... [详细]
  • MyBatis入门指南:环境搭建与基础配置详解
    本文详细介绍了MyBatis的基础配置流程,包括在Maven项目中添加MyBatis依赖、IDEA中配置数据库连接、导入SQL脚本以及编写mybatis-config.xml配置文件等关键步骤。 ... [详细]
  • 本文基于最新版SQLite 3.33.0(发布于2020年8月20日),详细介绍如何使用ORDER BY语句进行数据排序,包括单列和多列排序的方法。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 本文通过一系列实验,探讨了Oracle 11g数据库中密码错误验证延迟特性对用户登录速度的影响。实验旨在验证当某个用户因输入错误密码而触发延迟时,是否会影响其他用户的正常登录速度。 ... [详细]
  • SQL查询与事务管理:深入解析
    本文详细介绍了SQL查询的基本结构和高级特性,包括选择、分组查询以及权限控制等内容,并探讨了事务管理中的并发控制策略,旨在为数据库管理员和开发人员提供实用指导。 ... [详细]
  • PHP 图形函数中实现汉字显示的方法
    本文详细介绍了如何在 PHP 的图形函数中正确显示汉字,包括具体的步骤和注意事项,适合初学者和有一定基础的开发者阅读。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
author-avatar
兜兜岁月真伟大
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有