-
Notifications
You must be signed in to change notification settings - Fork 18
데이터 백업
seapy edited this page Sep 26, 2014
·
1 revision
소중한 데이터가 없어지지 않도록 백업은 필수입니다.
레일스 프로젝트에서 일반적으로 백업해야할 데이터는 2개인데 하나는 첨부파일이 저장되는 public/uploads
이고 다른 하나는 DB 데이터입니다.
rorla는 Docker를 사용하는데 이경우 이 2가지 데이터를 백업하는 방법에 대해 이야기합니다.
Docker는 중요한 데이터는 볼륨컨테이너로 별도로 분리시키는 방법을 사용하는데요. 이를 이용해 해당 볼륨 컨테이너를 사용하는 새로운 컨테이너를 실행하고 여기서 백업합니다.
rorla_mysql_data
볼륨 컨테이너를 사용하는 새로운 컨테이너를 생성했고 호스트의 /root/backup
폴더를 새로운 컨테이너의 /backup
폴더와 연결했습니다. 그리고 tar
명령어를 이용해 /var/lib/mysql
폴더를 백업합니다.
$ docker run --volumes-from rorla_mysql_data -v /root/backup:/backup busybox tar cf /backup/rorla_mysql.tar /var/lib/mysql
이 명령어의 실행결과로 호스트 컴퓨터의 /root/backup
폴더에는 rorla_mysql.tar
파일이 생성됩니다.
Docker 컨테이너 백업에 대한 더 자세한 정보는 다음 정보를 참고하세요.
- rorla 서버이전
- Managing Data in Containers
현재 운영중인 rorla 서비스를 백업하기 위해 사용한 스크립트 파일입니다.
#!/bin/sh
BACKUP_DIR=/backup/`date +%Y`/`date +%m`
mkdir -p /root$BACKUP_DIR
# MySQL 데이터 백업
MYSQL_BACKUP=$BACKUP_DIR/rorla_mysql_`date +%Y%m%d`.tar
docker run --volumes-from rorla_mysql_data -v /root/backup:/backup busybox tar cf $MYSQL_BACKUP /var/lib/mysql
# upload 폴더 백업
RAILS_UPLOAD_BACKUP=$BACKUP_DIR/rorla_uploads_`date +%Y%m%d`.tar
docker run --volumes-from rorla_uploads -v /root/backup:/backup busybox tar cf $RAILS_UPLOAD_BACKUP /app/public/uploads
# ncloud file storage 에 데이터 전송
NCFS_BACKUP_DIR=ncfs://rorla_backup$BACKUP_DIR
/root/ncloud_fscmd/ncfscmd.sh put /root$MYSQL_BACKUP $NCFS_BACKUP_DIR
/root/ncloud_fscmd/ncfscmd.sh put /root$RAILS_UPLOAD_BACKUP $NCFS_BACKUP_DIR