AI Briefing

MySQL online alter부터 CPU 100% 장애까지

·2023.09.05 09:00

대규모 MySQL 테이블에 신규 컬럼을 추가하기 위해 **online alter**를 시도하며 겪은 과정과 장애 사례를 다룬다.

[쿠키런: 오븐브레이크] 팀은 신규 기능 구현을 위해 구매 기록 테이블에 purchase_dt 컬럼과 인덱스를 추가해야 했다. 하지만 테이블 규모가 매우 커서 일반적인 ALTER TABLETable Lock으로 인한 서비스 중단 위험이 있었다.

첫 번째 대안인 MySQL의 inplace algorithm은 테스트 중 Duplicate entry 에러가 발생하는 등 공식 문서에 명시된 한계점이 확인되어 폐기되었다.

대안으로 Percona Toolkitpt-online-schema-change를 선택했다. 이 툴은 신규 테이블 생성, 트리거 설정, 데이터 복사, 테이블 교체 과정을 통해 서비스 중단 없이 스키마를 변경한다.

작업은 Staging 환경의 복제본 테스트와 Dry run을 통해 안정성을 검증하며 단계적으로 진행되었다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.