왜 mydumper
와 myloader
를 사용해야 할까?
MySQL/MariaDB 환경에서 데이터 백업은 필수입니다. 하지만 기본 mysqldump
는 느리고, 대규모 데이터에서는 병목이 발생할 수밖에 없습니다.
이런 문제를 해결하기 위한 솔루션이 바로 mydumper
(백업 도구)와 myloader
(복원 도구)입니다.
주요 장점:
-
멀티스레드 처리로 빠름
-
CSV/SQL 파일 형태 지원
-
스토어드 프로시저, 이벤트, 트리거 등 포함 가능
-
백업 중 락(lock)을 최소화
설치 방법
Ubuntu / Debian 계열
CentOS / RHEL 계열
소스 빌드
mydumper
로 고속 백업하기
대규모 데이터베이스라도 빠르게 백업 가능합니다. 기본 사용 예시는 아래와 같습니다:
주요 옵션 설명
옵션 | 설명 |
---|---|
--outputdir |
백업 파일 저장 경로 |
--threads |
병렬로 실행할 스레드 수 (더 많을수록 빠름) |
--compress |
gzip으로 파일 압축 |
--triggers , --routines , --events |
각종 객체 포함 여부 |
Tip:
--rows=500000
같은 옵션으로 백업 파일 분할 크기 조절도 가능해요.
myloader
로 데이터 복원하기
복원도 병렬로 처리되며 매우 빠릅니다.
자주 사용하는 옵션
옵션 | 설명 |
---|---|
--directory |
백업 파일이 있는 디렉토리 경로 |
--overwrite-tables |
기존 테이블이 있을 경우 덮어쓰기 |
--threads |
병렬 스레드 수 설정 (복원 속도에 영향) |
성능 비교
도구 | 방식 | 속도 | 멀티스레드 | 추천 상황 |
---|---|---|---|---|
mysqldump |
단일 스레드 | 느림 | 소규모/간단한 백업 | |
mydumper |
병렬 | 매우 빠름 | 대용량 DB 백업 | |
myloader |
병렬 | 매우 빠름 | 고속 복원 시 |
실제 운영 환경에서는 100GB 이상의 백업도 10~15분 내 처리 가능합니다 (서버 사양 및 디스크 IO에 따라 상이).
활용 팁
-
자동화: cron으로 백업 스케줄 설정 가능
-
테이블 선택적 백업:
--tables-list
옵션 사용 -
트리거나 루틴만 백업:
--no-data
옵션으로 스키마만 추출
마무리하며
mydumper
와 myloader
는 단순히 빠른 백업 도구를 넘어, 안정성 있는 고성능 DB 운영의 필수 도구입니다.
mysqldump 대비 최소 3~5배 빠르며, 다중 스레드를 통한 병렬 처리가 가능하여 업무 중단 없는 실시간 백업도 구현할 수 있습니다.
*참고자료