답변:
사용 mongodump
:
$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log to dump/log
log.errors to dump/log/errors.bson
713 objects
log.analytics to dump/log/analytics.bson
234810 objects
DATABASE: blog to dump/blog
blog.posts to dump/log/blog.posts.bson
59 objects
DATABASE: admin to dump/admin
출처 : http://www.mongodb.org/display/DOCS/Import+Export+Tools
백업을 위해 데이터베이스를 덤프하려면 터미널에서이 명령을 호출하십시오.
mongodump --db database_name --collection collection_name
백업 파일을 mongodb로 가져 오려면 터미널에서 다음 명령을 사용할 수 있습니다
mongorestore --db database_name path_to_bson_file
gzip
하나의 컬렉션을 백업하고 즉시 백업을 압축하는 데 사용할 수도 있습니다 .
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
또는 파일 이름에 날짜가있는 경우 :
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
업데이트 :
데이터베이스의 모든 컬렉션을 날짜 폴더에 백업합니다. 파일이 압축되어 있습니다 :
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
또는 단일 아카이브의 경우 :
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
또는 mongodb가 docker 내에서 실행될 때 :
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump라는 유틸리티가 있습니다. mongo 명령 행에서 다음을 입력 할 수 있습니다.
>./mongodump
위의 내용은 로컬 호스트의 모든 데이터베이스 덤프를 만듭니다. 단일 콜렉션 덤프를 사용하려면 다음을 수행하십시오.
./mongodump --db blog --collection posts
살펴보기 : mongodump
Mongo가 설치된 폴더 (내 경우 : C : \ Program Files \ MongoDB \ Server \ 3.4 \ bin)에서 관리자 권한으로 명령 프롬프트를 열어야합니다. 전체 데이터베이스를 덤프하려면 다음을 사용하십시오.
mongodump --db database_name
또한 특정 컬렉션 만 덤프하거나 특정 컬렉션을 제외한 모든 컬렉션을 덤프 할 가능성이 있습니다.
하나의 콜렉션 만 덤프하려는 경우 (예 : 사용자) :
mongodump --db database_name --collection users
사용자를 제외한 모든 콜렉션을 덤프하려는 경우 :
mongodump --db database_name --excludeCollection=users
덤프를 아카이브 파일로 출력 할 수도 있습니다.
mongodump --archive=test.archive --db database_name
타이밍이있는 Mongodb 백업 / 복원
지원:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
데이터베이스 이름에 대한 인수
--out
출력 경로에 대한 인수
복원:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
복원 전 데이터 삭제를위한 인수
타이밍:
백업 백업에 crontab 을 사용할 수 있습니다 .
sudo crontab -e
편집기 (예 : nano)로 열립니다
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
매일 오전 03:03에 백업
MongoDB 데이터베이스 크기에 따라 백업이 너무 많은 디스크 공간이 곧 부족할 수 있습니다. 따라서 이전 백업을 정기적으로 정리하거나 압축하는 것이 좋습니다. 예를 들어, 7 일 이전의 모든 백업을 삭제하려면 다음 bash 명령을 사용할 수 있습니다.
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
7 일이 지난 백업을 모두 삭제
행운을 빕니다.
다음 명령은 원격 서버에 연결하여 데이터베이스를 덤프합니다.
<> 옵션 매개 변수는 필요한 경우 사용합니다
이름을 가진 생성 된 폴더로 출력
mongodump --host --port --username --db --ssl --password --out _date + "% Y- % m- % d"
cmd->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
아래 명령은 mongo db 덤프를 수행합니다.
mongodump -d -o
Windows에서 : c : \ mongodump가 덤프 파일 위치 인 경우 시도하십시오. 메타 데이터는 json으로 작성되고 bson 형식으로 백업됩니다.
C : \ MongoDB \ bin> mongodump -d -oc : \ mongodump
몽고 덤프 및 URI를 로컬로 복원
mongodump --uri "mongodb : // USERNAME : PASSWORD @ IP_OR_URL : PORT / DB_NAME"--collection COLLECTION_NAME -o LOCAL_URL
--colletion COLLECTION_NAME을 지정하지 않으면 전체 DB가 덤프됩니다.
bin db 명령을 사용하여 특정 db에 대해 mongodb 백업을 수행하고 7 일 이전 백업을 삭제하십시오.
#!/bin/bash
MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
mongodump -h 호스트 이름 -u dbusername -p dbpassword --db dbname --port portnumber --out / path / folder
mongodump -h 호스트 이름 -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder.gz
mongodump
플래그가없는 싱글 하나만 있으면 덤프 폴더 를 얻을 수 있습니다