🎱 백업과 복구
⚽️ 백업 Backup
- 데이터베이스의 현재 상태를 안전하게 복사하여 보관하는 행위
- 장애, 삭제, 손상 등 비상상황에서 데이터를 복구하기 위한 대비
- 백업 파일은 따로 저장
⚽️ 복구 Restore
- 백업 파일을 이용해 데이터베이스를 특정 시점의 상태로 되돌리는 행위
- 실제 장애 발생 후 정상 상태로 복원
- 백업 파일을 읽어 DB에 적용
🎱 백업의 시점/범위 기반 종류
⚽️ 전체 백업 Full Backup
BACKUP DATABASE MyDB TO DISK = 'C:\Backup\MyDB_full.bak';
RESTORE DATABASE MyDB FROM DISK = 'C:\Backup\MyDB_full.bak' WITH NORECOVERY;
- 정의
- 데이터베이스 전체를 복사
- 데이터 + 시스템 메타데이터 + 로그 정보
- 복구 시
- 장단점
- 장점
- 복구 속도 빠름 (한 번에 복원)
- 사용/관리 직관적
- 단점
- 백업 파일 크기가 큼
- 백업 시간 오래 걸림
- 자주 수행 시 디스크 공간 낭비
- 사용 시기
- 주간 백업
- 기준 시점 설정 용도
- 야간/비업무 시간대에 수행
⚽️ 차등 배업 Differential Backup
BACKUP DATABASE MyDB TO DISK = 'C:\Backup\MyDB_diff.bak' WITH DIFFERENTIAL;
RESTORE DATABASE MyDB FROM DISK = 'C:\Backup\MyDB_diff.bak' WITH RECOVERY;
- 정의
- 가장 최근 전체 백업 이후 변경된 데이터만 백업
- 복구 시
- 장단점
- 장점
- 전체 백업보다 백업 속도 빠름
- 트랜잭션 로그 없이도 차등 백업을 수행한 시점까지 복구 가능
- 복구 과정이 간단
- 운영 환경이 단순할수록 적합 (로그 체인 관리 필요 X)
- 단점
- 시간이 지날수록 차등 백업 파일이 커짐 (변경 내용 누적)
- 복구에 두개의 백업 파일 필요 (전체 + 차등)
- 사용 시기
- 일일 백업
- 전체 백업은 부담, 변경 사항만 백업하고 싶을 때
- 서비스 가용성보다 복구 편의성이 더 중요한 시스템
- 백업 속도보다 복원 속도를 우선시하는 환경
- 중소 규모 서비스, 내부 시스템 등
⚽️ 트랜잭션 로그 백업 Transaction Log Backup
BACKUP LOG MyDB TO DISK = 'C:\Backup\MyDB_log.trn';
- 정의
- 전체/차등 백업 이후 발생한 모든 트랜잭션 로그를 백업
- 복구 모델이 Full 또는 Bulk-logged 여야함
- 장애 발성 전까지의 변경 로그 저장
- 복구 시
- 전체 백업 → (차등 백업) → 로그 백업 순차 적용
- 장단점
- 장점
- 시점 복구(Point-int-time Recovery) 가능
- 장애 발생 직전까지의 데이터 복구 가능
- 단점
- 백업 주기가 짧아야함 (ex. 5분, 30분)
- 복원 순서 복잠
- 사용 시기
- 실시간에 가까운 중요 데이터 보호
- 은행, 쇼핑몰 등 무중단 서비스
🎱 백업의 특수 목적 기반 종류
⚽️ 파일/파일 그룹 백업 File/Filegroup Backup
- 정의
- 전체 데이터베이스 중 특정 파일 또는 파일 그룹만 백업
- 대용량 DB에서 파티셔닝된 영역만 백업 복구
- 장단점
- 장점
- 특정 부분만 백업 가능 (효율적)
- 백업 속도 빠름
- 단점
- 복잡한 파일 그룹 구성 이해 필요
- 복원도 부분적으로 진행되어야 함
- 사용 시기
- 데이터베이스를 여러 파일 그룹으로 분리한 대용량 시스템
- 일부 파티션만 복구하고 싶을 때
⚽️ 복사 백업 Copy-only Backup
- 정의
- 기존 백업 체계에 영향을 주지 않는 임시용 전체 백업
- 운영 중인 DB를 테스트 환경으로 복원
- 장단점
- 장점
- 정기 백업 흐름에 영향 X
- 안전하게 테스트 가능
- 단점
- 백업 체계에 포함되지 않음 (복원 시 사용 순서 주의)
- 기존 전체/차등/로그 체인과 병용할 수 없음
- 사용 시기
- 테스트용, 임시 복원 시
- 정기 백업에 영향을 주지 않고 데이터 백업이 필요할 때
🎱 복구 모델
⚽️ 복구 모델 Recovery Model
- 데이터베이스의 트랜잭션 로그 관리 방식을 설정하는 옵션
⚽️ 종류
- 단순 Simple
- 전체 Full
- 로그 유지 → 로그 백업 가능
- 시점 복구 가능
- 대량 로그 Bulk-logged
- 대량 작업 중 로그 최소화 → 로그 백업 가능
- 단, 로그 백업을 이용한 정밀한 시점 복구 불가
- 트랜잭션 로그에 상세 정보를 남기지 않기 때문
🎱 백업 전략
⚽️ 백업 전략
- 시스템 장애나 데이터 손실 발생 시 데이터를 최대한 빠르게 복구하기 위해 사전에 구성해두는 백업 계획
⚽️ 고려 요소
- 백업 주기
- 백업 유형
- 보관 정책
- 복구 목표 시점 (RPO, Recovery Point Objective) → 데이터 관점
- 복구 목표 시간 (RTO, Recovery Time Objective) → 서비스 운영 관점
⚽️ 대표 예시
- 기업 내부 시스템
일요일: 전체 백업
월~토: 차등 백업
보관 기간: 전체 백업 4주, 차등 백업 1주
복구 모델: Simple 또는 Full
- 금융권/고가용성 시스템
일요일: 전체 백업
매일 자정: 차등 백업
30분마다: 트랜잭션 로그 백업
보관 정책: 전체/차등 백업 1주, 로그 백업 2일
복구 모델: Full
- 장점
- 초 단위 복구 가능
- 장애에도 데이터 손실 최소화
- 단점
- 대용량 DW/분석계 시스템
파티션/파일그룹 단위로 백업
매월: 전체 백업
평소: 파일 그룹 단위로 부분 백업
복구 모델: Simple + 일부 Full
보관 정책: 전체 백업 3개월, 파일/파일그룹 백업 1개월