Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Quartz正在轰炸Oracle的归档日志_Oracle_Logging_Quartz Scheduler_Archive - Fatal编程技术网

Quartz正在轰炸Oracle的归档日志

Quartz正在轰炸Oracle的归档日志,oracle,logging,quartz-scheduler,archive,Oracle,Logging,Quartz Scheduler,Archive,我使用Quartz和JDBC Job Store进行调度作业。大多数作业每秒钟运行一次 打开Oracle数据库的归档日志后,我注意到Quartz正在每次火灾后更新相关表,包括: 插入QRTZ_触发器 更新所有字段的QRTZ_触发器(尽管我认为最相关的字段是触发器状态、开始时间等) 从QRTZ_触发器中删除 而且,对QRTZ_CRON_触发器的不受支持的操作(我不知道那是什么) 由于大多数作业都是每秒钟运行一次,Quartz随后会轰炸归档日志。它每天消耗6 GB的磁盘空间 是否有一种方法可以设

我使用Quartz和JDBC Job Store进行调度作业。大多数作业每秒钟运行一次

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

  • 插入QRTZ_触发器
  • 更新所有字段的QRTZ_触发器(尽管我认为最相关的字段是触发器状态、开始时间等)
  • 从QRTZ_触发器中删除
  • 而且,对QRTZ_CRON_触发器的不受支持的操作(我不知道那是什么)
由于大多数作业都是每秒钟运行一次,Quartz随后会轰炸归档日志。它每天消耗6 GB的磁盘空间


是否有一种方法可以设置Quartz的行为,而不是在每次触发后更新/删除表?

您可以将QRTZ\u触发器和QRTZ\u FIRED\u触发器设置为NOLOGGING

ALTER TABLE QRTZ_TRIGGERS NOLOGGING;
ALTER TABLE QRTZ_FIRED_TRIGGERS NOLOGGING;

另一个解决方案是不要每隔几秒钟运行一次作业。也许在你的情况下,持续的非死亡工作会更好。

NOLOGGING可能在这里没有帮助。如果数据库处于ARCHIVELOG模式,那么除了我怀疑Quartz使用的
INSERT/*+APPEND*/
之外,将为每个DML语句生成REDO。有关显示何时生成重做的表,请参阅。