ポイント: MongoDB mongodumpは、データベースバックアップを作成し、復元のためのBSONファイルを生成するユーティリティです。これは、スタンドアロンおよびレプリカセットのデプロイメントをサポートし、小規模インスタンスにとって使いやすいです。この記事では、MongoDBのバックアップオプション、組み込みツールやファイルシステムバックアップを含むさまざまなオプションについて説明し、データの安全性を確保するためのバックアップの重要性を強調しています。
- mongodumpは高忠実度のデータベースバックアップを作成します。
- バックアップは、MongoDB AtlasやCloud Managerを含むさまざまな方法を使用して実行できます。
バックアップの維持は、すべての組織にとって重要です。データバックアップは、緊急時にデータを回復または復元できる安全策として機能します。通常、データベースバックアップは、データベースを複製することによって作成され、次のいずれかを使用します:
- 組み込みツール
- 専門の外部バックアップサービス
MongoDBのバックアップ
MongoDBは、使用するMongoDBのデプロイ方法に応じて、複数の組み込みバックアップオプションを提供しています。オプションを簡単に見ていきますが、その後、バックアッププロセスのための特定のオプションであるMongoDB mongodumpの利用方法を示します。
MongoDBの組み込みバックアップ
MongoDBでデータをバックアップするためのいくつかのオプションがあります:
MongoDB Atlasバックアップ
MongoDBがMongoDB Atlasクラウドデータベースサービスでホストされている場合、Altasサービスは自動化された継続的インクリメンタルバックアップを提供します。さらに、Altasはローカルデータベーススナップショットを作成するために、基盤となるクラウドプロバイダーのスナップショット機能を使用して、クラウドプロバイダーのスナップショットを作成するためにも使用できます。
MongoDB Cloud ManagerまたはOps Manager
Cloud Managerは、MongoDBのためのホスティングされたバックアップ、監視、および自動化サービスです。Cloud Managerは、オフサイトバックアップを提供しながら、簡単なバックアップと復元機能を可能にします。Ops Managerは、Cloud Managerと同じ機能を提供しますが、オンプレミスソリューションとして展開できます。
MongoDB mongodump
Mongodumpデータベースバックアップは、基盤となるデータベースから高忠実度のBSONファイルを作成するシンプルなMongoDBバックアップユーティリティです。これらのファイルはmongorestoreユーティリティを使用して復元できます。Mongodumpは、その使いやすさとポータビリティのために、小規模なMongoDBインスタンスの理想的なバックアップソリューションです。
ファイルシステムバックアップ
この方法では、MongoDBインストールの基盤となるデータファイルのコピーを保持します。ファイルシステムがそれをサポートしている場合は、スナップショットを利用できます。もう1つの方法は、rsyncのようなツールを使用して、データファイルをバックアップディレクトリに直接コピーすることです。
MongoDB mongodumpとは?
mongodumpは、データベースバックアップを作成するためのユーティリティです。このユーティリティは、データベースの内容のバイナリエクスポートを作成するために使用できます。Mongodumpは、mongodおよびmongosインスタンスからデータをエクスポートでき、次のバックアップを作成できます:
- スタンドアロン、レプリカセット
- MongoDBデプロイメントのシャーディングクラスター
MongoDB 4.4以前は、mongodumpはMongoDBサーバーと共にリリースされ、バージョン管理が一致していました。mongodumpの新しいバージョンは、MongoDBデータベースツール内の別個のユーティリティとしてリリースされています。mongodumpは、MongoDB 4.4、4.2、4.0、3.6との互換性を保証します。mongodumpユーティリティは、ほとんどのx86_64プラットフォームおよび一部のARM64、PPC64LE、およびs390xプラットフォームでサポートされています。mongodumpが互換性のあるプラットフォームの完全なリストは、彼らのドキュメントから確認できます。
MongoDB内のmongodumpの動作と制限
以下のリストは、mongodumpユーティリティの期待される動作と制限を分解します。
- mongodumpユーティリティは、レプリカセットのプライマリメンバーに対して読み取り操作を指示し、デフォルトの読み取り優先度をプライマリにします。
- バックアップ操作は「local」データベースを除外し、インデックスデータを除外してドキュメントのみをキャプチャします。これらのインデックスは、復元プロセスの後に再構築する必要があります。
- 読み取り専用ビューのバックアップに関しては、mongodumpはビューのメタデータのみをキャプチャします。ビュー内のドキュメントをキャプチャしたい場合は、「–viewsAsCollections」フラグを使用してください。
- 最大の互換性を確保するために、mongodumpメタデータファイルにはExtended JSON v2.0(Canonical)を使用してください。バックアップおよび復元操作では、mongodumpとmongorestoreの対応するバージョンを使用することをお勧めします。
- mongodumpコマンドは、指定されたバックアップフォルダー内の既存のファイルを上書きします。バックアップのデフォルト位置はdump/フォルダーです。
- MongoDBインスタンスでWiredTigerストレージエンジンが使用されている場合、出力は非圧縮データになります。
- mongodumpを使用したバックアップ操作は、利用可能なシステムメモリに依存します。データセットがシステムメモリより大きい場合、mongodumpユーティリティは作業セットをメモリから押し出します。
- アクセス制御がMongoDBデータベースにアクセスするように構成されている場合、ユーザーはバックアップを作成するために各データベースに十分な権限を持っている必要があります。MongoDBには、任意のデータベースをバックアップするために必要な権限を持つ組み込みのバックアップロールがあります。
- MongoDBは、mongodumpをスタンドアロンまたはレプリカセットのバックアップ戦略の一部として使用できます。
- MongoDB 4.2以降、mongodumpは、進行中のシャーディングトランザクションがあるシャーディングクラスターをバックアップする際に、バックアップ戦略の一部として使用できません。このような場合は、MongoDB Cloud ManagerまたはOps Managerのようなソリューションを使用することをお勧めします。これにより、シャード間のトランザクションの原子性が維持されます。
- mongodumpコマンドは、別のユーティリティであるため、システムコマンドシェルから実行する必要があります。
- インクリメンタルバックアップのオプションはありません。すべてのバックアップはデータベースの完全なコピーを作成します。
MongoDBデータベースツール
MongoDBデータベースツールは、MongoDBインスタンスのメンテナンスと管理を支援するコマンドラインユーティリティのコレクションです。MongoDBデータベースツールは、これらの環境で互換性があります:
- Windows
- Linux
- macOS
このセクションでは、Linuxサーバーにデータベースツールをインストールする方法を見ていきます。
データベースツールの確認
システムにデータベースツールがすでにインストールされているかどうかを確認するには、次のコマンドを使用できます。
sudo dpkg -l mongodb-database-tools
インストールされたデータベースツールの結果:
利用できないデータベースツールの結果:
データベースツールのインストール
システムにデータベースツールがない場合は、インストール方法を以下に示します。MongoDBダウンロードセンターでは、MongoDBデータベースツールの最新バージョンを提供しています。プラットフォームとパッケージタイプに応じて最新バージョンをダウンロードします。CLI環境では、ダウンロードリンクをコピーし、wgetまたはcurlを使用してパッケージをダウンロードできます。以下の例では、Ubuntu用のdebパッケージとしてデータベースツールのバージョン100.2.1を使用し、ダウンロードしたファイルを使用してインストールします。
curl -o mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb
sudo apt install ./mongodb-database-tools-ubuntu2004-x86_64-100.2.1.deb
結果:
MongoDB mongodumpの使用
このセクションでは、スタンドアロンMongoDBインスタンスでのmongodumpユーティリティの基本的な使用法をカバーします。
基本的なmongodump構文
mongodump
バックアップを作成する最も基本的な方法は、オプションなしでmongodumpコマンドを使用することです。これにより、データベースがlocalhost(127.0.0.1)にあり、ポート27017を使用して認証なしであると想定されます。バックアッププロセスは、現在のディレクトリにダンプフォルダーを作成します。
mongodump
結果:
作成されたバックアップを確認するために、dumpフォルダに移動できます。
リモートMongoDBインスタンスのバックアップ
–uri接続文字列を使用して、ホストとポートを指定できます。uriオプションを使用して接続します:
mongodump --uri="mongodb://:" [additional options]
ホストオプションを使用して接続します:
mongodump --host=":" [additional options]
ホストとポートオプションを使用して接続します:
mongodump --host="" --port=
次の例は、リモートMongoDBインスタンスのバックアップを作成する方法を示します:
mongodump --host="10.10.10.59" --port=27017
結果:
セキュアなMongoDBインスタンスのバックアップ
アクセス制御のあるMongoDBインスタンスに接続したい場合は、次の情報を提供する必要があります:
- ユーザー名
- パスワード
- 認証データベースオプション
認証構文
mongodump --authenticationDatabase= -u= -p= [additional options
ユーザー名とパスワードを使用してリモートMongoDBインスタンスに接続する方法を見てみましょう。
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword"
結果:
データベースとコレクションの選択
–dbおよび–collectionオプションを使用して、バックアップするデータベースとコレクションを指定できます。–dbオプションはスタンドアロンオプションとして使用できますが、コレクションを選択するにはデータベースを指定する必要があります。バックアッププロセスからコレクションを除外するには、–excludeCollectionオプションを使用できます。データベースを選択する:
mongodump --db=
コレクションを選択する:
mongodump --db= --collection=
コレクションを除外する:
mongodump --db= --excludeCollection=
次の例では、「vehicleinformation」コレクションを唯一のバックアップ対象として定義します。
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --db=vehicles --collection=vehicleinformation
結果:
バックアップディレクトリの変更
–outオプションを使用してバックアップフォルダーの場所を指定できます。
mongodump --out=
バックアップディレクトリを「dbbackup」フォルダーに変更しましょう。
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --out=dbbackup
結果:
アーカイブファイルの作成
mongodumpユーティリティでは、アーカイブファイルを作成できます。–archiveオプションを使用してファイルを指定できます。ファイルが指定されていない場合、出力は標準出力(stdout)に書き込まれます。–archiveオプションは–outオプションと併用できません。
mongodump --archive=
以下の例は、アーカイブファイルを定義する方法を示します。
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --archive=db.archive
結果:
バックアップの圧縮
バックアップファイルは、–gzipオプションを使用して圧縮できます。このオプションは、個々のJSONおよびBSONファイルを圧縮します。
mongodump --gzip [additional options]
MongoDBデータベース全体を圧縮しましょう。
mongodump --host=10.10.10.59 --port=27017 --authenticationDatabase="admin" -u="barryadmin" -p="testpassword" --gzip
結果:
この記事では、MongoDBのmongodumpを使用してデータベースバックアップを作成および管理するための基本的な手順をカバーしました。提供された指示に従うことで、mongodumpデータベースバックアップのニーズを効率的に処理するためのツールを手に入れました。
MongoDBガイド
- MongoDB概要:MongoDBの始め方
- UbuntuとMacにMongoDBをインストールする方法
- MongoDBでデータベースを作成する
- MongoDBシェル基本コマンド
- MongoDB Compass:Mongo GUIの使用
- MongoDBのロールベースアクセス制御(RBAC)の説明
- MongoDBの投影と投影演算子の説明
- MongoDBの集約関数の説明
- MongoDBのソート:sort()メソッドと例
- MongoDBでのPushとPull演算子の使用
- MongoDBの$unwindを使用する方法
- 23の一般的なMongoDBクエリ演算子とその使用方法
- MongoDBのGeoLocationクエリの例
- MongoDBトランザクションの紹介
- MongoDBインデックス:主要なインデックスの種類とそれらの管理方法
- 知っておくべき主要なMongoDBコマンド
- MongoDBのレプリケーション:完全な紹介
- MongoDBクラスタをセットアップする方法
- MongoDBのシャーディング:概念、例、チュートリアル
- MongoDB Atlas:管理されたMongoDBの設定と使用
- MongoDBをDockerコンテナとして実行する方法
- MongoDBのメモリ使用量、管理、要件
- mongodumpを使用してMongoDBバックアップを取得する方法
- MongoDBバックアップを復元するためのmongorestoreの例
- PyMongoを使用する方法
- MongoDBとNodeJSのためのMongooseの使用方法
- MongoDBチートシート
- MongoDB vs Cassandra:NoSQLデータベースの比較
- PostgreSQL vs MongoDB:データベースの比較
- MySQL vs MongoDB:データベースの比較
- MongoDB認定:概要
これらの投稿は私自身の見解であり、必ずしもBMCの立場、戦略、または意見を代表するものではありません。