【问题标题】:Broken jobs, triggers or packages alert损坏的作业、触发器或包警报
【发布时间】:2015-05-11 08:44:38
【问题描述】:

有时,一年一次或两次,我会在我的 oracle 数据库中发现损坏的作业、触发器或程序包,修复它不是问题,但它引起的头痛每损坏一分钟就会成倍增长。

我的问题很简单,是否有一种方法可以在每次作业、触发器或包警报被破坏时发出警报?

从电子邮件(最佳解决方案)到写在表格中的一些数据。

提前致谢

【问题讨论】:

  • 中断的工作与无效的触发器或程序包之间存在很大差异。触发器和包在首次运行时会自动重新编译,因此(假设它们编译没有错误)您不必担心它们。
  • 它运行了几个月都没有问题,直到有一天我需要手动去那里重新编译,没有任何明显的原因。
  • 你认为为什么需要重新编译它们?
  • 因为在 Toad 中顶部显示一个红色叉号,并且包、触发器、作业在我重新编译之前不起作用。重新编译后一切正常。附言。下线的工作有点不同。
  • 红色标记只是表示它被标记为无效,这本身并不一定需要您重新编译。

标签: sql oracle triggers packages jobs


【解决方案1】:

在某种程度上取决于您所说的“损坏”的确切含义,但如果您的意思是代码已失效:

SELECT object_type, object_name FROM user_objects WHERE status = 'INVALID'

如果您有权访问它并希望一次检查所有架构,请使用dba_objects

【讨论】:

  • 感谢@Dave Costa 的工作,我添加了一个批处理文件,一旦它发生就发送一封电子邮件,现在我可以放松了。附言。我所说的损坏是指一些工作会无缘无故地离线,一些触发器和包也需要重新编译,也没有明显的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
相关资源
最近更新 更多