在 Oracle 数据库中,当 Job 的 BROKEN 状态为 Y 时,意味着该定时任务已被标记为“损坏”或“禁用”,系统将不再自动调度执行它。
这就像给这个任务按下了“暂停键”,它会被移出自动执行的队列,直到有人手动干预。
1. 🤔 为什么 Job 会变成 BROKEN=Y?
最常见的原因是连续执行失败。Oracle 有一种自我保护机制:
- 当一个 Job 执行出错时,Oracle 不会立即放弃,而是会尝试重新执行。
- 它会进行多次重试(通常是 16 次),并且每次重试的间隔会越来越长。
- 如果连续失败了 16 次,Oracle 就会判定这个 Job 有严重问题,自动将其
BROKEN状态设置为Y,以防止它继续无谓地消耗系统资源。
原创2026/4/15大约 3 分钟