DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- --------------------------------------- --------------------------------------- ----------
1778314713 +00000 00:10:00.0 +00008 00:00:00.0 DEFAULT
经过一段时间,可以看到数据变化。
SQL> select snap_id, to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24:mi:ss') from dba_hist_snapshot;
SNAP_ID TO_CHAR(BEGIN_INTERVAL_TIME,'Y
---------- ------------------------------
23384 2015-09-30 16:07:51
SQL> select snap_id, to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24:mi:ss') from dba_hist_snapshot;
SNAP_ID TO_CHAR(BEGIN_INTERVAL_TIME,'Y
---------- ------------------------------
23384 2015-09-30 16:07:51
23385 2015-09-30 16:39:32
SQL> select snap_id, to_char(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24:mi:ss') from dba_hist_snapshot;
SNAP_ID TO_CHAR(BEGIN_INTERVAL_TIME,'Y
---------- ------------------------------
23384 2015-09-30 16:07:51
23385 2015-09-30 16:39:32
23386 2015-09-30 16:50:17
恢复60分钟收集。
SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>60);
PL/SQL procedure successfully completed
问题解决。
5、结论
经过这个案例,笔者的感受有两条。首先,定期检查alert log,检查系统性能数据情况是非常重要的运维手段。要么依靠自动监控工具,要么依靠运维人员的日常工作。所谓“养病如养虎,虎大必伤人”在运维领域同样存在。其次就是“有可为,有可不为”,发现问题时候,要根据情形进行分析,找到技术、管理、业务的平衡点。