백업

$ mongodump [옵션]

백업은 현재 실행중인 mongod 서버에 접속해서 그대로 덤프 뜨는 행위이므로, 동작 중인 MongoDB 서버가 있어야 한다.

백업 옵션

--db [DB 이름]
--collection [컬렉션 이름]
--out [내보낼 디렉토리 경로]
--host [MongoDB 호스트]
--port [MongoDB 포트]
--username [MongoDB 사용자 ID]
--password [MongoDB 사용자 PW]

백업 예시

  • localhost 로 접속 가능한 mongodb의 mydb DB를 /mnt/hdd/mongo_backup/mydb-11:57:30/ 디렉토리에 백업 (시간은 저장된 시간 기준임!)
$ sudo mongodump --db mydb --out /mnt/hdd/mongo_backup/mydb-`date +"%H:%M:%S"`
  • 192.168.0.148:7708 로 접속 가능한 mongodb의 mydb DB에 templates 컬렉션을 /mnt/hdd/mongo_backup/mydb/templates 디렉토리에 백업
$ sudo mongodump --host 192.168.0.148 --port 7708 --db mydb --collection templates --out /mnt/hdd/mongo_backup/mydb/templates
  • 192.168.0.149:27017 로 접속 가능한 mongodb의 mydb DB를 ID: myID, PW: myP@ssw0rd 로 /mnt/hdd/mongo_backup/mydb 디렉토리에 백업
$ sudo mongodump --host 192.168.0.149 --db mydb --username myID --password myP@ssw0rd /mnt/hdd/mongo_backup/mydb

복원

$ mongorestore [옵션] [백업된 디렉토리 경로]

복원 옵션

--host [MongoDB 호스트]
--port [MongoDB 포트]
--username [MongoDB 사용자 ID]
--password [MongoDB 사용자 PW]

복원 예시

  • localhost 에서 동작 중인 mongod 에다가, ./mydb-11:57:30 디렉토리를 복원하는 경우
$ sudo mongorestore ./mydb-11:57:30
  • 10.240.0.6:8811 에서 동작 중인 mongod 에다가, /home/ubuntu/mydb 디렉토리를 복원하는 경우
$ sudo mongorestore --host 10.240.0.6 --port 8811 /home/ubuntu/mydb

그 외에 추가적으로 oplog 처리하는 옵션이 있는데, 자세한 건 문서를 참조하면 된다. :)