sql >> データベース >  >> NoSQL >> MongoDB

mongorestoreを使用してMongoDBデータベースを復元する

    mongodumpを使用してデータベースをバックアップした場合 ユーティリティ、mongorestoreを使用して復元できます ユーティリティ。

    mongorestore ユーティリティは、mongodumpによって作成されたバイナリデータベースダンプからデータをロードします またはmongodへの標準入力 またはmongos インスタンス。

    MongoDBデータベースツールを確認する

    mongorestore ユーティリティは、MongoDBデータベースツールパッケージの一部です。 MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。

    MongoDBデータベースツール/mongorestoreを使用しているかどうかわからない場合 インストールされています。ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。

    mongorestore --version

    お持ちでない場合は、MongoDB Webサイトにあるインストール手順を使用して、システムにインストールできます。

    コマンドを実行する場所

    mongorestoreを実行する必要があります システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。

    mongoから実行しないでください シェル。

    ディレクトリからすべてのデータベースを復元する

    次のコマンドは、dump/にバックアップされたすべてのデータベースを復元します。 ディレクトリ:

    mongorestore dump/

    この例では、データベースをデフォルトのポート27017で実行されているローカルインスタンスに復元します。ホスト、ポート、認証情報などを提供しなかったため、これはわかっています。

    特定のデータベースを復元する

    --nsIncludeを使用できます 復元するデータベースを指定するパラメータ。

    例:

    mongorestore --nsInclude="PetHotel.*" dump/

    この場合、PetHotelを復元しました データベース。アスタリスクのワイルドカード(*を使用したため、すべてのコレクションを復元しました )すべてのコレクションを指定します。

    特定のコレクションを復元する

    --nsIncludeを使用することもできます 復元するコレクションを指定するパラメータ。

    例:

    mongorestore --nsInclude="PetHotel.pets" dump/

    この例では、PetHotelからペットコレクションを復元します データベース。データベースが存在しない場合は、単一のコレクション(pets)で作成されます 。

    この例は、アスタリスクのワイルドカード(*)を使用する代わりに、前の例とほとんど同じです。 )すべてのコレクションを指定するために、復元するコレクションを明示的に指定しました。

    コレクションの名前を変更する

    --nsFromを使用できます および--nsTo コレクションの新しい名前を指定するためのパラメーター。

    例:

    mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

    これにより、petsの名前が変更されます pets2へのコレクション 。

    上記のコードは、dump/内の他のすべてのデータベースとコレクションも復元することに注意してください。 ディレクトリ。唯一の違いは、pets コレクションはpets2として復元されます 。

    単一のコレクションのみを復元する(そしてプロセスで名前を変更する)場合は、--nsIncludeを使用します。 パラメータ。

    例:

    mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

    データベースの名前を変更する

    同じ概念を使用して、データベースの名前を変更できます。 --nsFromを使用するだけです および--nsTo データベースの新しい名前を指定するためのパラメータ。

    例:

    mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

    この場合、PetHotelの名前を変更しました PetHouseへのデータベース 。

    --nsIncludeに注意してください パラメータはnewを指定します データベース名。また、アスタリスクのワイルドカード(*)を使用します )そのデータベース内のすべてのコレクションを復元するため。

    コレクションを除く

    --nsExcludeを使用できます 除外するコレクションを指定するパラメータ 復元プロセスから。

    例:

    mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

    この例では、PetHotel内のすべてのコレクションを復元します dogsを除くデータベース コレクション。

    --nsExcludeを使用できます 復元プロセスから複数のコレクションを除外するために複数回。

    例:

    mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

    アクセス制御/認証

    前の例は、デフォルトのポートを使用してローカルマシンで実行されました。これは、mongodumpを実行できたことを意味します --hostなどを指定せずに 、--port--username 、など。

    これらのパラメータを使用してhomerとして認証する例を次に示します。 :

    mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

    --passwordを使用することもできます パラメータですが、しませんでした。 --userを渡すと ただし、--passwordではありません 、パスワードの入力を求められます。

    圧縮ファイルからの復元

    --gzipを使用できます mongodump --gzipによって作成された圧縮ファイルまたはデータストリームから復元するパラメータ 。

    例:

    mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

    クワイエットモード

    --quietを使用できます ターミナルまたはコマンドプロンプトウィンドウの出力を制限するパラメータ。

    mongorestore --quiet

    これを使用しないと、復元されたビューやコレクションなどの大きなリストが表示される可能性があります。

    詳細モード

    反対に、--verboseを使用できます または-v 増加するパラメータ ターミナルまたはコマンドプロンプトウィンドウの出力。

    mongorestore --verbose

    -vを繰り返すことで、冗長性を高めることができます 複数回形成します。

    例:

    mongorestore -vvvv

    mongodumpに関する詳細情報

    mongorestore ユーティリティは他にも多くの有用なパラメータを受け入れます。また、バックアップおよびリカバリ戦略の一部として使用する場合は、考慮すべきさまざまな要素があります。

    mongorestoreをご覧ください 詳細については、MongoDBWebサイトのドキュメントを参照してください。

    その他のオプション

    mongodump およびmongorestore 小規模なMongoDBデプロイメントをバックアップおよび復元するためのシンプルで効率的なツールですが、大規模なシステムのバックアップをキャプチャするのには理想的ではありません。

    MongoDBデータベースをバックアップおよび復元する他の方法については、MongoDBWebサイトのMongoDBバックアップ方法を参照してください。


    1. Hadoop MapReduceのInputSplitとは何ですか?

    2. Mongoose(またはMongoDB)のTransientTransactionErrorとは何ですか?

    3. CompositeServerSelectorを使用してサーバーを30000ms選択した後、タイムアウトが発生しました

    4. Laravel 4:未定義のメソッドRedis ::connection()の呼び出し