본문으로 건너뛰기
데이터베이스 기초집LESSON 18

백업·복구·데이터 내보내기 기초

난이도초급 → 중급
예상 시간35분
선수지식이전 강의

18강. 백업·복구·데이터 내보내기 기초

1. 이번 강의에서 해결할 문제

백업 파일이 존재해도 복구 절차와 소요 시간을 확인하지 않았다면 복구 가능성을 보장할 수 없습니다. 게임 랭킹 DB를 논리 백업하고 별도의 연습 데이터베이스에 복원해 검증합니다.

2. 학습 목표

3. 핵심 개념

pg_dump는 한 데이터베이스의 일관된 논리 백업을 만들고 사용자 정의 형식 -Fcpg_restore에서 객체 선택과 복원 순서 제어를 지원합니다. pg_dumpall은 클러스터 전역 역할 같은 객체가 필요할 때 별도로 고려합니다. CSV는 교환·분석용이며 제약, 인덱스, 권한을 포함한 전체 백업이 아닙니다.

4. 단계별 예시

대상: game_ranking_dev를 새 game_ranking_restore_test로 복원

PowerShell · 백업
$stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
New-Item -ItemType Directory -Force .\backups
pg_dump -d game_ranking_dev -Fc -f ".\backups\game-ranking-$stamp.dump"
pg_restore --list ".\backups\game-ranking-$stamp.dump" | Select-Object -First 20
PowerShell · 격리된 복구 검증
createdb game_ranking_restore_test
pg_restore -d game_ranking_restore_test --exit-on-error ".\backups\game-ranking-$stamp.dump"
psql -d game_ranking_restore_test -c "SELECT count(*) FROM ranking.match_results;"
database/sql/18-export-ranking.sql
\copy (SELECT player_id, nickname, rating FROM ranking.players WHERE deleted_at IS NULL ORDER BY rating DESC) TO 'exports/ranking.csv' WITH (FORMAT csv, HEADER true)

5. 동작 원리

백업은 실행 중 DB에서 트랜잭션적으로 일관된 스냅샷을 읽습니다. 복구를 새 DB에 수행하면 원본을 덮어쓰지 않고 스키마·행 수·핵심 쿼리를 검증할 수 있습니다. 성공 여부, 시간, 파일 크기, checksum과 암호화·보관 위치를 기록해야 운영 절차가 됩니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

백업·복구·데이터 내보내기 기초 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“백업·복구·데이터 내보내기 기초” 작업 전 검토에서 채택해야 할 안전 기준은 무엇인가요?
  2. 문제 2‘CSV를 전체 백업으로 간주’ 실수를 판단할 때 “백업·복구·데이터 내보내기 기초” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. 백업·복구·데이터 내보내기 기초 미완료 상태