Skip to main content

#3. DB 초기화 & 데이터 보존 트러블슈팅


⚠️ 문제
  • 로컬에서 BookStack API 기반 개인 위키 프로젝트((Apache + PHP + MySQL) 진행 중 DB 초기화 발생
  • 503 오류 발생으로 프로젝트 수정하던 중 기존에 업로드한 위키 문서 데이터 전부 초기화됨


🔍 원인 추정
  • MySQL 데이터 저장 경로가 htdocs 외부에 없어 백업이 어려움
  • 서버 재시작 혹은 캐시 삭제 과정에서 데이터 손실
  • 영구 저장소 설정(volume, data 디렉토리) 미비


⚡ 해결 방법
  • 해결: AWS Lightsail로 이전, Docker + Volume 구성으로 데이터 보존 확보
  • 현재: docker-compose up -d로 설정 수정 가능, 데이터는 안전하게 volume: 에 보관됨
  • 추가 계획:
    저장 공간 60GB 초과시 블럭 스토리지 추가하거나 백업 시스템 구축 예정
    향후 mysqldump 또는 자동 백업 스크립트 도입 고려
  • 플랫폼: AWS Lightsail $10 플랜 (2GB RAM, vCPU 1, SSD 60GB)


📂 구조 개요

📁 DainWiki/
├── 📁 bookstack/        # BookStack 앱 설정, 이미지
├── 📁 bookstack_db/     # MariaDB 데이터 (위키 포스트, 계정 등)
├── 📄 docker-compose.yml
└── 📄 .env


✅ yml. 파일 데이터 저장 위치

bookstack:
  volumes:
    - ./bookstack_data:/config

bookstack_db:
  volumes:
    - ./db_data:/var/lib/mysql

데이터는 바인드 마운트(bind mount)방식으로 저장된다.

  • 로컬 경로 (./bookstack_data)를 컨테이너 안 디렉토리(/config)에 연결
  • 실제 데이터는 호스트(=Lightsail 인스턴스) 디스크에 저장하는 방식이다.
  • 즉, 루트 디스크(/) 안에 ~/DainWiki/bookstack_data, db_data 등(예: /home/ubuntu/DainWiki/bookstack_data)


✅ 실제 호스트 저장 경로 보기

docker inspect bookstack
  • 여기서 Mounts 항목 참고


✅ 남은 공간 확인

df -h

image.png