[MongoDB] BackUp & Restore

배채윤·2020년 11월 25일
0

MongoDB에서는 BackUp과 Restore 명령어를 지원한다.

BackUp

mongodump

MongoDB 데이터를 bson 형태로 dump 하는 명령어

$ mongodump  --out $HOME/backup/mongodb --host 127.0.0.1 --port 27017

옵션

  • --out, -o : dump 위치를 지정할 수 있는 옵션
  • --host, -h : db의 host 지정
  • --port : db port 지정
  • -u : 계정명
  • -p : 계정 비번
  • --db, -d : 백업하려는 DB 명
  • --collection, -c : 백업하려는 Collection 명

Restore

mongostore

덤프해놓은 데이터를 DB로 복구하는 명령어

$ mongostore --host 127.0.0.1 --port 27017 --drop user --db user $HOME/back/mongodb/user

옵션

  • --drop : 복구 시 drop 시킬 DB명
  • --db : 복구할 DB 명

Daily Backup

linux의 cron 서비스를 이용해서 매일 자정에 mongodump를 뜨고 그 파일을 압축해서 백업용 스토리지로 전송하는 스크립트를 짰다. 내용은 다음과 같다.

  • mongo_backup.sh
# DB dump
now=`date "%Y%m%d%H%M%S"`
deldate=`date -d "-2 Day" "%Y%m%d"`
mongodump --out /tmp/mongo-backup-$now

# archive & delete
tar -zcf /tmp/mongodb/mongo-backup-$now.tar.gz /tmp/mongo-backup-$now
rm -rf /tmp/mongo-backup-$now
rm -rf /tmp/mongodb/mongo-backup-$deldate* # 2일 전 백업 데이터는 삭제

# rsync to storage
rsync -av -delete /tmp/mongodb $hostname:$directory_pwd
  • cron : 매일 자정 백업 스크립트를 실행하고 해당 로그를 저장한다.
$ sudo crontab -e
0 0 * * * sh mongo_backup.sh &>> /var/log/mongo_backup.log
profile
새로운 기술을 테스트하고 적용해보는 걸 좋아하는 서버 개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN