排查并解决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 数据仓库ETL技术之多表插入语句的示例详解
Apr 12 Oracle
Oracle 区块链表创建过程详解
May 15 Oracle
DBCA命令行搭建Oracle ADG的流程
Jun 11 Oracle
Oracle 触发器trigger使用案例
Feb 24 Oracle
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 Oracle
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
排查并解决Oracle sysaux表空间异常增长
Apr 20 Oracle
分析SQL窗口函数之聚合窗口函数
Apr 21 Oracle
instantclient客户端 连接oracle数据库
Apr 26 Oracle
Oracle锁表解决方法的详细记录
Jun 05 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 Oracle
oracle delete误删除表数据后如何恢复
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
页面乱码问题的根源及其分析
2013/08/09 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
PHP类的特性实例分析
2016/09/28 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python中使用%与.format格式化文本方法解析
2017/12/27 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python能开发游戏吗
2020/06/11 Python
python实现自动清理重复文件
2020/08/24 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
小学生考试获奖感言
2014/01/30 职场文书
2014信息公开实施方案
2014/02/22 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
大学新生入学教育方案
2014/05/16 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
十八大观后感
2015/06/12 职场文书
值班管理制度范本
2015/08/06 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书