메뉴 닫기

MySQL/MariaDB 고속 백업 복원 도구 mydumper, myloader

mydumper myloader

mydumpermyloader를 사용해야 할까?

MySQL/MariaDB 환경에서 데이터 백업은 필수입니다. 하지만 기본 mysqldump는 느리고, 대규모 데이터에서는 병목이 발생할 수밖에 없습니다.

이런 문제를 해결하기 위한 솔루션이 바로 mydumper(백업 도구)와 myloader(복원 도구)입니다.

🔍 주요 장점:

  • 멀티스레드 처리로 빠름

  • CSV/SQL 파일 형태 지원

  • 스토어드 프로시저, 이벤트, 트리거 등 포함 가능

  • 백업 중 락(lock)을 최소화

🔧 설치 방법

💡 Ubuntu / Debian 계열

bash
sudo apt install mydumper

💡 CentOS / RHEL 계열

bash
sudo yum install mydumper

💡 소스 빌드

bash
git clone https://github.com/mydumper/mydumper.git
cd mydumper
cmake .
make
sudo make install
 
 

🗃️ mydumper로 고속 백업하기

대규모 데이터베이스라도 빠르게 백업 가능합니다. 기본 사용 예시는 아래와 같습니다:

bash
mydumper \
--user=root \
--password=비밀번호 \
--host=localhost \
--port=3306 \
--database=mydb \
--outputdir=/data/backup/mydb \
--threads=4 \
--compress \
--triggers
--routines
--events

📌 주요 옵션 설명

옵션 설명
--outputdir 백업 파일 저장 경로
--threads 병렬로 실행할 스레드 수 (더 많을수록 빠름)
--compress gzip으로 파일 압축
--triggers, --routines, --events 각종 객체 포함 여부

📍 Tip: --rows=500000 같은 옵션으로 백업 파일 분할 크기 조절도 가능해요.


💾 myloader로 데이터 복원하기

복원도 병렬로 처리되며 매우 빠릅니다.

bash
myloader \
--user=root \
--password=비밀번호 \
--host=localhost \
--port=3306 \
--database=mydb \
--directory=/data/backup/mydb \
--threads=4 \
--overwrite-tables

🧾 자주 사용하는 옵션

옵션 설명
--directory 백업 파일이 있는 디렉토리 경로
--overwrite-tables 기존 테이블이 있을 경우 덮어쓰기
--threads 병렬 스레드 수 설정 (복원 속도에 영향)

📈 성능 비교

 

도구 방식 속도 멀티스레드 추천 상황
mysqldump 단일 스레드 느림 ❌ 소규모/간단한 백업
mydumper 병렬 매우 빠름 ✅ 대용량 DB 백업
myloader 병렬 매우 빠름 ✅ 고속 복원 시

💡 실제 운영 환경에서는 100GB 이상의 백업도 10~15분 내 처리 가능합니다 (서버 사양 및 디스크 IO에 따라 상이).


💡 활용 팁

  • 자동화: cron으로 백업 스케줄 설정 가능

  • 테이블 선택적 백업: --tables-list 옵션 사용

  • 트리거나 루틴만 백업: --no-data 옵션으로 스키마만 추출


✨ 마무리하며

mydumpermyloader는 단순히 빠른 백업 도구를 넘어, 안정성 있는 고성능 DB 운영의 필수 도구입니다.

mysqldump 대비 최소 3~5배 빠르며, 다중 스레드를 통한 병렬 처리가 가능하여 업무 중단 없는 실시간 백업도 구현할 수 있습니다.

*참고자료
Subscribe
Notify of
guest


0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x