要延长AWR保留时间至30天,必须用DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS设置retention=43200(分钟),该操作直接更新dba_hist_wr_control表,立即生效,且SYSAUX需预留至少2GB空闲空间。修改AWR保留时间要用DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGSoracle默认awr快照保留8天,想延长到30天,核心就是调这个包------不是改参数文件,也不是动表结构,更不是删旧快照手动腾空间。它直接更新wrm_wr_control里的配置,下次自动清理就按新规则走。常见错误是先查DBA_HIST_SNAPSHOT看最近快照时间,再手动DELETE老数据,结果下次MMON一跑,又清掉一批,或者干脆报ORA-13516:AWR purge failed。因为底层清理逻辑只认控制表的设置,不认你手删了多少行。必须用SYS或有ADMINISTER DATABASE TRIGGER权限的用户执行retention单位是分钟,30天得填30\*24\*60 = 43200interval(采集频率)可以不动,保持默认60分钟;改它会影响性能数据粒度,但和保留时间无关执行后立即生效,不需要重启实例,也不需要刷新任何缓存检查当前设置别只看DBA_HIST_SNAPSHOT最大END_INTERVAL_TIME很多人用SELECT MAX(END_INTERVAL_TIME) - MIN(END_INTERVAL_TIME) FROM DBA_HIST_SNAPSHOT估算"实际保留了几天",这完全误导。这张表只是快照内容视图,受自动清理、手工删除、甚至DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE影响,不能反推保留策略。真正权威的来源只有两个:SELECT retention, interval FROM dba_hist_wr_control ------ 这是MODIFY_SNAPSHOT_SETTINGS写入的位置,唯一可信SELECT \* FROM vsysstat WHERE name = 'AWR snapshot interval'(辅助验证采集是否正常)如果dba_hist_wr_control里retention还是11520(即8天),说明MODIFY_SNAPSHOT_SETTINGS根本没成功执行,或者被回滚了。ORA-13505:修改失败最常见的原因是SYSAUX表空间不足延长保留期不光是改个数字,AWR要存更多历史快照数据,SYSAUX会持续增长。如果执行MODIFY_SNAPSHOT_SETTINGS时抛ORA-13505: Cannot modify AWR settings due to lack of space in SYSAUX tablespace,别硬 retry,先看空间。 AI Code Reviewer AI自动审核代码
相关推荐
两点王爷3 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解两点王爷3 小时前
PostgreSQL 好用又独特的特性与空间函数梦帮科技3 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律麻雀飞吧3 小时前
先判断工具用来学习、开发还是执行人邮异步社区4 小时前
学习Python的最佳学习路径是什么?TDengine (老段)5 小时前
TDengine 常见问题 TOP3troy1286 小时前
Python 基础语法(九):Django/Flask/FastAPI 三大 Web 框架详细对比解析jzshmyt6 小时前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)螺蛳粉 螺蛳粉8 小时前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?用户8356290780518 小时前
使用 Python 将 DOCX 转换为 Markdown