Ubuntu14.04でMongoDBバックアップを作成して使用する方法

前書き ##

今日の多くの最新のWebアプリケーション開発者は、プロジェクトでNoSQLデータベースを使用することを選択しており、通常、[MongoDB](https://cloud.tencent.com/product/mongodb?from=10680)が最初の選択肢です。実稼働シナリオでMongoDBを使用する場合、データの損失を防ぐために定期的にバックアップを作成することが非常に重要です。幸い、MongoDBには、バックアップを作成して使用するためのシンプルなコマンドラインツールが用意されています。このチュートリアルでは、これらのツールの使用方法を説明します。

このチュートリアルでは、既存のデータベースを改ざんせずにバックアップがどのように機能するかを理解するために、最初に新しいデータベースを作成し、それに少量のデータを追加する方法について説明します。次に、データベースのバックアップを作成し、データベースを削除し、バックアップを使用して復元します。

準備 ##

続行するには、次のものが必要です。

ステップ1-サンプルデータベースを作成する

空のデータベースのバックアップを作成することはあまり役に立ちません。そのため、このステップでは、サンプルデータベースを作成し、それにいくつかのデータを追加します。

MongoDBインスタンスを操作する最も簡単な方法は、 mongoシェルを使用することです。 mongoコマンドを使用して開きます。

mongo

MongoDBプロンプトを取得したら、ヘルパー useを使用して、** myDatabase **という名前の新しいデータベースを作成します。

use myDatabase
output
switched to db myDatabase

MongoDBデータベース内のすべてのデータは、コレクションに属している必要があります。ただし、コレクションを明示的に作成する必要はありません。 insertメソッドを使用して存在しないコレクションを書き込む場合、コレクションはデータを書き込む前に自動的に作成されます。

次のコードを使用して、 insertメソッドを使用して** MyCollection **という名前のコレクションに3つの小さなドキュメントを追加できます。

db.myCollection.insert([{'name':'Alice','age':30},{'name':'Bill','age':25},{'name':'Bob','age':35}]);

挿入が成功すると、次のメッセージが表示されます。

BulkWriteResult({"writeErrors":[],"writeConcernErrors":[],"nInserted":3,"nUpserted":0,"nMatched":0,"nModified":0,"nRemoved":0,"upserted":[]})

ステップ2-データベースのサイズを確認する

データを含むデータベースができたので、そのバックアップを作成できます。ただし、データベースが大きい場合はバックアップが大きくなり、ストレージ容量が不足してサーバーの速度が低下したりクラッシュしたりするリスクを回避するために、バックアップを作成する前にデータベースのサイズを確認する必要があります。

statsメソッドを使用し、 dataSizeキーの値をチェックして、データベースのサイズ(バイト単位)を知ることができます。

db.stats().dataSize;

現在のデータベースの場合、 dataSizeの値は小さい数値になります。

output
592

dataSizeの値は、バックアップサイズの概算にすぎないことに注意してください。

ステップ3-バックアップを作成する

バックアップを作成するには、 mongodumpと呼ばれるコマンドラインユーティリティを使用できます。デフォルトでは、 mongodumpはMongoDBインスタンスに存在するすべてのデータベースのバックアップを作成します。特定のデータベースのバックアップを作成するには、 -dオプションを使用して、データベースの名前を指定する必要があります。さらに、 mongodumpにバックアップの保存場所を知らせるには、 -oオプションを使用してパスを指定する必要があります。

まだ mongoシェルにいる場合は、 CTRL + Dを押して終了してください。

次のコマンドを入力して、** myDatabase **のバックアップを作成し、それを 〜/ backups / first_backupに保存します。

mongodump -d myDatabase -o ~/backups/first_backup

バックアップが正常に作成されると、次のログメッセージが表示されます。

2015- 11- 24 T18:11:58.590-0500  writing myDatabase.myCollection to /home/me/backups/first_backup/myDatabase/myCollection.bson
2015- 11- 24 T18:11:58.591-0500  writing myDatabase.myCollection metadata to /home/me/backups/first_backup/myDatabase/myCollection.metadata.json
2015- 11- 24 T18:11:58.592-0500  done dumping myDatabase.myCollection(3 documents)2015-11-24T18:11:58.592-0500  writing myDatabase.system.indexes to /home/me/backups/first_backup/myDatabase/system.indexes.bson

バックアップは単一のファイルではなく、実際には次の構造のディレクトリであることに注意してください。

first_backup
└── myDatabase
 ├── myCollection.bson
 ├── myCollection.metadata.json
 └── system.indexes.bson

ステップ4-データベースを削除する

作成したバックアップをテストするには、別のサーバーで実行されているMongoDBインスタンスを使用するか、現在のサーバー上のデータベースを削除します。このチュートリアルでは、後者を実行します。

mongoシェルを開き、** myDatabase **に接続します。

mongo myDatabase

dropDatabase`メソッドを使用してデータベースを削除します。

db.dropDatabase();

削除が成功すると、次のメッセージが表示されます。

{" dropped":"myDatabase","ok":1}

これで、収集メソッド findを使用して、以前に挿入されたすべてのデータが消えたかどうかを確認できます。

db.myCollection.find();

データベースに表示するデータがないため、このコマンドからの出力はありません。

ステップ5-データベースを復元する

mongodumpで作成されたバックアップ*を使用してデータベースを復元するには、 mongorestoreと呼ばれる別のコマンドラインユーティリティを使用できます。使用する前に、 CTRL + Dを押して mongoシェルを終了します。

mongorestoreの使用は非常に簡単です。必要なのは、バックアップを含むディレクトリへのパスだけです。 〜/ backupts / first_backupの場所に保存されているバックアップを使用してデータベースを復元する方法は次のとおりです。

mongorestore ~/backups/first_backup/

復元操作が成功すると、次のログメッセージが表示されます。

2015- 11- 24 T18:27:04.250-0500  building a list of dbs and collections to restore from/home/me/backups/first_backup/ dir
2015- 11- 24 T18:27:04.251-0500  reading metadata file from/home/me/backups/first_backup/myDatabase/myCollection.metadata.json
2015- 11- 24 T18:27:04.252-0500  restoring myDatabase.myCollection from file /home/me/backups/first_backup/myDatabase/myCollection.bson
2015- 11- 24 T18:27:04.309-0500  restoring indexes for collection myDatabase.myCollection from metadata
2015- 11- 24 T18:27:04.310-0500  finished restoring myDatabase.myCollection(3 documents)2015-11-24T18:27:04.310-0500  done

復元されたデータを確認するには、最初に mongoシェルを開き、 myDatabaseに接続します。

mongo myDatabase

次に、 collection findメソッドを呼び出します。

db.myCollection.find();

すべてがうまくいけば、以前に挿入されたすべてのデータを見ることができるはずです。

output
{"_ id":ObjectId("5654e76f21299039c2ba8720"),"name":"Alice","age":30}{"_id":ObjectId("5654e76f21299039c2ba8721"),"name":"Bill","age":25}{"_id":ObjectId("5654e76f21299039c2ba8722"),"name":"Bob","age":35}

結論として ##

このチュートリアルでは、 mongodump mongorestoreを使用してMongoDBデータベースをバックアップおよび復元する方法を学習しました。バックアップの作成はコストのかかる操作であり、MongoDBインスタンスのパフォーマンスを低下させる可能性があることに注意してください。したがって、オフピーク時にのみバックアップを作成することをお勧めします。

MongoDBバックアップ関連のチュートリアルの作成と使用の詳細については、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。


参照:「Ubuntu14.04でMongoDBバックアップを作成および使用する方法」

Recommended Posts

Ubuntu14.04でMongoDBバックアップを作成して使用する方法
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
Ubuntu16.04にDockerをインストールして使用する方法
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu16.04でSambaサーバーを使用する方法
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
CentOS7にDockerをインストールして使用する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04でNginxのマップモジュールを使用する方法
Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu14.04でDockerデータボリュームを使用する方法
CentOS8にComposerをインストールして使用する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Jenkinsを使用してUbuntuで自動的にビルドする方法
Ubuntu14.04にOrientDBをインストールして構成する方法
CentOS8にCurlをインストールして使用する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
LVMを使用してUbuntu18.04でストレージデバイスを管理する方法
Ubuntu14.04でRedisデータをバックアップおよび復元する方法
CentOS 8 / RHEL8にCockpitをインストールして使用する方法
ubuntuシステムにtheanoとkerasをインストールする方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にJavaをインストールする方法
ubuntuでhanlpを使用する方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法