전공 이론/데이터베이스

DBMS별 백업 방식 비교 (mysql, oracle, PostgreSQL, ms sql)

후히 2025. 10. 20. 11:03

(1) MySQL

MySQL은 mysqldump, mysqlhotcopy, xtrabackup 등을 이용합니다.

구분설명
전체 백업 (Full) mysqldump --all-databases > backup.sql 또는 xtrabackup --backup 으로 전체 데이터 백업
증분 백업 (Incremental) Percona XtraBackup 같은 도구로만 가능. 마지막 백업 이후 변경된 데이터 페이지(redo log 기반)만 백업함
차등 백업 (Differential) MySQL 자체 명령어로는 지원하지 않음 ❌
대신 증분 백업을 여러 번 수행하는 구조로 대체
특징 <ul><li>InnoDB 스토리지 엔진 기준 redo log를 이용한 증분 가능</li><li>mysqldump는 기본적으로 전체 백업만 지원</li></ul>

MySQL은 “전체 + 증분” 구조로 운영하며,
차등 백업 개념은 별도 구현(스크립트 or XtraBackup 기능 활용)으로 처리합니다.

 (2) Oracle

Oracle은 RMAN (Recovery Manager) 도구로 백업합니다.

구분설명
전체 백업 (Full) BACKUP DATABASE;
데이터파일 전체를 백업
차등 백업 (Differential) BACKUP INCREMENTAL LEVEL 1 DIFFERENTIAL DATABASE;
마지막 LEVEL 0 (전체) 백업 이후 변경된 블록만 백업
증분 백업 (Incremental) BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
마지막 어떤 백업(LEVEL 0 or 1) 이후 변경된 블록만 백업
특징 Oracle은 LEVEL 0 = 전체백업, LEVEL 1은 차등 또는 누적 증분 중 선택 가능

Oracle은 “차등(Differential)”과 “증분(Cumulative)” 개념을 LEVEL 1 두 가지 형태로 명확히 구분합니다.

 

 (3) PostgreSQL

PostgreSQL은 WAL(Write-Ahead Log) 기반으로 백업을 수행합니다.

구분설명
전체 백업 (Full) pg_basebackup 명령어로 전체 데이터 디렉터리 복사
증분 백업 (Incremental) PostgreSQL 13 이후부터 WAL 아카이브 + pgBackRest, barman 같은 툴로 지원. 마지막 백업 이후 WAL 로그만 백업
차등 백업 (Differential) 기본 제공되지 않음 ❌, 백업 툴에서 자체 기능으로 구현
특징 WAL 로그를 지속적으로 백업하면 증분 형태의 Point-in-Time Recovery (PITR) 가능

PostgreSQL도 기본은 “전체 + 증분(WAL 기반)” 구조입니다.

 

(4) MSSQL (SQL Server)

SQL Server는 BACKUP DATABASE 명령으로 세 가지 모두 명확히 지원합니다.

구분명령어 예시설명
전체 백업 (Full) BACKUP DATABASE DB명 TO DISK='backup_full.bak' 전체 데이터베이스 백업
차등 백업 (Differential) BACKUP DATABASE DB명 TO DISK='backup_diff.bak' WITH DIFFERENTIAL 마지막 전체 백업 이후 변경된 데이터 백업
증분 백업 (Transaction Log Backup) BACKUP LOG DB명 TO DISK='backup_log.trn' 마지막 로그 백업 이후의 트랜잭션 로그 백업
특징 SQL Server는 Full + Differential + Transaction Log 구조로 완벽히 지원  

 MSSQL은 차등과 증분을 구분해서 명확히 지원하는 대표적인 DBMS입니다.

 

 

비교표

DBMS 전체백업 차등백업 증분백업 비고
MySQL O (mysqldump, xtrabackup) ❌ (별도 구현) O (xtrabackup 지원) 주로 전체+증분 조합
Oracle O (LEVEL 0) O (LEVEL 1 DIFFERENTIAL) O (LEVEL 1 CUMULATIVE) RMAN으로 완벽 지원
PostgreSQL O (pg_basebackup) O (WAL 로그 기반) WAL 아카이브 방식
MSSQL O (BACKUP DATABASE) O (WITH DIFFERENTIAL) O (BACKUP LOG) 트랜잭션 로그 기반

 

 

 

정리 요약

구분 MySQL Oracle PostgreSQL MS SQL
백업 구조 전체 + 증분 전체 + 차등/증분 (LEVEL 구분) 전체 + 증분(WAL) 전체 + 차등 + 증분
차등 지원
증분 지원
주요 백업 도구 mysqldump / xtrabackup RMAN pg_basebackup / pgBackRest SQL Server Management Studio or T-SQL