如何重建AWR存储库_清理损坏的AWR数据并重新初始化字典表

AWR快照无法生成时,应优先排查SYSAUX空间、快照表误删或元数据不一致等问题,仅当WRM等核心字典表损坏且无法修复时才重建;须确保ARCHIVELOG模式、VALID组件状态,并严格使用awr_install.sql重建,避免灾难性操作。ORA-13502 或 AWR快照无法生成:先确认是否真要重建重建 awr 存储库不是常规维护操作,而是最后手段。多数"awr 不工作"问题其实出在 sysaux 表空间满、dba_hist_snapshot 被误删、或 awr_flush_table 执行失败导致元数据不一致------这些都不需要重建。只有当 dbms_workload_repository 相关字典表(如 wrm_snapshot、wrm_database_instance)损坏且 oracle_home/rdbms/admin/awrrpt.sql 运行报 ora-600 / ora-13541 且无法通过 dbms_workload_repository.break_snapshot_range 修复时,才考虑重建。检查 VDATABASE 的 LOG_MODE 和 OPEN_MODE:必须为 ARCHIVELOG + READ WRITE,否则 awrload 或重建脚本会静默失败确认 DBA_REGISTRY 中 COMP_NAME = 'Oracle Database Packages and Types' 状态为 VALID;若为 INVALID,重建前必须先运行 utlrp.sql不要在 RAC 环境中单独重建某节点的 AWR ------ 所有实例共享同一套 WR* 表,必须停全部实例后统一操作用 awr_remove.sql 清理旧数据比 drop tablespace 更安全很多人看到 SYSAUX 满就直接 DROP TABLESPACE SYSAUX INCLUDING CONTENTS AND DATAFILES,这是灾难性操作。SYSAUX 不只存 AWR,还承载 Oracle Text、Spatial、Data Pump 元数据等,删掉等于毁库。真正该做的是用 Oracle 官方清理脚本。以 sys 用户执行:@?/rdbms/admin/awr_remove.sql,它会调用 DBMS_WORKLOAD_REPOSITORY.REMOVE_SNAPSHOT_RANGE 安全删除指定时间范围的快照,同时清理关联的 WRH 历史表分区若脚本报错 ORA-13516("snapshot range overlaps with current retention"),说明当前 AWR 保留策略(DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 设置的 retention)比你要删的时间还长,需先缩短保留期再重试清理后务必执行 EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SYS', cascade =\> TRUE),否则后续 awrrpt.sql 可能因统计信息陈旧而慢到超时重建 AWR 字典表:只跑 awr_install.sql,别碰 catnoawr.sql重建本质是重新创建 WRM、WRH、WRI 开头的基表和视图,但必须严格按 Oracle 内部依赖顺序。官方唯一支持方式是重跑 awr_install.sql,而非手动建表或执行 catnoawr.sql(后者是卸载脚本,执行即清空所有 AWR 对象且不可逆)。路径必须准确:@?/rdbms/admin/awr_install.sql,注意是 rdbms 不是 rdbms/admin 下的子目录;如果 ORACLE_HOME 设错,脚本会静默创建空表,后续插入快照时报 ORA-942脚本会自动设置默认保留期为 8 天、采集间隔为 60 分钟;若需自定义,必须在脚本执行**完成且数据库重启后**,立即用 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 调整,不能在脚本中途改参数执行完后检查 SELECT COUNT(*) FROM WRM_DATABASE_INSTANCE,结果应 ≥1;若为 0,说明 DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT 尚未触发首次采集,需手动执行一次或等下一个采集周期重建后第一个快照总失败?检查 WRH_ACTIVE_SESSION_HISTORY 分区常见现象:重建后 DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT 报 ORA-14400("inserted partition key does not map to any partition"),或 awrrpt.sql 输出 "no data found"。根本原因是 WRH$_ACTIVE_SESSION_HISTORY 表的分区策略没同步更新,仍指向旧的高水位时间。 Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台,擅长于生成带有文本的图像,如LOGO上的字母、数字等。

相关推荐
DLYSB_2 小时前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
阿童木写作2 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
阿童木写作3 小时前
Python实现Temu图片批量翻译自动化教程
运维·人工智能·python·自动化
就是一只白5 小时前
复制地理信息python版本
python
凌虚5 小时前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
看浪的路人5 小时前
第1讲:Agent 到底是什么?和 Chatbot 有什么区别
python·ai
五阿哥永琪5 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善5 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
瓦学妹6 小时前
什么是网络索引?它是如何工作的?
大数据·网络·python·网络爬虫
天天爱吃肉82186 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车