oracle定时任务半小时执行一次

oracle定时任务半小时执行一次,第1张

Oracle定时任务支持半小时一次的执行,可以通过Oracle Scheduler 来实现,也可以通过自定义函数来实现。Oracle Scheduler 通过创建一个 job 和 schedule 来实现定时执行,job 用来定义任务的执行内容,schedule 用来定义任务的执行计划。Oracle Scheduler 还支持强大的计划表功能,可以支持复杂的时间表,例如每个月的某一天,每周的某一天,每一小时,每30分钟等等。使用 Oracle Scheduler,可以为任务设置多种计划,实现每半小时执行一次的需求。

Oracle定时任务是在oracle系统中一个非常重要的子系统,运用得当,可以大大提高我们系统运行和维护能力。oracle定时任务的功能,可以在指定的时间点自行执行任务。

那么在实际工作中,什么样的场景会用到定时任务呢?下面是在实际工作中用到的真实业务场景举例

上面是通过脚本创建,当然也可以通过plsql图形化工具来创建,具体创建过程如下

**系统会自动分配一个任务号jobno ** ,根据jobno 可以进行如下定时任务 *** 作

查询结果如下

其中broken = N 表示该job已经生效

我们再来查看目标表中有没有定时插入数据

可以看到,定时一分钟插入了一条数据。

1、根据jobno,执行以下脚本可以停止job

再来查看定时任务是否停用成功

我们发现BROKEN=Y 说明定时任务已经停止成功了

BROKEN = N ,刚才的定时任务又启动了

下面总计了一些定时任务中常用的运行时间

1、创建数据库日志表导出为文本文件的脚本tabout.ctl或tabout.sql

注意:该日志导出后在c:\HttpLog目录下

tabout.ctl脚本内容如下:

SET NEWPAGE NONE

SET HEADING OFF

SET TERM OFF

SET SPACE 0

SET PAGESIZE 0

SET TRIMOUT ON

SET TRIMSPOOL ON

SET LINESIZE 2500

set feedback off

set echo off

SET VERIFY OFF

column v_date new_value filename

select to_char(sysdate,'yyyymmdd') || '.log' v_date from dual

spool ..\HttpLog\&&filename            

select id||','||name from orcluser.test

spool off

exit

2、创建调用该脚本的logout.bat文件

logout.bat内容如下:

mkdir ..\HttpLog\

C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl

说明:该bat文件直接在当前目录下创建名为HttpLog的文件夹,以便tabout.ctl脚本输出的文件存放到该目录下。其通过调用Oracle中sqlplus可执行文件来执行tabout.ctl脚本,所以该文件直接双击即可运行,无需其他 *** 作。

3、通过windows定时任务实现自动定期执行

“在控制面板——任务计划——添加任务计划”中建立定期将数据库中日志表数据导出为文本格式(如:你可以根据需求设置为每天对日志表数据进行导出)。根据你当前对日志文件路径的存储需求,修改上面两个脚本中的存储路径,在windows定时任务直接调用logout.bat文件执行即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11637865.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存