-
1. 논리적 백업: mysqldump
-
2. Mydumper
-
3. mysqlbackup
-
4. 물리적 백업: Percona XtraBackup
-
5. phpMyAdmin
-
6. MySQL Workbench
-
7. Vinchin Backup & Recovery
-
MySQL 백업 도구 FAQ
-
결론
MySQL 데이터베이스 관리를 실현하기 위해 다양한 백업 도구와 기법들이 개발되었으며, 각각 고유한 강점과 사용 사례를 가지고 있습니다. 본 문서에서는 인기 있는 MySQL 백업 및 관리 도구들의 주요 기능, 작동 원리, 고려 사항을 살펴보고, 이를 통해 데이터베이스 운영에 있어 현명한 결정을 내릴 수 있도록 도와줍니다.
1. 논리적 백업: mysqldump
MySQL에서 mysqldump는 데이터베이스를 이식 가능한 SQL 파일로 내보내는 데 가장 일반적으로 사용되는 도구 중 하나입니다. 이 도구는 단일 테이블, 단일 데이터베이스 또는 여러 데이터베이스의 백업을 지원하며 다양한 백업 요구 사항을 충족할 수 있는 풍부한 옵션을 제공합니다. 이 도구의 백업 메커니즘은 MySQL 데이터베이스에 프로토콜을 통해 연결된 후 백업할 데이터를 조회하고, 조회된 데이터를 해당하는 "INSERT" 문으로 변환합니다. 데이터를 복원해야 할 때는 이러한 "INSERT" 문을 실행함으로써 데이터를 복원할 수 있습니다.
mysqldump 백업 프로세스는 대략 다음과 같습니다:
특정 데이터베이스의 모든 테이블에 읽기 잠금 적용;
테이블 데이터를 순회하며 백업합니다;
읽기 잠금을 해제합니다;
위의 세 단계를 반복하십시오;
백업이 완료되었습니다.
위의 과정에서 분명히 알 수 있듯이 mysqldump 백업 시 특정 데이터베이스를 백업하면 해당 데이터베이스의 모든 테이블이 읽기 전용 모드가 되어 백업이 완료될 때까지 어떠한 수정도 허용하지 않습니다. 이는 일반적으로 온라인 환경에서는 받아들이기 어렵습니다. “--master-data” 또는 “--dump-slave” 옵션이 지정된 경우에는 백업 시작 시 전역 읽기 잠금(“FLUSH TABLES WITH READ LOCK”)이 적용되며, 백업이 완료될 때까지 유지됩니다. 한 가지 대안으로는 온라인 운영에 영향을 주지 않도록 복제 데이터베이스에서 백업을 수행하는 방법이 있습니다.
mysqldump를 사용하는 또 다른 주요 장점은 생성된 SQL 문장을 통해 플랫폼 및 버전 간 데이터 마이그레이션 또는 복원이 가능하다는 점입니다. 이는 물리적 백업에서는 불가능한 방식입니다. 하지만 mysqldump는 SQL 문장을 생성하기 때문에 사용 시 치명적인 문제를 방지하기 위해 추가적인 주의가 필요합니다. mysqldump 사용 시 흔히 발생하는 문제로는 다음이 있습니다:
데이터의 일부만 새 인스턴스로 이전했지만 실수로 원본 데이터를 삭제하는 경우;
시간대 문제로 인해 복원된 테이블 및 시간 관련 데이터가 잘못되었을 수 있습니다.
기본 데이터베이스에 백업 데이터를 가져온 후에는 복제 데이터베이스가 동기화되지 않습니다;
문자 집합 문제로 인해 복원된 데이터가 깨져 보입니다.
따라서 mysqldump를 사용할 때에는 각 옵션의 기능을 이해하고, 내보낸 SQL 파일에 포함된 작업 내용을 확인하며, 기존 데이터에 미치는 영향을 평가하는 것이 중요합니다.
2. Mydumper
Mydumper의 원리는 mysqldump와 유사하지만, 주요 차이점은 멀티 스레드 백업을 도입했다는 점입니다. 여기서 각 백업 스레드가 테이블의 일부를 처리합니다. 동시성 수준은 행 단위까지 도달할 수 있어 멀티 스레드 백업을 구현할 수 있습니다.
Mydumper의 주요 기능:
가벼운 울타리, C로 작성됨
실행 속도가 mysqldump보다 10배 빠름
트랜잭션 및 비트랜잭션 테이블의 일관된 스냅샷(버전 0.2.2 이상)
빠른 파일 압축
binlog 내보내기를 지원합니다
다중 스레드 복원(0.2.1 이상 버전에서만 지원)
예약된 스냅샷과 지속적인 바이너리 로그를 위해 데몬으로 작동함(0.5.0 이상 버전)
오픈소스(GNU GPLv3)
Mydumper는 다중 스레드 방식의 내보내기를 사용하기 때문에 mysqldump와 동일한 내보내기 순서를 보장할 수 없으며, 이로 인해 루틴 및 이벤트와 같은 시간에 의존적인 기능에서 데이터 불일치가 발생할 수 있습니다. MySQL 시스템 데이터베이스는 다른 데이터베이스와 별도로 내보내고 가져오는 것이 좋습니다.
Mydumper의 데이터베이스 추출 및 병합 기능은 구분자를 기반으로 하므로 데이터베이스 이름에는 점(" . ")이 포함되어서는 안 되며, 테이블 이름에는 하이픈(" - ")이 포함되어서는 안 됩니다.
3. mysqlbackup
mysqlbackup는 Oracle에서 MySQL 기업용 버전을 위해 개발한 백업 도구로, MEB라고 줄여 부르기도 합니다. 이 도구는 핫 백업, 증분 백업, 선택적 데이터 백업 및 데이터 복원 등 강력한 MySQL 백업 기능을 제공합니다.
병렬 처리를 활용하여 mysqlbackup은 데이터베이스 데이터의 블록 수준 병렬 백업을 수행하여 백업 효율성과 속도를 향상시킵니다.
MEB는 전체, 차등, 증분의 3가지 유형의 MySQL 데이터베이스 백업을 지원합니다. 또한 이러한 백업의 압축 저장도 지원합니다. 백업을 수행한 후에는 ibdata, ibd, ibz의 3가지 유형의 파일이 생성됩니다. 이 중 다음과 같은 파일들이 생성됩니다:
“ibdata”는 InnoDB 시스템 테이블스페이스 데이터를 포함합니다;
“Ibd”는 실제 데이터 파일을 포함합니다;
“Ibz”는 압축된 데이터 파일을 포함합니다.
추가로 MEB는 백업 시점의 MySQL 설정 백업 파일인 "backup-mysql.cnf"와 "ibbackup_ibd_files", "ibbackup_logfile" 같은 증분 백업 파일을 생성하며, 이 파일들은 증분 데이터와 로그를 저장합니다. MySQL은 데이터 무결성을 향상시키기 위해 별도의 리도 로그 백업 기능도 도입되었습니다.
4. 물리적 백업: Percona XtraBackup
Percona XtraBackup는 Percona에서 개발한 MySQL용 핫 백업 도구로, InnoDB의 충돌 복구 메커니즘을 기반으로 하는 물리적 백업을 위해 설계되었습니다. 이 도구의 기본 작동 원리는 다음과 같습니다:
1. 시스템 시작 시, 현재 로그 시퀀스 번호(LSN)를 포착하고 기록한 후 해당 지점부터 수정된 리두 로그를 지속적으로 복사하는 프로세스가 생성됩니다.
2. "ibdata1"을 복사하고, 언두 테이블스페이스와 모든 "ibd" 파일을 복사하기 위한 스레드가 시작됩니다.
3. once "ibd" 파일 복사가 완료되면 "FLUSH TABLES WITH READ LOCK" (또는 백업 잠금을 적용함)을 실행합니다.
4. 그런 다음 InnoDB가 아닌 데이터 파일(.frm, .MRG, .MYD, .MYI 등)을 백업합니다.
5. 복제 데이터베이스 및 이진 로그와 관련된 정보도 백업합니다.
6. 마지막으로 로그를 플러시하고 최신 리도(redo) 로그를 복사한 후 로그 복사 스레드를 종료하며 글로벌 락을 해제하고 백업 메타데이터를 기록하여 프로세스를 완료합니다.
복구 중에 Percona XtraBackup은 복사된 리두 로그를 적용하고 완료된 트랜잭션을 커밋하며, 미완료 트랜잭션은 롤백하여 데이터베이스를 일관된 상태로 복원합니다.
Percona XtraBackup은 물리적 파일을 생성하기 때문에 데이터베이스를 복원하거나 마이그레이션할 때 mysqldump와 같은 논리적 백업 방식과 관련된 많은 문제를 피할 수 있습니다. 하지만 다양한 백업 파라미터는 데이터베이스에不同程度의 영향을 줄 수 있습니다.
XtraBackup은 데이터베이스에 미치는 영향이 최소화되고 복구 속도가 빨라 정기적인 백업에 가장 적합한 선택지입니다. 반면, mysqldump는 더 유연하지만 기존 데이터에 영향을 주지 않도록 주의 깊게 다뤄야 합니다.
5. phpMyAdmin
phpMyAdmin는 웹 호스트에서 실행되는 웹 기반 애플리케이션 구조를 가진 PHP 기반의 MySQL 데이터베이스 관리 도구입니다. 이 도구를 통해 관리자는 웹 인터페이스를 통해 MySQL 데이터베이스를 관리할 수 있으며, 특히 대량의 데이터를 가져오거나 내보낼 때 유용한 복잡한 SQL 구문 입력을 편리하게 할 수 있습니다.
phpMyAdmin은 Microsoft Access 및 SQL Server와 유사한 그래픽 데이터베이스 인터페이스를 제공하여 사용자가 데이터베이스 생성, 테이블 생성, MySQL 데이터베이스 스크립트 파일 생성 등의 다양한 MySQL 작업을 수행할 수 있게 합니다.
phpMyAdmin의 주요 이점 중 하나는 다른 PHP 애플리케이션과 마찬가지로 웹 서버에서 실행된다는 점입니다. 그러나 사용자는 어디서든 생성된 HTML 페이지에 접근할 수 있어 원격 MySQL 데이터베이스 관리가 가능합니다. 이를 통해 데이터베이스 및 테이블의 생성, 수정, 삭제를 용이하게 할 수 있습니다. 또한, phpMyAdmin은 웹 애플리케이션을 개발할 때 SQL 문의 정확성을 보장하는 일반적으로 사용되는 PHP 구문을 생성할 수 있습니다.
6. MySQL Workbench
MySQL Workbench는 MySQL 데이터베이스를 관리하기 위한 공식 무료 그래픽 도구로, 데이터베이스 설계, 개발 및 관리를 위한 사용자 친화적인 인터페이스를 제공합니다. ER 다이어그램을 통해 데이터베이스 구조를 시각적으로 생성하고 편집할 수 있으며, SQL 스크립트 생성과 데이터베이스 변경 사항 동기화가 가능합니다. 내장된 SQL 편집기는 문법 강조 표시, 자동 완성, 시각화된 결과와 함께 쿼리 실행을 지원합니다. 또한 데이터 가져오기/내보내기, 사용자 권한 관리, 성능 모니터링 및 데이터베이스 마이그레이션을 위한 도구도 포함되어 있습니다. Windows, macOS, Linux와 호환되며 초보자부터 숙련 개발자까지 모두 사용하기 편리하게 데이터베이스 작업을 수행할 수 있으며, 복잡한 명령줄 지식은 필요하지 않습니다.
7. Vinchin Backup & Recovery
Vinchin Backup & Recovery 솔루션은 자동화되고 효율적이며 안전한 방식으로 MySQL 백업 프로세스를 중앙 집중식 관리, 신속한 복구, 증분 백업 및 유연한 저장 전략을 통해 데이터 장기 가용성을 보장합니다. 또한 Oracle DB, SQL Server, PostgreSQL, Postgres Pro 및 MariaDB 용 유연한 백업 전략을 제공합니다.
데이터 중복제거 및 압축과 같은 최적화된 저장 기능을 통해 백업 파일의 저장 용량을 크게 줄이고 백업 시간을 단축시킵니다. 동시에 암호화 및 전송 보안 기능을 통해 백업 데이터의 보안성을 보장하므로 데이터 보호가 엄격히 요구되는 기업에 적합합니다.
MySQL 데이터베이스 백업 작업을 생성하려면 물리적 백업 > 데이터베이스 백업 > 백업 페이지로 이동하십시오:
1. 백업할 데이터베이스를 선택하십시오.

2. 백업 데이터가 처리되고 저장될 백업 노드를 선택하십시오.

3. 필요에 따라 백업 전략을 구성하십시오.

4. 설정을 검토하고 확인하십시오.

효율적이고 신뢰할 수 있는 데이터 백업 및 복구 솔루션을 경험해보세요. 아래 버튼을 클릭하여 Vinchin의 60일 무료 체험을 시작하십시오!
MySQL 백업 도구 FAQ
1. 논리적 백업과 물리적 백업의 차이점은 무엇입니까?
논리적 백업은 SQL 문으로 데이터를 저장하는 반면, 물리적 백업은 원시 데이터베이스 파일을 복사합니다.
2. MySQL에서 시점 복구(PITR)란 무엇인가요?
이진 로그(binlog)를 사용하여 데이터베이스를 특정 시점으로 복원할 수 있습니다.
결론
MySQL 데이터베이스에 적합한 백업 도구를 선택하는 것은 데이터 안전성과 운영 효율성을 보장하기 위해 중요합니다. 각 도구의 장점과 한계를 이해함으로써 특정 요구사항에 맞춘 백업 전략을 수립할 수 있으며, 이는 모든 시나리오에서 강력한 데이터 보호와 원활한 복구를 가능하게 합니다.
공유하기: