Skip to content

DB 접속 및 백업 방법

재우 edited this page Sep 10, 2024 · 3 revisions

환경

  • DB 서버에 SSH 접속이 가능해야 합니다.

접속

VSCode

VSCode를 통한 EC2 인스턴스 SSH 연결 방법

터미널

터미널을 통한 EC2 인스턴스 SSH 연결 방법

백업

  • ~/zap-backup 경로에 backup.sh 파일을 작성해놓았습니다. 구체적인 동작 방식은 해당 파일에서 확인 바랍니다.
  • 다음의 명령어를 실행합니다.
$ bash ~/zap-backup/backup.sh

다음과 같이 DB 전체 백업 파일이 생성됩니다.

Screenshot 2024-09-10 at 12 10 13 PM

백업 파일 적용

1. 도커 설정 확인

  • compose.yml 파일에 다음의 MySQL 컨테이너에 경로 대해 볼륨 설정이 되어 있는지 확인합니다.
  • 현재 코드잽은 다음과 같이 볼륨 설정이 되어 있습니다.
volumes:
  - ./data:/var/lib/mysql
  - ./config:/etc/mysql/conf.d
  - ./initdb.d:/docker-entrypoint-initdb.d

2. 백업 파일 적용

  1. 실행중인 MySQL 컨테이너를 종료합니다.
$ docker compose down code-zap
  1. /home/zap/data 디렉토리를 삭제합니다.
$ sudo rm -rf /home/zap/data
  1. 백업 파일을 /home/zap/initdb.d에 위치시킵니다.

  2. Docker Compose를 사용해 도커 컨테이너를 실행합니다.

$ cd ~/zap
$ docker compose up -d

🚨 중요

  • 도커가 MySQL 컨테이너를 실행할 때, /docker-entrypoint-initdb.d 경로에 위치한 .sql 파일을 알파벳순으로 실행합니다.
  • 단, 컨테이너에 데이터베이스가 이미 존재한다면 즉 /var/lib/mysql 경로에 데이터가 존재한다면 compose의 환경변수(environment)와 initdb 경로의 파일들은 무시됩니다.

🚨 주의점

  • DB 전체를 백업하기 때문에, DB에 저장된 데이터가 많을수록 백업 파일의 용량도 커집니다.
  • 그러므로 백업을 할 때, 인스턴스의 저장공간이 충분한지 확인하길 권장합니다.
  • 또한, 백업파일을 어떤 주기로 얼마나 보관하고 삭제할지에 대한 정책 결정이 필요합니다.

⚡️ 코드zap

프로젝트

규칙 및 정책

공통

백엔드

프론트엔드

매뉴얼

백엔드

기술 문서

백엔드

프론트엔드


Clone this wiki locally