데이터베이스의 MongoDB 덤프를 작성하는 방법


답변:


82

사용 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


4
단일 압축 파일로 결과를 저장하려면 unix.stackexchange.com/questions/93139/…
Donal Lafferty의

데이터베이스가 저장 될 mongodb 서버에서?
우주 지구

157

백업을 위해 데이터베이스를 덤프하려면 터미널에서이 명령을 호출하십시오.

mongodump --db database_name --collection collection_name

백업 파일을 mongodb로 가져 오려면 터미널에서 다음 명령을 사용할 수 있습니다

mongorestore --db database_name path_to_bson_file

2
복원을위한 metadata.json의 중요성은 무엇입니까?
Nabin

103

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

1
말한다 : 오류 : 파일로 무엇을 해야할지 모르겠다! Gunizpped하고`mongorestore --db db_name 'gunzipped 파일'을 시도
amitchhajer

2
오타 : "-db"=> "--db"
Vivien

7
버전 3.2 mongodump이상 --gzip에서는 다음 과 같은 옵션을 사용할 수 있습니다 . mongodump_manpagemongorestore에
Boop


1
@ Pyrejkee, 의견 대신 이러한 것들에 대해 새로운 질문을하는 것이 좋습니다. (Windows의 날짜는 매우 다릅니다)
r03

68

이 명령은 주어진 데이터베이스를 json 및 bson 형식으로 덤프합니다.

mongodump -d <database name> -o <target directory>

14

mongodump라는 유틸리티가 있습니다. mongo 명령 행에서 다음을 입력 할 수 있습니다.

>./mongodump

위의 내용은 로컬 호스트의 모든 데이터베이스 덤프를 만듭니다. 단일 콜렉션 덤프를 사용하려면 다음을 수행하십시오.

./mongodump --db blog --collection posts

살펴보기 : mongodump


11

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

10

타이밍이있는 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 일이 지난 백업을 모두 삭제

행운을 빕니다.

심판 : https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04


8

다음 명령으로 데이터베이스를 덤프하고 복원 할 수 있습니다

mongodb  -d <Your_db_name> -o <path of your folder>

예를 들어 내 데이터베이스 이름이 추적 중입니다. 덤프 폴더에 덤프가 있습니다.

mongodb  -d tracking -o dump

덤프 복원

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking

8

다음 명령은 원격 서버에 연결하여 데이터베이스를 덤프합니다.

<> 옵션 매개 변수는 필요한 경우 사용합니다

  • 호스트-호스트 이름 포트
  • 청취 포트 사용자 이름
  • db db의 사용자 이름
  • DB 이름 SSL
  • 안전한 연결
  • 이름을 가진 생성 된 폴더로 출력

    mongodump --host --port --username --db --ssl --password --out _date + "% Y- % m- % d"


위의 제안 된 쿼리 오류 구문 분석 명령 행 옵션 : 알 수없는 옵션 "ssl"을 실행 한 후이 오류가 발생하는 경우 --ssl을 제거한 후 위의 쿼리를 실행하십시오. 그것은 나를 위해 일했다. 감사합니다.
Anurag_BEHS


2

로컬 시스템의 데이터베이스 인 경우 그런 다음 아래 명령을 입력하십시오. Linux 터미널 용

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

데이터베이스 사용자와 비밀번호가 있으면 아래 코드를 작성하십시오.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

이것은 내 Linux 터미널에서 매우 잘 작동했습니다.


1

아래 명령은 mongo db 덤프를 수행합니다.

mongodump -d -o

Windows에서 : c : \ mongodump가 덤프 파일 위치 인 경우 시도하십시오. 메타 데이터는 json으로 작성되고 bson 형식으로 백업됩니다.

C : \ MongoDB \ bin> mongodump -d -oc : \ mongodump


1

수출

mongodump -d <database name> <backup-folder>

수입

mongorestore -d <database name> <backup-folder>

0

또는 Windows에서 백업 스크립트를 만들 수 있습니다. % PATH %에 Winrar를 추가해야합니다.

bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"

#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!

0

몽고 덤프 및 URI를 로컬로 복원

mongodump --uri "mongodb : // USERNAME : PASSWORD @ IP_OR_URL : PORT / DB_NAME"--collection COLLECTION_NAME -o LOCAL_URL

--colletion COLLECTION_NAME을 지정하지 않으면 전체 DB가 덤프됩니다.


0

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

0
 Use -v to see progress of backup data
    mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData

 you can use it for restore also
    mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname

with multile v like -vvvv you will get more information

0

창 에는 "경로" 를 사용하십시오 . 그렇지 않으면 다음과 같은 오류가 발생합니다. 위치 인수가 허용되지 않습니다.


-4

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


1. mongodump-사양에 대한 입력이 필요한 몽고 덤프를 만드는 명령입니다. 2. -h는 mongodb 호스트 이름을 나타냅니다. 3. -u는 mongodb 사용자 이름을 나타냅니다. -p는 암호를 나타냅니다. --db는 덤프해야 할 데이터베이스 이름을 나타냅니다. 6. --port는 몽고가 실행중인 포트를 나타냅니다. 7. --out은 덤프 대상 이름을 나타냅니다.
Anjankumar HN 2016
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.