gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Mysql & MariaDB

Mysql, MariaDB 이벤트 스케줄러 (Event Scheduler) 사용법

gbmin 2023. 6. 3. 22:15

Mysql/MariaDB 이벤트 스케줄러(Event Scheduler)는 주기적이거나 특정 시간에 자동으로 실행되는 작업을 정의하는 기능이다. 이벤트 스케줄러는 Mysql/MariaDB 서버에서 실행되며, 일반적으로 관리 작업이나 데이터 유지보수 작업에 유용하게 쓸 수 있다.

 

1. 이벤트 스케줄러 사용설정

기본 상태값이 off 이기 때문에 on 으로 변경해준다.
MySQL 구성 파일인 my.cnf (윈도우의 경우 my.ini) 파일 [mysqld] 섹션에 event_scheduler=ON를 추가한다.
DB를 재시작 하거나 아래와 같이 설정을 변경 후 설정 값을 체크한다.

MariaDB > SET GLOBAL event_scheduler = ON;

MariaDB > show variables like'%event_scheduler%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.00 sec)

 

2. 이벤트 스케줄러 확인

SHOW EVENTS;

 

 

3. 이벤트 스케줄러 생성

CREATE EVENT my_event
ON SCHEDULE EVERY 1 HOUR
DO
    -- 실행할 작업 내용을 여기에 작성
    SELECT NOW();
CREATE EVENT my_event
ON SCHEDULE
    EVERY 1 WEEK
    STARTS (TIMESTAMP(CURDATE()) + INTERVAL 1 WEEK + INTERVAL '09:00:00') -- 다음 주 월요일 오전 9시에 시작
DO
BEGIN
    -- 특정 테이블 업데이트 작업 수행
    UPDATE my_table
    SET column1 = value1
    WHERE condition;
END;

 

 

4. 이벤트 스케줄러 수정

ALTER EVENT my_event
ON SCHEDULE EVERY 2 HOURS
COMMENT 'Modified event'
DO
    -- 수정된 작업 내용을 여기에 작성
    SELECT NOW();

 

 

5. 이벤트 스케줄러를 삭제

DROP EVENT my_event;