Quartz正在轰炸Oracle的归档日志

时间:2011-10-25 01:59:54

标签: oracle logging quartz-scheduler archive

我正在使用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的行为,而不是在每次火灾后更新/删除表?

1 个答案:

答案 0 :(得分:0)

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

ALTER TABLE QRTZ_TRIGGERS NOLOGGING;
ALTER TABLE QRTZ_FIRED_TRIGGERS NOLOGGING;

另一种解决方案是每隔几秒钟不运行一次作业。在你的情况下,持续的非垂死工作可能会更好。