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上的字母、数字等。
相关推荐
2401_8504916511 分钟前
c++如何通过文件映射mmap在多进程间实现高性能数据共享【进阶】iuvtsrt11 分钟前
PHP 中高效查找 CSV 行并获取前后指定偏移行的数据m0_4636722011 分钟前
MySQL从库出现大量锁等待怎么办_分析从库执行计划与锁日志2301_8092047014 分钟前
为 Go 语言 WaitGroup.Wait() 添加超时机制的实用方案是桃萌萌鸭~37 分钟前
oracle的隐藏虚拟列详解2301_7796224139 分钟前
SQL分组聚合优化_GROUP BY索引与优化方案m0_7407963644 分钟前
golang如何使用sync.WaitGroup_golang sync.WaitGroup并发等待使用方法DianSan_ERP1 小时前
抖店订单接口同步中如何解决订单漏单与数据一致性难题?2401_824222691 小时前
c++如何通过重定向rdbuf来捕获第三方库的日志输出到文件【详解】2401_867623981 小时前
CSS如何解决响应式文字大小调整_利用clamp函数实现流体排版