freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

运维日记|如何使用数据库Scheduler定时删除归档
FreeBuf_345712 2020-08-12 18:05:18 40018

大家日常运维过程中是如何定期删除归档日志的呢?对于定期删归档,比较普遍的做法是是使用操作系统的crontab或者windows的任务计划功能来调用删归档脚本,今天小编给大家带来一种使用Oracle的Scheduler来调用清归档脚本以实现定时清理归档文件的方法。

Oracle在10g开始就提供了Scheduler来管理定时任务,这是一个企业作业调度程序,可以帮助您简化成百上千个任务的调度。Oracle调度器(Scheduler)由DBMS_Scheduler PL/SQL包中的过程和函数实现。Scheduler帮助您有效地管理和计划任务。确保许多例行任务在没有人工干预的情况下执行,有效降低操作成本,实现更可靠的管理,最大限度地减少人为错误。它可以执行任何类型的脚本(例如:PL/SQL、OS shell脚本、第三方程序等等)。在RAC,可以指定作业应在哪个数据库节点上运行,参数项instance_id。

下面我们以删除归档日志为例,来使用Scheduler。

01前期数据库环境设置

修改externaljob.ora属性

修改extjob属性

修改externaljob.ora文件内容

02准备一个删除归档脚本

注意:脚本中必须使用绝对路径,必要的环境变量必须指定,且该脚本必须拥有执行权限。

03给执行Scheduler的用户赋权

04在数据库创建一个program

这里我们创建了一个任务程序单元,将其指定为可执行文件。注意这个程序单元叫什么。

05创建一个任务计划

我们创建一个在每天凌晨一点运行一次的任务计划,该计划的名称为 'EVERY_DAY_1_00。

06创建一个job来调用之前创建的程序及计划

07如何更改Scheduler属性设置

使用 

SET_ATTRIBUTE 与 SET_SCHEDULER_ATTRIBUTE 

存储过程来更改设置。

例如,我们将该计划的执行节点改为2节点:

08禁用,删除任务

09设置查看记录日志

设置日志:

查看日志记录:

Oracle的Scheduler(任务计划),相对于Oracle之前的Job,更加地灵活易用,且支持调用shell命令或第三方程序,并提供详细的日志记录,更为详细的用法大家可以参考以下提供的官方文档,里面包括详细的使用方法以及可能会遇到的报错及处理方法。

参考文献

DBMS_SCHEDULER FAILS WITH ORA-27369 WHEN JOB TYPE IS EXECUTABLE (Doc ID 279866.1)

https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72308

https://docs.oracle.com/database/121/ADMIN/schedadmin.htm#ADMIN12062

美创科技拥有强大的运维中心数据库服务团队,其中Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,并著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。

# 运维安全 # 数据库运维 # 自动化运维
本文为 FreeBuf_345712 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
数据库运维
FreeBuf_345712 LV.1
这家伙太懒了,还未填写个人描述!
  • 69 文章数
  • 2 关注者
运维日记|SQL server 那点事
2020-09-03
运维日记|做一个查找机器
2020-08-26
运维日记|做一个优雅搬运工
2020-08-25