mongodump と mongorestore を使用して MongoDB Atlas データベースをバックアップし、ApsaraDB for MongoDB に復元します。これらのツールは、オンプレミスサーバーまたは ECS インスタンスで実行できます。
このトピックでは、オンプレミスサーバーを例に説明します。
注意事項
mongodump と mongorestore のバージョンは、MongoDB Atlas データベースのバージョンと一致している必要があります。インストール手順については、公式の Install MongoDB ドキュメントをご参照ください。
ApsaraDB for MongoDB でサポートされているバージョンとストレージエンジンについては、Versions and storage engines をご参照ください。異なるバージョンまたはストレージエンジン間でデータを移行する前に、互換性を確認してください。
これは完全なデータ移行です。データ整合性を確保するために、移行を開始する前にソースデータベースへの書き込み操作を停止してください。
mongodumpコマンドを実行すると、dump ディレクトリ内の既存のバックアップファイルが上書きされます。以前にソースデータベースで mongodump を実行したことがある場合は、既存のファイルを dump ディレクトリから移動し、dump ディレクトリが空であることを確認してください。mongodump と mongorestore は、mongo シェル内からではなく、MongoDB がインストールされているサーバーで実行してください。
必要な権限
|
データベース |
必要な権限 |
|
移行元の MongoDB Atlas インスタンス |
ソースデータベースの読み取り権限 |
|
移行先の ApsaraDB for MongoDB インスタンス |
移行先データベースの readWrite 権限 |
前提条件
ApsaraDB for MongoDB コンソールで、次の手順を実行します。
-
ApsaraDB for MongoDB インスタンスを作成してください。詳細については、「Create a replica set instance」または「Create a sharded cluster instance」をご参照ください。
説明ApsaraDB for MongoDB インスタンスのストレージ領域は、MongoDB Atlas インスタンスのストレージ領域より大きい必要があります。
シャードクラスターインスタンスにデータを移行するには、まずデータをシャーディングする必要があります。詳細については、「Enable sharding」をご参照ください。
-
ApsaraDB for MongoDB インスタンスのデータベースパスワードを設定してください。詳細については、「Reset the password」をご参照ください。
説明インスタンス作成時にデータベースパスワードを設定した場合は、この手順をスキップしてください。
オンプレミスサーバーで、次の手順を実行します。
-
MongoDB をインストールしてください。詳細については、「Install MongoDB」をご参照ください。
説明このサーバーは、バックアップと復元プロセスの一時的な中継として機能し、移行完了後は不要になります。
バックアップディレクトリがあるパーティションの利用可能なディスク領域は、MongoDB Atlas データベースが使用しているストレージ領域よりも大きい必要があります。
オンプレミスサーバーのパブリック IP アドレスを ApsaraDB for MongoDB インスタンスのホワイトリストに追加してください。詳細については、「Configure a whitelist」をご参照ください。
MongoDB Atlas データの移行
MongoDB Atlas コンソールにログインします。
オンプレミスサーバーのパブリック IP アドレスを MongoDB Atlas インスタンスの IP アクセスリストに追加します。ナビゲーションペインで [Clusters] をクリックします。[Security] タブで [Network Access] をクリックし、右上隅の [+ ADD IP ADDRESS] をクリックします。[Add IP Access List Entry] ダイアログボックスで、オンプレミスサーバーのパブリック IP アドレスを入力し、[Confirm] をクリックします。
[Clusters] ページで、クラスターの名前をクリックします。
[Command Line Tools] タブで、mongodump コマンドの横にある [COPY] をクリックして、MongoDB Atlas データベースの接続情報を含むコマンドをコピーします。
-
オンプレミスサーバーで、MongoDB Atlas データベースをバックアップします。
MongoDB Atlas データベースの接続情報を含む mongodump コマンドを貼り付けます。
<PASSWORD>をデータベースパスワードに、<DATABASE>をバックアップするデータベースの名前に置き換えます。コマンドを実行し、バックアップが完了するまで待ちます。
-
ApsaraDB for MongoDB コンソールにログインし、ApsaraDB for MongoDB インスタンスのパブリックエンドポイントを取得します。
レプリカセットインスタンスの場合は、プライマリノードのパブリックエンドポイントを取得します。詳細については、「Connect to a replica set instance」をご参照ください。
シャードクラスターインスタンスの場合は、任意の mongos ノードのパブリックエンドポイントを取得します。詳細については、「Connect to a sharded cluster instance」をご参照ください。
説明この手順の前に、パブリックエンドポイントを手動で申請する必要があります。詳細については、「Apply for a public endpoint」をご参照ください。
-
オンプレミスサーバーで、次のコマンドを実行して、ApsaraDB for MongoDB インスタンスにデータをインポートします。
mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -d <database> <database_backupfile_directory>説明<mongodb_host>:レプリカセットインスタンスのプライマリノードまたはシャードクラスターインスタンスの mongos ノードのパブリックエンドポイント。<username>:ApsaraDB for MongoDB インスタンスのデータベースアカウント。例:test。<database>:復元するデータベース。バックアップに複数のデータベースが含まれている場合は、それぞれに対してこの手順を繰り返します。<database_backupfile_directory>:データベースバックアップファイルが格納されているディレクトリ。
例:
mongodbtest データベースの復元:
mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d mongodbtest /dump/mongodbtesttest123 データベースの復元:
mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d test123 /dump/test123 Enter password:と表示されたら、ApsaraDB for MongoDB インスタンスのパスワードを入力して Enter キーを押します。
復元が完了すると、MongoDB Atlas データベースから ApsaraDB for MongoDB インスタンスへの移行が完了します。