要延长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自动审核代码
相关推荐
银河系的一束光2 小时前
MySQL遇到的问题qq_654366982 小时前
如何在 macOS 上为 PHP 8.0 正确集成 XML-RPC 支持大江东去浪淘尽千古风流人物2 小时前
【UV-SLAM 】彻底吃透UV-SLAM:创新原理、工程实现与直线几何核心代码详解2301_773553622 小时前
Bootstrap 4.5 实现多级下拉菜单并行展开(不自动关闭其他已开菜单)Greyson12 小时前
MySQL怎样在触发器中引用新旧数据行_NEW与OLD关键字详解小糖学代码2 小时前
LLM系列:2.pytorch入门:6.单层神经网络Irene19912 小时前
Python 面向对象总结:对比 JavaScript 的面向对象思绪无限2 小时前
YOLOv5至YOLOv12升级:无人机目标检测系统的设计与实现(完整代码+界面+数据集项目)m0_743623922 小时前
Vue 3 中集成 Three.js 场景的完整实现指南