동적으로 웹사이트를 개발할 때 데이터는 대부분 데이터베이스 서버를 이용해 저장합니다.
예를 들어 회원 가입을 하게 되면 회원의 개인정보, 가입정보는 데이터베이스에 데이터가 기록이 되는 거죠.
만약, 데이터베이스 서버에 장애가 발생하거나 랜섬웨어에 감염되거나 기타 등등의 사유로 데이터가 유실된다고 상상을 해보겠습니다.
웹사이트의 운영을 할 수 없을 테고, 더 나아가 사업의 존폐가 달려있기도 합니다.
정말 끔찍하죠... ㅎㄷㄷㄷ
그런 의미에서 데이터베이스를 운영하면서 데이터 손실을 방지하기 위해 백업은 필수적인 작업입니다.
특히 MariaDB와 같은 데이터베이스 시스템에서 백업 전략을 올바르게 이해하고 적용하는 것이 중요합니다.
이번 글에는 MariaDB의 백업 방식 중 물리 백업(Physical Backup)과 논리 백업(Logical Backup)의 차이를 이해하고, 각각의 장단점과 사용 사례를 살펴보도록 하겠습니다.
물리 백업(Physical Backup)
물리 백업은 데이터베이스의 실제 데이터 파일과 로그 파일을 복사하여 백업하는 방식입니다.
이 방법은 데이터베이스의 스냅샷을 그대로 가져오는 형태로 동작합니다.
특징
- 속도 : 데이터 파일을 그대로 복사하기 때문에 대용량 데이터베이스에서도 빠르게 백업이 가능합니다.
- 일관성 : 트랜잭션 로그와 함께 백업하면 데이터베이스의 일관성을 유지할 수 있습니다.
- 구조 포함 : 데이터베이스의 모든 내부 구조(테이블, 인덱스 등)가 그대로 복제됩니다.
물리 백업 사용 예제 mariabackup
Mariabackup은 MariaDB 전용 물리 백업 도구로, 복사 및 압축 효율이 뛰어나며 트랜잭션 로그를 포함하여 백업을 처리할 수 있습니다.
풀백업하기
mariabackup --backup --target-dir=/backup --user=root --password=password
복원하기
mariabackup --prepare --target-dir=/backup
mariabackup --copy-back --target-dir=/backup
2. 논리 백업(Logical Backup)
논리 백업은 데이터베이스의 데이터를 SQL 형식으로 추출하여 백업하는 방식입니다.
테이블, 뷰, 트리거 등 데이터베이스의 논리적 구조와 데이터를 포함합니다.
특징
- 유연성 : 데이터베이스를 다른 플랫폼이나 버전에 쉽게 복원할 수 있습니다.
- 읽기 가능 : 백업된 데이터가 SQL 파일 형태로 저장되므로 사람이 읽거나 수정할 수 있습니다.
- 속도 : 데이터량이 많아질수록 시간이 오래 걸릴 수 있습니다.
논리 백업 사용 예제 mariadb-dump
데이터베이스 전체 백업
mariadb-dump -u root -p --all-databases > /backup/backup.sql
특정 데이터베이스 백업
mariadb-dump -u root -p my_database > /backup/my_backup.sql
복원
mariadb -uroot -p my_database < /backup/my_backup.sql
3. 물리 백업 vs 논리 백업
구분 | 물리 백업 | 논리 백업 |
속도 | 빠름 | 느림 |
유연성 | 특정 MariaDB 버전에 종속적임 | 이식성이 높음 |
백업 크기 | 파일 크기 그대로 | 최적화된 SQL 데이터 |
사용 사례 | 대용량 데이터베이스, 동일 환경 복구 | 다른 DB로의 데이터 이동, 구조와 데이터 검토 |
4. MariaDB 백업 전략 추진
- 주기적인 물리 백업 + 논리 백업 조합 : 물리 백업으로 빠르고 안정적인 복구를 보장하고, 논리 백업으로 데이터를 플랫폼 간 이동하거나 세부 검토를 할 수 있도록 대비합니다.
- 대용량 데이터베이스 : 물리 백업 추천, 물리 백업이 속도와 효율성 면에서 뛰어나며, 대규모 데이터베이스에 적합합니다.
- 이식성 요구 : 논리 백업 추천, 데이터베이스르 다른 환경으로 이전해야 하거나, 구조적인 변경이 필요한 경우 논리 백업이 적합합니다.
결론
MariaDB에서 데이터를 안전하게 보존하고 복구하려면 백업 방식의 장단점을 이해하고 적절히 조합해야 합니다.
물리 백업은 속도와 효율성 면에서 뛰어나며, 논리 백업은 이식성과 유연성을 제공합니다.
백업은 데이터베이스 운영의 핵심이므로, 주기적으로 백업을 테스트하고 복구 절찰츨 확인하여 데이터 손실을 방지해야 합니다.
감사합니다.
'MariaDB' 카테고리의 다른 글
MariaDB SELECT 문법 가이드 (WHERE, ORDER BY, GROUP BY, HAVING, LIMIT편) (0) | 2025.02.02 |
---|---|
게시판 DB 테이블 설계하기 (0) | 2025.01.27 |
MariaDB 계산된필드(Computed Column)이란? (1) | 2025.01.24 |
MariaDB PK 설정하지 않은 테이블 조회하기 (1) | 2025.01.17 |
MariaDB 날짜 형태를 저장할때 varchar 와 date 차이점 (0) | 2025.01.16 |