Oracle AWR快照保留策略及其修改

Oracle AWR快照保留策略及其修改

文章目录

一、AWR快照保留机制及其修改方法二、生产环境建议三、监控建议

一、AWR快照保留机制及其修改方法

默认保留策略: • 标准保留期:8天 • 快照间隔:每小时1次(默认) • 存储位置:SYSAUX表空间

保留时间配置:

-- 查看当前设置

SELECT retention FROM dba_hist_wr_control;

-- 修改保留时间(单位:分钟)

BEGIN

DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(

retention => 43200, -- 保留时间(分钟,43200=30天 (30 * 24 * 60))

interval => 60 -- 快照间隔(分钟)

);

END;

/

-- 查看修改后的当前设置

SELECT retention FROM dba_hist_wr_control;

关键限制: • 最小保留期:1天 • 最大保留期:理论上无上限(受SYSAUX空间限制) • 空间占用:每个快照约5-50MB(取决于DB活跃度)

自动清理机制: • 通过MMON进程自动清理过期快照 • 空间不足时会触发紧急清理(可能丢失未过期快照)

二、生产环境建议

常规OLTP系统: • 保留7-15天(满足多数性能分析需求) • 间隔30-60分钟

关键业务系统: • 保留30天+每日基线(DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE) • 高峰期间隔缩至15分钟

基线创建方法:

-- 快照ID存在性检查(检查要创建基线的起始和结束快照ID是否存在)

SELECT SNAP_ID, SNAP_TIME FROM DBA_HIST_SNAPSHOT ORDER BY SNAP_ID DESC;

-- 基线唯一性检查,确保 baseline_name 不与现有基线重复

SELECT BASELINE_NAME FROM DBA_HIST_BASELINE;

-- 创建基线

BEGIN

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(

start_snap_id => 270, -- 起始快照ID(需替换为实际值)

end_snap_id => 280, -- 结束快照ID(需替换为实际值)

baseline_name => 'peak_baseline', -- 基线名称(需用单引号)

dbid => NULL -- 可选,默认当前数据库ID

);

END;

/

-- 删除基线

BEGIN

DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(

baseline_name => 'peak_baseline',

cascade => FALSE -- 仅删除基线,保留快照

);

END;

/

空间不足处理:

-- 手动清理历史快照(不建议执行)

EXEC dbms_workload_repository.drop_snapshot_range(

low_snap_id => 100,

high_snap_id => 200);

三、监控建议

检查空间使用:

SELECT * FROM dba_hist_snapshot ORDER BY snap_id DESC;

空间预警阈值:

SELECT occupant_name, space_usage_kbytes

FROM v$sysaux_occupants

WHERE occupant_name='SM/AWR';

相关推荐

sandboxie删除沙盘的方法
mobile365体育投注下载

sandboxie删除沙盘的方法

📅 07-26 👁️ 3978
《史记》:楚汉之争,刘邦为什么能赢项羽?
365彩票官网app下载安装

《史记》:楚汉之争,刘邦为什么能赢项羽?

📅 06-29 👁️ 9667