반응형
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;