排查并解决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表分区的概念及操作
Apr 24 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 Oracle
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
Oracle使用别名的好处
Apr 19 Oracle
分析SQL窗口函数之聚合窗口函数
Apr 21 Oracle
分析SQL窗口函数之取值窗口函数
Apr 21 Oracle
清空 Oracle 安装记录并重新安装
Apr 26 Oracle
oracle数据库去除重复数据
May 20 Oracle
Oracle中日期的使用方法实例
Jul 07 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php查询内存信息操作示例
2019/05/09 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
javascript Event对象详解及使用示例
2013/11/22 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
canvas的神奇用法
2017/02/03 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python代码实现KNN算法
2017/12/20 Python
Python应用库大全总结
2018/05/30 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python中的asyncio代码详解
2019/06/10 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
大学生实习证明范本
2014/01/15 职场文书
临床医师个人自我评价
2014/04/06 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
升职演讲稿范文
2014/05/23 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
化验室安全管理制度
2015/08/06 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis