* 개요
: 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
'Database' 카테고리의 다른 글
대용량 테이블 데이터 클렌징 (0) | 2024.10.28 |
---|---|
[MariaDB] General log 설정 (0) | 2023.10.23 |
[MariaDB] MariaDB 레플리케이션 모니터링 쉘프로그램 (on Docker) (0) | 2023.03.08 |
[MSSQL] 백업 및 로그 파일 축소 (0) | 2023.02.28 |
[MariaDB] Slow query 수집 (0) | 2023.01.27 |