본문 바로가기
카테고리 없음

오라클 스케줄러 사용법 & 예제

by kangs' tong 2023. 9. 4.

오라클 스케줄러란?

오라클 스케줄러는 오라클 데이터베이스에서 일련의 작업을 자동으로 실행하기 위해 사용되는 기능입니다. 이를 통해 반복적인 작업이나 예약된 작업을 설정하여 실시간으로 실행되도록 할 수 있습니다. 스케줄러는 데이터베이스 관리 작업, 데이터 가공 작업, 보고서 생성 등 다양한 용도로 사용될 수 있습니다.

스케줄 생성하기

스케줄러를 사용하기 위해서는 먼저 스케줄을 생성해야 합니다. 스케줄 생성은 크게 다음과 같은 단계로 이루어집니다.

  1. 작업(Job) 생성: 스케줄러에 등록할 작업을 생성합니다. 작업은 특정 데이터베이스 프로그램 혹은 저장 프로시저로 구성될 수 있습니다.

  2. 스케줄(Schedule) 생성: 작업이 실행될 주기나 타이밍을 설정하여 스케줄을 생성합니다. 이를 통해 작업이 반복적으로 실행되거나 특정 시간에 실행되도록 할 수 있습니다.

  3. 잡 클래스(Job Class) 지정: 작업이 실행될 때 사용되는 잡 클래스를 지정합니다. 잡 클래스는 작업을 그룹화하여 우선순위 및 리소스 할당 등을 관리하는 용도로 사용됩니다.

  4. 브로커(Broker) 구성: 스케줄러를 사용하기 위해 브로커를 구성합니다. 브로커는 스케줄된 작업의 실행을 관리하며, 작업이 실행되는 동안 필요한 리소스를 할당하는 역할을 합니다.

스케줄 생성 예제

다음은 오라클 스케줄러를 사용하여 매일 오전 2시에 데이터베이스 백업 작업을 수행하는 예제입니다.

  1. 작업(Job) 생성

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB(
       job_name          => 'database_backup_job',
       job_type          => 'PLSQL_BLOCK',
       job_action        => 'BEGIN perform_backup(); END;',
       enabled           => TRUE,
       comments          => 'Database backup job');
    END;
    /
  2. 스케줄(Schedule) 생성

    BEGIN
    DBMS_SCHEDULER.CREATE_SCHEDULE(
       repeat_interval   => 'FREQ=DAILY;BYHOUR=2',
       comments          => 'Every day at 2 AM schedule',
       schedule_name     => 'database_backup_schedule');
    END;
    /
  3. 잡 클래스(Job Class) 지정

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB_CLASS(
       job_class_name    => 'backup_job_class',
       comments          => 'Backup job class',
       service           => 'backup_service',
       logging_level     => DBMS_SCHEDULER.LOGGING_OFF);
    END;
    /
  4. 브로커(Broker) 구성

    BEGIN
    DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
       attribute_name    => 'SCHEDULER_DISABLED',
       attribute_value   => 'FALSE');
    END;
    /

전체 내용 정리

오라클 스케줄러는 데이터베이스에서 일련의 작업을 자동으로 실행하기 위해 사용되는 기능입니다. 스케줄러를 사용하기 위해서는 스케줄을 생성해야 하는데, 이는 작업 생성, 스케줄 생성, 잡 클래스 지정, 브로커 구성의 과정을 거칩니다.

위 예제에서는 매일 오전 2시에 데이터베이스 백업 작업을 수행하기 위해 스케줄을 생성하였습니다. 작업 생성을 통해 백업 작업을 등록하고, 스케줄 생성을 통해 작업이 실행될 주기를 설정하였습니다. 또한 잡 클래스를 지정하여 작업을 그룹화하고, 브로커를 구성하여 작업 실행을 관리하였습니다.

이를 통해 오라클 스케줄러를 사용하여 반복적이고 예약된 작업을 실행할 수 있습니다.

댓글