0

我还没有为此编写一个潜在的解决方案,所以在有人问我有零代码来支持它之前,我正试图牢牢掌握需要发生的事情背后的处理。

我的问题是我有一个 Oracle 数据库,它将不断(每 10 分钟左右)启动作业,我需要一种安全的方式(安全和数据完整性)来终止这些作业并防止它们在每晚执行备份发生。为了便于讨论,这将通过 cron 作业来完成。我认为它应该工作的方式是 cron 作业将在凌晨 1 点启动(或其他一些低使用时间,低我的意思是 < .001% 的用户群将与系统交互)。java 进程将需要在数据库上执行一些 PL/SQL 函数来执行以下操作:

1)  A force terminate on all running jobs  
2)  A snapshot of data that is to be written to an arbitrary directory  
3)  Restart all jobs  (mark them as enabled instead of disabled)  

我的问题是这样的:

假设 Oracle 正确生成撤消/重做日志,如何以最少的权限实现这一点?这种松散的架构是否有助于防止数据损坏?如果这是一种不安全/糟糕的方式,我们将不胜感激任何其他建议。

4

1 回答 1

3

In Oracle 10+ DBMS_Scheduler has a window definition that does exactly what you want. When the window ends, processing of running jobs can be terminated.

http://docs.oracle.com/cd/E14072_01/appdev.112/e10577/d_sched.htm

于 2012-12-19T20:29:38.257 回答