데이터베이스 기초집LESSON 18
백업·복구·데이터 내보내기 기초
난이도초급 → 중급
예상 시간35분
선수지식이전 강의
18강. 백업·복구·데이터 내보내기 기초
1. 이번 강의에서 해결할 문제
백업 파일이 존재해도 복구 절차와 소요 시간을 확인하지 않았다면 복구 가능성을 보장할 수 없습니다. 게임 랭킹 DB를 논리 백업하고 별도의 연습 데이터베이스에 복원해 검증합니다.
2. 학습 목표
3. 핵심 개념
pg_dump는 한 데이터베이스의 일관된 논리 백업을 만들고 사용자 정의 형식 -Fc는 pg_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백업·복구·데이터 내보내기 기초 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
18강. 백업·복구·데이터 내보내기 기초 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.