すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:mongodumpとmongorestoreを使用して、MongoDB AtlasデータベースからApsaraDB for MongoDBにデータを移行する

最終更新日:Jun 13, 2024

このトピックでは、データのバックアップと復元のためにMongoDBに構築されているmongodumpとmongorestoreを使用して、MongoDB AtlasデータベースをApsaraDB for MongoDBに移行する方法について説明します。 オンプレミスサーバーまたはECSインスタンスにmongodumpとmongorestoreを直接インストール (またはMongoDB Atlasデータベースを作成) して、MongoDB AtlasデータベースからApsaraDB for MongoDBインスタンスにデータを移行できます。

説明

次の例では、オンプレミスサーバーを使用します。

注意事項

  • mongodumpとmongorestoreがインストールされ、それらのバージョンはMongoDB Atlasデータベースのデータベースバージョンと一致しています。 インストール手順の詳細については、MongoDB公式WebサイトのMongoDBのインストールをご参照ください。

  • ソースApsaraDB for MongoDBインスタンスとターゲットApsaraDB for MongoDBインスタンスのバージョンまたはストレージエンジンが異なる場合は、バージョンまたはストレージエンジンに互換性があることを確認してください。 詳細については、「MongoDBのバージョンとストレージエンジン」をご参照ください。

  • このプロセスは完全なデータ移行です。 データの一貫性を確保するために、データを移行する前にソースデータベースにデータを書き込まないことをお勧めします。

  • mongodumpコマンドを実行すると、ダンプフォルダ内の履歴バックアップファイルが上書きされます。 mongodumpコマンドを使用してMongoDB Atlasデータベースをバックアップした場合は、dumpフォルダ内のバックアップファイルを別のディレクトリに移動し、dumpフォルダが空であることを確認します。

  • サーバーでmongodumpコマンドとmongorestoreコマンドを実行します。 これらのコマンドはmongoシェルでは実行しないでください。

データベースアカウントに必要な権限

データベース

アカウント権限

ソースMongoDB Atlasデータベース

ソースデータベースの読み取り権限

同期先の ApsaraDB for MongoDB インスタンス

ターゲットデータベースの読み取りおよび書き込み権限

始める前に

ApsaraDB for MongoDBコンソール

  1. ApsaraDB for MongoDB インスタンスを作成します。 詳細は、レプリカセットインスタンスの作成 または シャードクラスターインスタンスの作成 をご参照ください。

    説明
    • ApsaraDB for MongoDBインスタンスのストレージ容量は、MongoDB Atlasデータベースのストレージ容量よりも大きい必要があります。

    • ApsaraDB for MongoDBのシャードクラスターインスタンスにデータを移行する場合は、データを保存するようにシャーディングを設定することを推奨します。 詳細は、シャードのパフォーマンスを最大化するためのシャーディングの構成 をご参照ください。

  2. ApsaraDB for MongoDBインスタンスのrootユーザーのパスワードを設定します。 詳細については、「ApsaraDB For MongoDBインスタンスのアカウントのパスワードのリセット」をご参照ください。

    説明

    インスタンスの作成時にパスワードを設定した場合は、この手順をスキップしてください。

オンプレミスサーバーの場合:

  1. MongoDBデータベースをインストールします。 詳細は、MongoDB のインストールをご参照ください。

    説明
    • このサーバーは、データのバックアップと復元の両方で仲介の役割を果たします。 移行が完了すると、サーバーは不要になります。

    • バックアップディレクトリが配置されているパーティションの使用可能なストレージスペースは、ソースMongoDB Atlasデータベースの占有ストレージスペースよりも大きくなければなりません。

  2. オンプレミスサーバーのパブリックIPアドレスをApsaraDB for MongoDBインスタンスのホワイトリストに追加します。 詳細については、「ApsaraDB For MongoDBインスタンスのIPアドレスホワイトリストの変更」をご参照ください。

手順

  1. MongoDB Atlas コンソールにログインします。

  2. MongoDB AtlasデータベースのホワイトリストにオンプレミスサーバーのパブリックIPアドレスを追加します。 Configure a whitelist for the MongoDB Atlas database

  3. [クラスター] ページで、対象のクラスターを見つけ、その名前をクリックします。 Clusters

  4. コマンドラインツールタブで、mongodumpコマンドの横にあるCOPYをクリックして、このコマンドをソースMongoDB Atlasデータベースの接続情報とともにコピーします。 Copy the mongodump command with connection information

  5. オンプレミスサーバーで、ソースMongoDB Atlasデータベースをバックアップします。

    1. オンプレミスサーバーで、ソースMongoDB Atlasデータベースの接続情報を含むmongodumpコマンドを貼り付けます。

    2. <PASSWORD> を指定されたユーザーのパスワードに置き換え、<DATABASE> をソースMongoDB Atlasデータベースの名前に置き換えます。

    3. このコマンドを実行し、データのバックアップが完了するまで待ちます。

  6. ApsaraDB for MongoDBコンソールにログインして、ApsaraDB for MongoDBインスタンスのパブリックエンドポイントを取得します。

    • ApsaraDB for MongoDBのレプリカセットインスタンスにデータを移行する場合は、プライマリノードのパブリックエンドポイントを取得します。 詳細については、「レプリカセットインスタンス接続の概要」をご参照ください。

    • ApsaraDB for MongoDBのシャードクラスターインスタンスにデータを移行する場合は、mongosのパブリックエンドポイントを取得します。 詳細については、「シャードクラスターインスタンス接続の概要」をご参照ください。

    説明

    インターネットエンドポイントを取得するには、そのための申請が必要です。 詳細については、「シャードクラスターインスタンスのパブリックエンドポイントの申請」をご参照ください。

  7. サーバーで、次のコマンドを実行して、バックアップファイルをApsaraDB for MongoDBインスタンスにインポートします。

    mongorestore -- host <mongodb_host>:3717 -- authenticationDatabase admin -u <username> -d <database> <database_backupfile_directory>
    説明
    • <mongodb_host>: ApsaraDB for MongoDBのレプリカセットインスタンスのプライマリノードのパブリックエンドポイント、またはApsaraDB for MongoDBのシャードクラスターインスタンスのmongosのパブリックエンドポイント。

    • <username>: ApsaraDB for MongoDBインスタンスへのログインに使用されるアカウント。 このトピックの例では、テストアカウントが使用されています。

    • <database>: 復元するソースデータベース。 バックアップファイルに複数のデータベースのデータが含まれている場合は、この手順を繰り返してすべてのデータベースを復元します。

    • <database_backupfile_directory>: バックアップファイルのディレクトリ。

    例:

    mongodbtestデータベースにデータを復元します。

    mongorestore -- host dds-bp *********** -pub.mongodb.rds.aliyuncs.com:3717 -- authenticationDatabase admin -u test -d mongodbtest /dump/mongodbtest

    test123データベースにデータを復元します。

    mongorestore -- host dds-bp *********** -pub.mongodb.rds.aliyuncs.com:3717 -- authenticationDatabase admin -u test -d test123 /dump/test123
  8. Enter password: が表示されたら、ApsaraDB for MongoDBインスタンスユーザーのパスワードを入力し、enterキーを押します。

データの復元が完了すると、ソースMongoDB AtlasデータベースのデータがターゲットApsaraDB for MongoDBインスタンスに移行されます。