要延长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自动审核代码
相关推荐
小趴蔡ha18 小时前
02 Anaconda、Python 与机器学习开发环境入门2401_8685347818 小时前
RTOS之RT-Thread & Linux:线程/进程管理与调度核心差异分析神王宝宝 王者小学18 小时前
HBase: 看上去很美io无心18 小时前
Shardingsphere5分库分表数字化转型分享点滴19 小时前
富士康、蓝思科技为何选择四化信息?MES制造执行系统的实践wling030119 小时前
vasp虚频计算-python脚本魔镜前的帅比19 小时前
(开源项目)x-claw(总)wWYy.19 小时前
Mysql:主键索引 唯一索引 普通索引 前缀索引宝杰X719 小时前
Android Room3 多平台数据库xrandzj20 小时前
Python面向对象编程入门:类、实例、初始化与封装实践