このトピックでは、mongorestoreを使用して、ApsaraDB for MongoDBインスタンスの論理バックアップファイルを自己管理型MongoDBデータベースに復元する方法について説明します。
前提条件
インスタンスはローカルSSDを使用しています。
自己管理型MongoDBデータベースのバージョンは、ApsaraDB for MongoDBインスタンスのデータベースバージョンと同じです。 これによって互換性が確保されます。
背景情報
MongoDBには、mongodumpとmongorestoreのバックアップとリカバリツールが用意されています。 ApsaraDB for MongoDBインスタンスの論理バックアップは、mongodumpを使用して生成されます。 mongorestoreを使用して、論理バックアップを自己管理型MongoDBデータベースに復元できます。
注意事項
以前のバージョンのMongoDBでは、以前のバージョンのmongorestoreツールはサポートされていません。 MongoDBバージョンと互換性のあるmongorestoreバージョンを選択することを推奨します。 詳細については、「mongorestore」をご参照ください。
セルフマネージドMongoDBデータベースがシャードクラスターアーキテクチャを使用している場合、コマンドで
<hostname>
パラメーターを設定して、セルフマネージドMongoDBデータベースのmongosノードのエンドポイントにバックアップデータをインポートする必要があります。自己管理型MongoDBデータベースがシャードクラスターアーキテクチャを使用している場合は、コマンドに
-- nsExclude="config.*"
を追加する必要があります。 そうしないと、データ復元中にエラーが発生する可能性があります。シャードクラスターインスタンスから自己管理型MongoDBデータベースにデータを復元する場合、シャードクラスターインスタンス内の各シャードノードのバックアップデータをダウンロードし、バックアップデータを自己管理型MongoDBデータベースにインポートする必要があります。 シャードクラスタインスタンスに孤立したドキュメントが含まれている場合、ダーティデータが自己管理データベースで発生する可能性があります。 複数のシャードのバックアップファイルをシャードクラスターアーキテクチャの同じデータベースに復元する場合は、最初のシャードのバックアップファイルにのみdropパラメーターを追加します。
準備
ApsaraDB for MongoDBインスタンスのデータベースバージョンと同じバージョンのMongoDBをダウンロードし、自己管理型MongoDBデータベースが存在するクライアントにMongoDBバージョンをインストールします。 クライアントは、オンプレミスサーバーまたはElastic Compute Service (ECS) インスタンスです。 インストール方法の詳細については、「MongoDBのインストール」をご参照ください。
手順
ApsaraDB for MongoDBコンソールにログインします。
左側のナビゲーションウィンドウで、レプリカセットインスタンス または シャーディングインスタンス をクリックします。
ページの左上隅で、インスタンスが属するリソースグループとリージョンを選択します。
インスタンスのIDをクリックするか、インスタンスに対応する 操作 列のをクリックし、管理 を選択します。
データベースをバックアップします。
インスタンスの詳細ページの右上隅で、バックアップ をクリックします。
バックアップインスタンス パネルで、バックアップ方法 を [論理バックアップ] に設定します。
OK をクリックします。 次に、バックアップが完了するのを待ちます。
バックアップファイルをダウンロードします。 ダウンロード方法の詳細については、「バックアップファイルのダウンロード」をご参照ください。
ダウンロードしたバックアップファイルを、自己管理型MongoDBデータベースが存在するクライアントにコピーします。 クライアントはmongorestoreツールを備えています。
次のコマンドを実行して、バックアップデータを自己管理型MongoDBデータベースにインポートします。
mongorestore -h <hostname> -- port <server port> -u <username> -p <password> -- drop -- gzip -- archive=<backupfile> -vvvv -- stopOnError
次のパラメーターを指定する必要があります。
<hostname>: 自己管理MongoDBデータベースが存在するサーバーのアドレス。 ローカルホストに127.0.0.1を入力します。
自己管理型MongoDBデータベースがシャードクラスターアーキテクチャを使用する場合、このパラメーターを自己管理型MongoDBデータベースのmongosノードのエンドポイントに設定する必要があります。
<server port>: 自己管理型MongoDBデータベースへの接続に使用されるポート。
<username>: 自己管理型MongoDBデータベースへのログインに使用されるアカウント。 アカウントにすべてのデータベースに対する権限があることを確認します。 rootアカウントを使用することを推奨します。
<password>: 自己管理型MongoDBデータベースへのログインに使用されるアカウントパスワード。
<backupfile>: ダウンロードした論理バックアップファイルの名前。
コマンドに次のパラメーターを追加できます。
-- drop: バックアップファイルが復元される前にコレクションを削除します。
説明複数のシャードのバックアップファイルをシャードクラスターアーキテクチャの同じデータベースに復元する場合は、最初のシャードのバックアップファイルにのみdropパラメーターを追加します。
-- gzip: GZIP形式のバックアップデータを解凍します。
説明このパラメーターはMongoDB 3.1.4からサポートされています。 詳細については、「mongo-tools」をご参照ください。
-vvv: バックアップデータの詳細を指定します。 vの数が多いほど、バックアップデータはより詳細になる。
-- stopOnError: エラーが発生した場合、データのインポートを停止します。
-- nsExclude: 一致したデータセットを復元しません。 例:
-- nsExclude="config.*"
例:
mongorestore -h 127.0.0.1 -- port 27017 -u root -p ******** -- drop -- gzip -- archive=hins1111_data_20190710.ar -vvvv -- stopOnError