Oracle计划任务?

问题描述:

我正在绘制一个系统的设计,为我的公司完成日常业务功能。它将包含一个带有Pl/SQL包的Oracle 10g数据库和一个基于Java的Web应用程序。所有这些都在Solaris 10服务器上运行。除了从Web界面处理事务,计划任务需要在数据库上运行运行计算和加载数据等Oracle计划任务?

这是目前控制用cron作业过多的一切遗留系统的重新设计。鉴于重新设计它的任务,你会做不同的事情吗?我知道Oracle有自己的任务调度程序,但DBA认为他会重新考虑使用它,因为如果数据库由于某种原因停机或脱机,它不能发送警报或记录任何类型的错误。如果其中一项任务失败,则cron作业目前有能力发送SMS消息或电子邮件。另一种选择是让Web应用程序以某种方式执行它。

你有什么建议?

是否所有与数据库相关的计划任务?如果是这样,那么您的DBA的异议是无关紧要的:当数据库因计划停机而离线时,您不希望运行这些作业,并且DBA应该有一些适当的位置来提醒他们,如果数据库因非计划原因而停机,宁可比依靠来自失败的cron工作的信号。

如果你有没有接触到数据库而在体系结构的其他部分上运行的作业,那么外部调度器肯定是有意义的。有很多商业产品,但如果你想要购买FOSS,那么你可能应该看看Quartz

+0

你比我想象的要多得多。 – 2010-01-07 03:34:49

使用了cron和Oracle作业调度程序 - 我总是发现它更加可靠和易于用户理解cron。它可以做更多的事情(与整个操作系统连接,而不仅仅是Oracle)。我会选择cron。

我的计划作业的经验法则是一致性。既然你已经有了很多基础设施,比如提醒我会坚持使用cron。