排查并解决Oracle sysaux表空间异常增长


Posted in Oracle onApril 20, 2022

发现问题

某一业务系统数据库,sysaux表空间大小达到24GB+

排查并解决Oracle sysaux表空间异常增长

查询sysaux表空间中对象的大小,超过1GB的列出,发现ASH相关的表过大。

SEGMENT_NAME                   OWNER                SEGMENT_TYPE           MB                                                                                                       
------------------------------ -------------------- ------------------ ------                                                                                                       
WRH$_ACTIVE_SESSION_HISTORY    SYS                  TABLE PARTITION      7151                                                                                                       
WRH$_EVENT_HISTOGRAM_PK        SYS                  INDEX PARTITION      1856                                                                                                       
WRH$_EVENT_HISTOGRAM           SYS                  TABLE PARTITION      1777                                                                                                       
WRH$_LATCH                     SYS                  TABLE PARTITION      1657                                                                                                       
WRH$_SQLSTAT                   SYS                  TABLE PARTITION      1344

查看快照在数据库中的保留时长

排查并解决Oracle sysaux表空间异常增长

可以看到,AWR设定的保留时间为8天,WRH$_ACTIVE_SESSION_HISTORY确保留了2140天的数据,需清理。

查看AWR快照未清理原因

排查并解决Oracle sysaux表空间异常增长

WRH$_ACTIVE_SESSION_HISTORY由于分区失败,导致所有数据均在同一个表空间,所以删除过期快照失败。

问题原因分析:

Oracle根据保留策略决定需要清除哪些行。在大型AWR表的情况下使用了一种特殊的机制,我们将快照数据存储在分区中。从这些表中清除数据的一种方法是删除只包含超过保留条件的行的分区。在夜间清除任务中,只有当分区中的所有数据都已过期时,我们才会删除该分区。如果该分区至少包含一行,根据保留策略,该行不应被删除,那么该分区将不会被删除,因此该表将包含旧数据。

如果没有发生分区拆分(无论出于何种原因),那么我们最终可能会遇到这样的情况:我们必须等待最新的条目过期,然后才能删除它们所在的分区。这可能意味着,一些较旧的条目可以在有效期过后显著保留。其结果是数据未按预期清除。

处理方法:

根据MOS:WRH$_ACTIVE_SESSION_HISTORY Does Not Get Purged Based Upon the Retention Policy (Doc ID 387914.1)处理步骤

1.Check the partition details for the offending table before the split:

SELECT owner,
  segment_name,
  partition_name,
  segment_type,
  bytes/1024/1024/1024 Size_GB
FROM dba_segments
WHERE segment_name='WRH$_ACTIVE_SESSION_HISTORY';

2.Split the partitions so that there is more chance of the smaller partition being purged:

alter session set "_swrf_test_action" = 72;

NOTE: This command will split partitions for ALL partitioned AWR objects. It also initiates a single split; it does not need to be disabled and will need to be repeated if multiple splits are required.

3.Check the partition details for the offending table after the split:

SELECT owner,
  segment_name,
  partition_name,
  segment_type,
  bytes/1024/1024/1024 Size_GB
FROM dba_segments
WHERE segment_name='WRH$_ACTIVE_SESSION_HISTORY';

以上步骤执行完成后,再truncate原来的分区,只保留新分区,释放空间

ALTER TABLE WRH$_ACTIVE_SESSION_HISTORY TRUNCATE PARTITION WRH$_ACTIVE_xxxxx;

检查索引是否正常

select index_name,partition_name,status from dba_ind_partitions where index_name='WRH$_ACTIVE_SESSION_HISTORY_PK';

总结

到此这篇关于Oracle sysaux表空间异常增长解决的文章就介绍到这了!

Oracle 相关文章推荐
oracle通过存储过程上传list保存功能
May 12 Oracle
Oracle 区块链表创建过程详解
May 15 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
Oracle 死锁的检测查询及处理
Sep 25 Oracle
oracle索引总结
Sep 25 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
Oracle数据库中通用的函数实例详解
Mar 25 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
清空 Oracle 安装记录并重新安装
Apr 26 Oracle
Oracle删除归档日志及添加定时任务
Jun 28 Oracle
oracle设置密码复杂度及设置超时退出的功能
Jun 28 Oracle
Oracle使用别名的好处
Oracle 多表查询基本语法实例
Apr 18 #Oracle
Lakehouse数据湖并发控制陷阱分析
Oracle数据库中通用的函数实例详解
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 #Oracle
oracle删除超过N天数据脚本的方法
Feb 28 #Oracle
oracle重置序列从0开始递增1
Feb 28 #Oracle
You might like
PHP memcache扩展的三种安装方法
2009/04/26 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
Javascript MD4
2006/12/20 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
python绘图模块之利用turtle画图
2021/02/12 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
顶岗实习接收函
2014/01/09 职场文书
校园达人秀策划书
2014/01/12 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
经典英文广告词
2014/03/18 职场文书
行政司机岗位职责
2015/04/10 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL