[DB/SQL] 백업과 복구 기초

songeunm·2025년 6월 8일

DB & SQL

목록 보기
23/27

🎱 백업과 복구

⚽️ 백업 Backup

  • 데이터베이스의 현재 상태를 안전하게 복사하여 보관하는 행위
  • 장애, 삭제, 손상 등 비상상황에서 데이터를 복구하기 위한 대비
  • 백업 파일은 따로 저장

⚽️ 복구 Restore

  • 백업 파일을 이용해 데이터베이스를 특정 시점의 상태로 되돌리는 행위
  • 실제 장애 발생 후 정상 상태로 복원
  • 백업 파일을 읽어 DB에 적용

🎱 백업의 시점/범위 기반 종류

⚽️ 전체 백업 Full Backup

-- 전체 백업
BACKUP DATABASE MyDB TO DISK = 'C:\Backup\MyDB_full.bak';

-- 전체 백업 복원
-- WITH NO RECOVERY: 아직 복원이 더 남았다는 뜻 (차등/로그 복원 예정)
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;

-- 차등 백업 복원
-- WITH RECOVERY: 복원을 마침
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개월

    • 장점
      • 특정 파티션만 백업 가능
      • 용량 효율적
    • 단점
      • 복원 시 구조 이해가 필요, 복잡
profile
데굴데굴 구르는 개발자 지망생

0개의 댓글