如何修改AWR保留时间_将默认8天保留期延长至30天的设置

要延长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 分钟前
JVM学习文档
jvm·学习
小小张说故事5 分钟前
Python 的 int 为什么不会溢出?拆开 PyLongObject 和它背后那串变长数组
python
潇湘秦10 分钟前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
晴天¥14 分钟前
记一次Oracle 归档进程卡死怎么去有效排查
数据库·oracle
小手cool22 分钟前
PostgreSQL 基础入门:从安装到核心概念
数据库·postgresql
Bushlet24 分钟前
Mysql建库及建表流程总结
数据库·mysql
威哥爱编程39 分钟前
Python 智能体开发实战 03:聊十轮就“失忆”,账单还翻倍?管好上下文,Token 立省一半
python·agent
情 九39 分钟前
MCP 开发环境搭建:Mac 与 Windows 跑通 Python 服务和 stdio 客户端
windows·python·macos·mcp
梦幻通灵40 分钟前
MybatisPlus使用数据库递增ID实现方案【持续更新】
数据库·oracle