我还没有编写一个潜在的解决方案,所以在任何人要求我没有代码支持这一点,因为我试图牢牢抓住需要发生的处理背后的处理。
我的问题是我有一个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正确生成撤消/重做日志,这种松散的体系结构是否有助于防止数据损坏?如果这是一种不安全/不良的方式,那么任何其他建议都会受到赞赏。
答案 0 :(得分:3)
在Oracle 10+中,DBMS_Scheduler有一个窗口定义,可以完全满足您的需求。当窗口结束时,可以终止正在运行的作业的处理。
http://docs.oracle.com/cd/E14072_01/appdev.112/e10577/d_sched.htm