简介
数据库中的某些数据不一定要长期保存,例如:日志等数据、当保存一定时间后,系统允许删除所以系统需要定期删除那些已经过期的数据。
实现原理
1张表(SYS_DBA_CONFIG)、1个Job定时器(Job_DBA_AutoRunScript)和2个存储过程(DBA_AUTODELETE、DBA_AUTORUNSCRIPT)实现自动清理不同表中的过期数据。 通过定时器调用存储过程查表判断是否开启过期数据清理功能,如果开启调用数据清理的存储过程。
建表
建立数据库任务配置表,用来管理数据库中那些表需要定期处理。
表格类型
字段名
Type
非空
注解
NAME
VARCHAR2(200)
✔
任务执行对象名称
VALUE
VARCHAR2(200)
✔
设置保存时间(天)
TYPE
VARCHAR2(200)
✔
执行类型
ISRUN
NUMBER(1,0)
✔
是否执行
REMARK
VARCHAR2(200)
对应表中判断时间的字段
COLUMNTYPE
VARCHAR2(200)
字段类型
建表语法
create table SYS_DBA_CONFIG
(
NAME VARCHAR2(200) not null,
value VARCHAR2(200) not null,
type VARCHAR2(200) not null,
REMARK VARCHAR2(200) not null
ISRUN NUMBER(1) not null,
COLUM

本文介绍了如何使用Oracle的存储过程和调度器来自动清理数据库中的过期数据。通过创建SYS_DBA_CONFIG表配置清理规则,DBA_AUTODELETE和DBA_AUTORUNSCRIPT两个存储过程分别负责删除数据和判断清理功能是否启用,Job_DBA_AutoRunScript定时器按设定周期执行清理任务。
最低0.47元/天 解锁文章
645

被折叠的 条评论
为什么被折叠?



