データベースの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

gzip1つのコレクションのバックアップを取り、その場でバックアップを圧縮するためにも使用できます。

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

またはファイル名に日付が含まれています:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz

更新:
データベースのすべてのコレクションを日付フォルダーにバックアップします。ファイルはgzip形式で圧縮されています。

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 file'を
試した

2
typo: "-db" => "--db"
Vivien

7
バージョン3.2以降でmongodumpは、次の--gzipオプションを使用できます。mongodump_manpageおよび同じオプションのmongorestore
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

また、特定のコレクションのみをダンプしたり、特定のコレクション以外のすべてをダンプしたりすることもできます。

1つのコレクションのみ(たとえばユーザー)をダンプする場合:

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

エディターで開く(eg nano)

3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`

毎日03:03 AMにバックアップ

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

次のコマンドは、リモートサーバーに接続してデータベースをダンプします。

<>オプションのパラメーターは、必要に応じて使用します

  • host-ホスト名ポート
  • リスニングポートのユーザー名
  • 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

MongoダンプとURIを使用してローカルに復元

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

--colletion COLLECTION_NAMEを指定しない場合、DB全体がダンプされます。


0

特定のdbのmongodbバックアップを取得し、bin shコマンドを使用して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

Windowsの場合は「パス」を使用します。それ以外の場合、エラーは次のようになります。 位置引数は許可されていません


-4

mongodump -hホスト名-u dbusername -p dbpassword --db dbname --portポート番号--out / path / folder

mongodump -hホスト名-u dbusername -p dbpassword --db dbname --portポート番号--out /path/folder.gz


1. mongodump-仕様に関する入力が必要なmongoダンプを作成するコマンドです。2. -hは、mongodbのホスト名を表します。3. -uは、mongodbのユーザー名を表します。4. -pはパスワードを表します。5. --dbは、ダンプを取る必要があるデータベース名を表します。6. --portは、mongoが実行しているポートを表します。7. --outは、ダンプの宛先を名前で表します。
Anjankumar HN 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.