ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MariaDB] Event Scheduler
    Database 2023. 4. 19. 11:59

    * 개요

    : MariaDB도 다른 DB 제품들과 마찬가지로 정해진 시간에 정해진 규칙에 따라 쿼리 루틴을 실행 할 수 있는 스케줄러가 있다. 매일 정기적으로 데이터를 클렌징 한다거나 조각모음을 한다거나 하는 경우에 활용 할 수 있다.

     

    * 현재 configuration 확인 및 셋팅

    SHOW GLOBAL VARIABLES WHERE Variable_name = 'event_scheduler';

    : 기능 셋팅

    # vi my.cnf 수정 후 재시작 필요
    event_scheduler = 1

    * 이벤트 생성

    # 이벤트 예제
    -- Event 생성
    CREATE EVENT IF NOT EXISTS EV_BACKUP_TABLE
        ON SCHEDULE
            EVERY 1 MINUTE -- Event 실행 주기
            STARTS ' 2016-12-08 10:00:00' -- Event 최초 시작 시간
        DO 
            CALL SP_BACKUP_TABLE_CREATE(); -- Event에서 수행할 명령어
            
            
    # 사용 가능한 반복 주기
    YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | 
    DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND
    
    # 시간 설정 예시
    ## 특정 시간에 실행 하는 경우
    /*
    AT '2016-11-17 11:35:00' 처럼 특정시간 지정 가능(미래의 시간만 지정 가능)
    또는
    AT CURRENT_TIMESTAMP +  INTERVAL 5 MINUTE +  INTERVAL 30 SECOND 식으로
    현재시간 에서 5분 30초 이후에 실행하게뜸 지정 가능
    MINUTE, SECOND 말고도 여러 키워드를 넣어 설정할수 있고 + 를 통해 연결 가능
    */
    
    ## 일정 주기 반복
    /*
    EVERY 2 MINUTE /*2분 마다 실행, 다른 키워드 사용가능*/
    STARTS '2016-11-17 11:35:00' + INTERVAL 0 MINUTE /*시작 시간을 설정하고  + 를 사용해서 인터벌을 줄수도 있다.*/
    ENDS '2016-11-17 12:14:00' /*종료시간 셋팅 미입력시 무한반복*/
    ON COMPLETION PRESERVE /*이벤트가 종료된후 이벤트를 남겨둘지에 대한 여부 없을경우 기본 삭제됨.*/
    */

    * 이벤트 관리

    # 이벤트 목록 조회
    SHOW EVENTS;
    
    # 이미 생성된 이벤트의 상세 내용 조회
    SELECT * FROM information_schema.events;
    
    # 이벤트 삭제
    DROP EVENT '이벤트명';

     

    * 참고 자료

    - 기본 사용 방법 : https://fernweh6990.tistory.com/150

    - 시간 설정 : http://nerobong2.blogspot.com/2016/11/mysql.html

Designed by Tistory.