DB

[MySQL] ALTER EVENT 완벽 가이드 사용법(이벤트수정)

인생아 2025. 1. 8. 17:30
반응형

MySQL ALTER EVENT는 이미 생성된 이벤트의 속성을 수정할 수 있는 명령어입니다. 이벤트의 실행 주기, 시작 시간, 이름 또는 실행 작업을 변경할 수 있어 이벤트를 효율적으로 관리하는 데 필수적인 도구입니다. 이 기능은 이벤트를 삭제하고 다시 생성할 필요 없이 간단한 명령으로 수정할 수 있다는 장점이 있습니다.

ALTER EVENT의 주요 기능

  1. 이벤트 주기 변경: 이벤트의 실행 간격을 조정할 수 있습니다.
  2. 시작 시간 수정: 이벤트의 시작 시간을 새로 설정 가능합니다.
  3. 작업 내용 변경: 이벤트가 수행할 SQL 작업을 재정의할 수 있습니다.
  4. 이벤트 이름 변경: 필요에 따라 이벤트 이름을 수정할 수 있습니다.

ALTER EVENT 문법

ALTER EVENT 이벤트명
[RENAME TO 새이벤트명]
[ON SCHEDULE 일정]
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[DO 작업];
  • RENAME TO: 이벤트 이름 변경.
  • ON SCHEDULE: 이벤트의 실행 주기 및 시작 시간 변경.
  • ON COMPLETION: 완료된 이벤트를 유지할지 여부 설정.
  • ENABLE/DISABLE: 이벤트 활성화 또는 비활성화.
  • DO: 실행할 작업 수정.
반응형

예제 1: 실행 주기 변경하기

ALTER EVENT daily_backup
ON SCHEDULE EVERY 2 DAY;

이 코드는 daily_backup 이벤트의 실행 주기를 하루에서 이틀로 변경합니다.

예제 2: 작업 내용 수정하기

ALTER EVENT cleanup_logs
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 90 DAY;

이 코드는 이벤트가 수행하는 작업을 수정하여 90일 이상 지난 로그를 삭제하도록 변경합니다.

예제 3: 시작 시간 변경하기

ALTER EVENT monthly_summary
ON SCHEDULE EVERY 1 MONTH STARTS '2025-02-01 00:00:00';

위 코드는 monthly_summary 이벤트가 매월 1일 00:00에 실행되도록 시작 시간을 설정합니다.

예제 4: 이벤트 이름 변경하기

ALTER EVENT old_event_name
RENAME TO new_event_name;

이 코드는 old_event_name 이벤트의 이름을 new_event_name으로 변경합니다.

반응형

ALTER EVENT로 이벤트 관리하기

1. 이벤트 활성화 및 비활성화
이벤트를 일시적으로 중지하거나 다시 활성화할 수 있습니다:

ALTER EVENT data_cleanup DISABLE;
ALTER EVENT data_cleanup ENABLE;

2. 완료된 이벤트 삭제 방지
이벤트 실행이 완료된 후에도 유지되도록 설정하려면:

ALTER EVENT data_backup
ON COMPLETION PRESERVE;

3. 정확한 실행 제어
이벤트가 너무 자주 실행되거나 의도하지 않은 시간에 실행되지 않도록 세부 설정을 관리할 수 있습니다.

ALTER EVENT 사용 시 주의사항

  • EVENT 권한 필요: ALTER EVENT를 실행하려면 이벤트를 소유하거나 EVENT 권한이 있어야 합니다.
  • 서버 시간대 확인: 이벤트의 실행 시간이 MySQL 서버의 시간대를 기준으로 하기 때문에 서버 시간대를 확인해야 합니다.
  • 비활성화된 이벤트: 비활성화된 이벤트는 실행되지 않으므로 변경 후 반드시 ENABLE로 활성화해야 합니다.
반응형

ALTER EVENT 활용 사례

1. 데이터 정리 프로세스 변경로그 삭제 주기를 7일로 변경하고, 삭제 기준을 1년 이상 경과된 로그로 수정합니다.

ALTER EVENT cleanup_logs
ON SCHEDULE EVERY 7 DAY
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 1 YEAR;

2. 백업 주기 변경백업 이벤트의 실행 주기를 1주에서 2주로 변경하여 서버 리소스 사용을 줄입니다.

ALTER EVENT weekly_backup
ON SCHEDULE EVERY 2 WEEK;

3. 테이블 최적화 이벤트 수정특정 테이블만 최적화하도록 작업 내용을 변경합니다.

ALTER EVENT optimize_tables
DO
OPTIMIZE TABLE users, orders, products;

이벤트 관리의 중요성
MySQL의 이벤트 기능을 효과적으로 관리하면 데이터베이스 작업의 자동화를 극대화할 수 있습니다. ALTER EVENT는 이러한 자동화를 유연하게 수정하고 최적화하는 데 필수적입니다.

참고 문서
MySQL ALTER EVENT에 대한 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/alter-event.html

반응형