间隔式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作业,极大地提高工作效率和作业准确性。


数据运维技术 » 间隔式Oracle作业自动化攻略(oracle 作业 间隔)