MongoDB에서는 BackUp과 Restore 명령어를 지원한다.
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 명덤프해놓은 데이터를 DB로 복구하는 명령어
$ mongostore --host 127.0.0.1 --port 27017 --drop user --db user $HOME/back/mongodb/user
--drop
: 복구 시 drop 시킬 DB명--db
: 복구할 DB 명linux의 cron 서비스를 이용해서 매일 자정에 mongodump를 뜨고 그 파일을 압축해서 백업용 스토리지로 전송하는 스크립트를 짰다. 내용은 다음과 같다.
# 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
$ sudo crontab -e
0 0 * * * sh mongo_backup.sh &>> /var/log/mongo_backup.log