背景:
我正在尝试监视备份在多个数据库上按预期运行。Zenoss 用于监控大多数其他东西。
已经使用 Zenoss 结合在数据库主机上运行 sqlplus 的脚本监控了几个 KPI。
到目前为止我发现了什么:
数据库中的视图:
- V$RMAN_STATUS
- V$RMAN_BACKUP_JOB_DETAILS;
- V$RMAN_BACKUP_SUBJOB_DETAILS;
止损解决方案:
从 Enterprise Manager 发送警报:
- 设置 > 监控模板 > 创建 > 目标:一些数据库> 指标阈值 > 失败的作业计数
或者
- 首选项>规则>创建>选项卡“常规”-目标类型:数据库实例,选项卡“作业”-特定作业>添加特定作业:选择作业和作业状态:“问题”
我想知道的:
- 这看起来是否合理,或者是否有另一种首选方法可以将 Oracle 监控集成到第三方 nms 中?(在当前设置中,轮询优先于陷阱。)
- 需要注意的陷阱。
- 我提到的数据库视图和我在 EM 备份历史中看到的似乎存在显着差异。我应该在哪里查找过去备份的状态?
我自己可能已经找到了几个答案。将它们张贴在这里以防其他人需要知道:
在https://forums.oracle.com/上搜索论坛我发现了这个线程:https://forums.oracle.com/forums/thread.jspa?messageID=9956411,它引用了http://www.morganslibrary.org /reference/dba_best_practices.html。这是提到的代码:
SELECT start_time, end_time, input_type, input_type, status FROM v$rman_backup_job_details ORDER BY 1;
和
SELECT vbd.file#, vrbjd.start_time, vrbjd.end_time, vbd.incremental_level, vrbjd.input_type, vrbjd.status FROM v$rman_backup_job_details vrbjd, v$backup_datafile vbd WHERE vbd.completion_time BETWEEN vrbjd.start_time AND vrbjd.end_time AND vrbjd.input_type <> 'ARCHIVELOG' ORDER BY 2,1;
至于为什么企业管理器中的查询会选择较旧的工作,我从工作人员那里学到了一个很好的技巧:您可以从视图 v$sqlarea 中读取最近的查询。select sql_text from v$sqlarea order by last_active_time desc之类的东西应该可以解决问题。
使用调度程序中的作业状态根本不可靠,备份调度通常会出现问题,因此还要注意备份根本没有启动,这一点很重要。为此,您可以在github上找到一个 zabbix Oracle 模块,该模块基于 v$rman_status 进行备份监控。Zabbix 在这种监控方面做得非常好。