Database/mysql & mariaDB

MySQL 백업 비교: mysqldump vs mydumper + myloader

봉의일상 2025. 6. 28. 23:14

MySQL/MariaDB 환경에서 데이터 백업을 위한 대표적인 두 가지 방법은 mysqldumpmydumper입니다.

이번 글에서는 각 도구의 특징과 실제 사용 사례, 그리고 복원 시 myloader를 사용하는 구조까지 함께 살펴보며 어떤 상황에 어떤 도구를 선택하는 것이 좋을지 정리해 보겠습니다.

1. mysqldump: MySQL 기본 제공 백업 도구

특징

  • MySQL 클라이언트에 기본 내장
  • 텍스트 기반 SQL 파일로 백업
  • 단일 스레드로 작동
  • 다양한 백업 옵션 제공 (--no-data, --routines, --triggers 등)

백업 예시

mysqldump -u root -p \
  --single-transaction --routines --triggers --events \
  --default-character-set=utf8mb4 \
  mydb > /backup/mydb_dump.sql

복원

mysql -u root -p mydb < /backup/mydb_dump.sql

장점

  • 간단하고 범용적으로 사용 가능
  • SQL 기반으로 관리 및 버전 관리 용이
  • 설치 필요 없음

단점

  • 대용량 백업 시 느림
  • 트랜잭션 중단 시 복원 실패 가능
  • 복잡한 외래키/관계로 인한 복원 순서 문제 발생 가능

2. mydumper + myloader: 멀티스레드 기반 고속 백업/복원

특징

  • 멀티스레드로 병렬 백업 및 복원 지원
  • 테이블/쿼리 단위로 파일 분리
  • DDL(스키마)와 데이터 분리 백업 가능 (--no-schemas)
  • 별도 설치 필요

백업 예시

mydumper \
  -h mydbhost \
  -u myuser \
  -p mypass \
  -B mydb \
  -o /backup/mydb \
  --threads 4 \
  --compress \
  --no-schemas

복원 예시

myloader \
  -h mydbhost \
  -u myuser \
  -p mypass \
  -B mydb \
  -d /backup/mydb \
  --threads 4

장점

  • 대용량에서도 빠른 백업/복원 가능
  • 병렬 처리로 시간 단축
  • 락 최소화 옵션 제공 (--less-locking, --use-savepoints 등)
  • 백업 데이터 관리 유연성 높음

단점

  • 별도 설치 필요
  • 결과물이 SQL이 아닌 구조화된 파일이라 가독성 낮음
  • 복원 시 myloader 필수

실전 전략: DDL 분리 + 데이터 병렬 백업

대부분 실무에서는 DDL과 데이터를 분리해 백업합니다. 그 이유는 다음과 같습니다:

  • 외래키, 트리거 등으로 인해 데이터 삽입 전에 테이블 구조를 먼저 정의해야 함
  • 순서 제어 가능 (DDL → 데이터 → 기타 오브젝트)

비교 요약표

항목 mysqldump mydumper + myloader
병렬 처리 불가 (단일 스레드) 가능 (멀티 스레드)
속도 느림 빠름
DDL/데이터 분리 가능 (--no-data) 가능 (--no-schemas)
복원 방식 SQL 실행 파일 기반 병렬 복원
대용량 적합성 낮음 높음
설치 필요 여부 없음 있음
백업 결과 하나의 SQL 파일 다수의 파일 (압축 가능)

결론 및 추천

상황 추천 도구 이유
소규모, 간단한 백업/복원 mysqldump 설치 간단함
대용량, 병렬 처리로 시간 단축이 필요한 경우 mydumper + myloader 성능, 안정성 우수
DDL을 직접 관리하거나 분리하고 싶은 경우 mysqldump + mydumper 혼합 유연성, 제어력 확보

마무리

mysqldump는 여전히 유용한 기본 도구지만, 대용량이나 성능 최적화가 필요한 환경에서는 mydumper 조합이 훨씬 효과적입니다. 또한, 트리거, 제약조건, 외래키 순서에 민감한 환경에서는 DDL과 데이터를 분리하는 전략이 안정성과 확장성을 동시에 확보할 수 있는 좋은 방법입니다.