
대규모 서비스 장애를 유발하는 메타데이터 잠금의 실체와 최적의 스키마 마이그레이션 도구 선택법
MySQL 운영 중 누구나 한 번쯤 겪는 DDL 실행 시 쿼리 마비 현상의 원인인 메타데이터 잠금(MDL)을 깊이 있게 분석합니다. Native Online DDL의 두 가지 핵심 알고리즘과 Percona의 pt-osc 도구를 비교해 각 기술의 잠금 획득 시점과 한계를 파악하고 실무 관점의 안전한 마이그레이션 의사결정 기준을 정립해 봅니다.
실시간 쓰기 작업이 쉴 새 없이 몰아치는 프로덕션 환경의 대용량 테이블에는 재시도 메커니즘이 탑재된 pt-osc를 적극 권장하며, 컬럼 추가나 디폴트 값 변경 등 메타데이터만 건드리는 가벼운 작업은 안전 구역을 확인한 후 Native INSTANT DDL을 활용하는 편이 리소스 절약에 유리합니다.
MySQL Native Online DDL(INSTANT, INPLACE) 수행 시 메타데이터 잠금(MDL) 획득 대기 및 데이터베이스 글로벌 뮤텍스 점유로 인해 대규모 트래픽 환경에서 읽기 및 쓰기 쿼리가 차단되는 문제가 발생합니다.
MySQL의 INSTANT 및 INPLACE 알고리즘의 MDL 획득 메커니즘과 동작 흐름을 상세히 분석하고, 트리거 기반 스키마 변경 도구인 pt-online-schema-change(pt-osc)의 단계별 잠금 특징과 상호 비교를 제공합니다.
pt-osc는 락 타임아웃 및 재시도 옵션을 통해 락 대기로 인한 서비스 장애를 막아주고 RENAME 시점에만 매우 짧게 Exclusive MDL을 보유하는 안정성을 보여주는 반면, Native Online DDL은 DML 유입량에 비례해 커밋 시점의 MDL 보유 시간이 길어질 수 있음을 입증했습니다.
Trade-off
pt-osc는 안정적인 MDL 관리가 가능한 대신, 전체 테이블 복사 프로세스로 인해 작업 속도가 매우 느리며 원본 데이터와 동일한 크기의 추가 디스크 공간이 필요하고 트리거 실행에 따른 쓰기 오버헤드와 복제 지연이 발생할 수 있습니다.
데이터베이스 내 테이블의 스키마 정의를 보호하여 트랜잭션 도중 다른 세션에 의해 구조가 변경되지 않도록 정합성을 유지해 주는 동기화 잠금 메커니즘입니다.
원본 테이블 대신 임시 테이블을 생성하고 트리거를 활용해 변경 사항을 실시간 전파하며 백그라운드에서 안전하게 스키마를 이전하는 외부 마이그레이션 유틸리티입니다.
InnoDB 엔진 내부에서 데이터 딕셔너리 정보에 동시 참조할 때 정합성을 보호하기 위한 전역 범위의 상호 배제 잠금 장치입니다.




