백업은 매일 돌고 있었는데, 정작 복구해 보니 안 됐습니다

2026-05-20 · 서버백업운영 · WavePix 운영자 (의료기관 3곳 인프라 전담)

본 글은 정보 제공 목적이며, 광고/제휴 링크가 포함될 수 있습니다.

병원 홈페이지 3곳을 운영하면서 자동 백업은 일찌감치 설정해 뒀습니다. 매일 새벽 cron이 돌고 백업 파일도 쌓이고 있었으니 안심하고 있었는데, 실제로 복구를 테스트해 보니 생각과 달랐습니다.

자동 백업과 복구 테스트는 다른 문제입니다

백업 파일이 있어도 복구 절차를 실제로 돌려본 적 없다면 유사시 당황하게 됩니다. 저는 DB 복원 과정에서 문자셋 불일치 오류를 처음으로 확인했습니다.

# mysqldump 백업
mysqldump -u [DB유저] -p [DB명] \
  --default-character-set=utf8mb4 > backup_$(date +%Y%m%d).sql

# 복원 테스트 (별도 테스트 DB에 먼저)
mysql -u [DB유저] -p [테스트DB명] < backup_20260520.sql

복원 시 wp-config.php의 DB 이름과 경로가 테스트 환경과 다르면 사이트가 뜨지 않습니다. 복구 절차서에 이 항목을 명시해 두세요.

파일 백업은 DB와 분리해서 저장하세요

DB 백업과 uploads 디렉터리 압축 백업을 같은 서버에만 두면, 서버 장애 시 둘 다 날아갑니다. 외부 저장소 또는 별도 서버로 복사하는 단계를 추가하세요.

# uploads 압축 백업
tar -czf uploads_$(date +%Y%m%d).tar.gz \
  /var/www/[서버도메인]/wp-content/uploads

# 외부 서버로 rsync 전송 (예시)
rsync -az backup_*.sql uploads_*.tar.gz [외부서버IP]:/backup/[병원도메인]/

복구 테스트를 분기에 한 번 실제로 돌려보세요

테스트 환경을 별도로 만들기 어렵다면, 스테이징 서브도메인에 복원해 사이트가 정상 뜨는지만 확인해도 충분합니다. 확인 후 즉시 삭제하면 됩니다.

☐ DB 백업 파일 최신 날짜 확인 (cron 정상 작동 여부) ☐ uploads 디렉터리 파일 백업 별도 존재 여부 ☐ 로컬 외 외부 저장소 복사 여부 ☐ 복구 테스트 환경(테스트DB 또는 스테이징) 보유 여부 ☐ 복원 시 DB 문자셋(utf8mb4) 일치 여부 확인 ☐ wp-config.php DB 이름·경로 복구 절차서 기록 여부 ☐ 분기 1회 실제 복구 테스트 수행 여부

백업 파일이 있다는 사실과 복구할 수 있다는 사실은 다릅니다. 비슷한 경험이 있으신 분들, 또는 복구 테스트 주기나 방법을 어떻게 관리하고 계신지 댓글로 알려주세요!