间隔式Oracle作业自动化攻略(oracle 作业 间隔)
间隔式Oracle作业自动化攻略
在现代企业中,Oracle作为一种成熟、健壮的数据库系统得到了广泛的部署与使用。随着企业业务的不断发展,在Oracle数据库中进行的大量作业也随之增长,这些作业包括数据导入、备份、清理等等,每天需要手动开启或关闭这些作业,不仅工作量大,而且容易出现疏漏或者错误。因此,对于这些大量的作业,自动化执行已成为一种必须的选择。
本文介绍Oracle数据库中间隔式作业的自动化实现方式。中间隔式作业是指在指定的时间内执行一次作业,并在两个执行周期之间等待一个指定的时间。下面将分为以下几个方面介绍具体实现方法。
1.设置中间隔式作业
Oracle数据库支持设计中间隔式作业的功能,具体可使用DBMS_SCHEDULER包来实现。该包提供了在数据库中自动执行各种作业的功能,包括中间隔式作业。
下面是设置中间隔式作业的代码示例:
DECLARE
job_name VARCHAR2(100) := ‘JOB_NAME’;
job_start_date TIMESTAMP WITH TIME ZONE := TO_TIMESTAMP_TZ(‘2022-01-01 01:00:00 America/Los_Angeles’,’YYYY-MM-DD HH24:MI:SS TZR’);
job_interval INTERVAL DAY TO SECOND := ‘+1 01:00:00’;
job_repeat NUMBER := 10;
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => job_name,
job_type => ‘STORED_PROCEDURE’,
job_action => ‘SCHEMA.PACKAGE.PROCEDURE’,
start_date => job_start_date,
repeat_interval => job_interval,
end_date => NULL,
job_class => NULL,
enabled => TRUE,
auto_drop => FALSE,
comments => NULL,
job_style => ‘REGULAR’,
number_of_arguments => 0,
job_queue_interval => NULL,
max_flures => NULL
);
DBMS_SCHEDULER.SET_ATTRIBUTE( name => job_name,
attribute => ‘max_runs’,
value => job_repeat );
DBMS_SCHEDULER.ENABLE( name => job_name );
END;
/
2.配置Oracle Scheduler
Oracle Scheduler是Oracle的作业调度器,它是一个在数据库中驻留的服务,几乎所有的Oracle产品都能够与Oracle Scheduler集成。通过Oracle Scheduler,我们可以方便地对Oracle作业进行时间规划和管理。
为了实现对Oracle作业的自动化执行,我们需要配置Oracle Scheduler。可以通过以下步骤来配置:
1)启用Oracle Scheduler:在过程中,如果Oracle Scheduler未被启用,则需要先启用Oracle Scheduler。可以使用以下命令来启用Oracle Scheduler:
BEGIN
DBMS_SCHEDULER.create_scheduler_job();
END;
/
2)创建作业类别:然后,可以使用以下命令创建一个作业类别:
BEGIN
DBMS_SCHEDULER.CREATE_JOB_CLASS (
job_class_name => ‘JOB_CLASS_NAME’,
service => ‘SYS$BACKGROUND’,
logging_level => DBMS_SCHEDULER.LOGGING_OFF);
END;
/
3)创建凭据:可以使用以下命令创建凭据:
BEGIN
DBMS_SCHEDULER.CREATE_CREDENTIAL (
credential_name => ‘CREDENTIAL_NAME’,
username => ‘USER_NAME’,
password => ‘PASSWORD’ );
END;
/
4)创建程序:可以使用以下命令创建一个程序:
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name => ‘PROGRAM_NAME’,
program_type => ‘PLSQL_BLOCK’,
program_action=> ‘BEGIN schema.package.procedure; END;’,
number_of_arguments => 0,
enabled => TRUE,
comments => NULL,
credential_name => ‘CREDENTIAL_NAME’ );
END;
/
3.运行作业
一旦Oracle Scheduler配置完毕,就可以自动运行Oracle作业了。可以使用以下命令验证作业是否正常运行:
SELECT job_name, start_date, next_run_date, repeat_interval, duration, state FROM dba_scheduler_jobs WHERE job_name = ‘JOB_NAME’;
可以在创建时设置作业的启用和停用状态,如果需要暂停作业,则可以使用以下命令暂停作业:
BEGIN
DBMS_SCHEDULER.DISABLE(‘JOB_NAME’);
END;
/
如果需要重新启用作业,则可以使用以下命令重新启用:
BEGIN
DBMS_SCHEDULER.ENABLE(‘JOB_NAME’);
END;
/
以上就是Oracle中间隔式作业自动化攻略的全部内容。使用以上方法,可以方便地自动化执行大量的Oracle作业,极大地提高工作效率和作业准确性。