Quartz正在轰炸Oracle的归档日志

发布于 2024-12-11 20:40:07 字数 408 浏览 1 评论 0原文

我正在使用 Quartz 和 JDBC Job Store 来执行调度作业。大多数作业每秒都在运行。

打开Oracle数据库的归档日志后,我注意到Quartz在每次火灾后都会更新相关表,包括:

  • 插入QRTZ_FIRED_TRIGGERS
  • ,更新所有字段的QRTZ_TRIGGERS(尽管我认为最相关的字段是TRIGGER_STATE,START_TIME等),
  • 从QRTZ_FIRED_TRIGGERS中删除
  • 并且,对 QRTZ_CRON_TRIGGERS 的不受支持的操作(我不知道那是什么

)的作业每秒运行一次,然后 Quartz 会轰炸归档日志。它每天消耗 6 GB 磁盘空间!

有没有办法设置 Quartz 的行为,而不是在每次触发后更新/删除表?

I am using Quartz to do schedule jobs, with JDBC Job Store. Most of the jobs are running every seconds.

Having turned on the archive log of Oracle database, I noticed Quartz is updating the related tables after each fire, including:

  • insert into QRTZ_FIRED_TRIGGERS
  • update QRTZ_TRIGGERS for all fields (although I think the most relevant field is TRIGGER_STATE, START_TIME, etc)
  • delete from QRTZ_FIRED_TRIGGERS
  • And, an unsupported action towards QRTZ_CRON_TRIGGERS (I don't know what's that)

Since most of the jobs are running every seconds, Quartz is then bombarding the archive log. it consumes 6 GB of disk space every day!

Is there a way to set the behavior of Quartz, not to update/delete tables after each fire?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

胡渣熟男 2024-12-18 20:40:07

您可以将 QRTZ_TRIGGERS 和 QRTZ_FIRED_TRIGGERS 设置为 NOLOGGING。

ALTER TABLE QRTZ_TRIGGERS NOLOGGING;
ALTER TABLE QRTZ_FIRED_TRIGGERS NOLOGGING;

另一个解决方案是不要每隔几秒运行一次作业。也许持久的、不消亡的工作对你来说更好。

You can set QRTZ_TRIGGERS and QRTZ_FIRED_TRIGGERS to NOLOGGING.

ALTER TABLE QRTZ_TRIGGERS NOLOGGING;
ALTER TABLE QRTZ_FIRED_TRIGGERS NOLOGGING;

Another solution would be to not run jobs every few seconds. Maybe persistent non-dying jobs are better in your case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文