MongoDB は、Azure Cosmos DB API for MongoDB を Alibaba Cloud にマイグレーションするために使用できるネイティブバックアップユーティリティを提供します。

注記

  • データマイグレーションはフルマイグレーションです。 データの不整合を避けるために、マイグレーションする前にデータベースへの書き込み操作をすべて停止することをお勧めします。
  • データベースのバックアップに mongodump コマンドを使用した場合は、dump フォルダ内のファイルを他のディレクトリに移動します。 データマイグレーションの前に、デフォルトの dump フォルダが空であることを確認します。 そうでなければ、このフォルダ内の既存のバックアップファイルは上書きされます。
  • mongodump コマンドと mongorestore コマンドは mongo shell で実行するのではなく、 MongoDB がインストールされているサーバー上で実行します。

必要なデータベース権限

マイグレーションタイプ フルマイグレーション
Azure Cosmos DB Read
対象 MongoDB インスタンス Read と write

環境の構成

  1. ApsaraDB for MongoDB インスタンスを作成します。 詳細、インスタンスの作成をご参照ください。
    • インスタンスのストレージ容量は Azure Cosmos DB のサイズより大きいである必要があります。
    • MongoDB バージョン 3.4 を選択します。
  2. ApsaraDB for MongoDB インスタンスのパスワードを設定します。 詳細は、パスワードの設定をご参照ください。
  3. MongoDB をサーバーにインストールします。 詳細は、MongoDB のインストールをご参照ください。
    • MongoDB 3.0 以降のバージョンをインストールします。
    • このサーバーはバックアップおよびリカバリー中にデータを一時的に保存するために使用され、マイグレーションの完了後には必要ありません。
    • バックアップが保存されるストレージ容量は Azure Cosmos DB サイズより大きいである必要があります。

    この例では、MongoDB を Linux サーバーにインストールします。 Windows などの他の OS も使用できます。

手順

  1. Azure portal にログインします。
  2. 左側のナビゲーションペインで Azure Cosmos DB をクリックします。
  3. Azure Cosmos DB ページで、マイグレーションする Azure Cosmos DB のアカウント名をクリックします。
  4. アカウント詳細ページで、Connection String をクリックします。
  5. Read-only Keys タブをクリックして、データベース接続情報を表示します。
    図 1. Azure の接続情報
    データをマイグレーションするには、読み取り専用権限を持つデータベースアカウントのみが必要です。
  6. MongoDB サーバーで次のコマンドを実行して、Azure Cosmos DB をそのサーバーにバックアップします。
    mongodump --host <HOST>:10255 --authenticationDatabase admin -u <USERNAME> -p <PRIMARY PASSWORD> --ssl --sslAllowInvalidCertificates

    注:<HOST>、<USERNAME>、および<PRIMARY PASSWORD>を、Azure 接続情報の図に示されている対応する値に置き換えます。

    バックアップが完了すると、Azure Cosmos DB のバックアップは dump フォルダーに格納されます。

  7. ApsaraDB for MongoDB インスタンスのプライマリノードのエンドポイントを取得します。 詳細は、レプリカセットインスタンスの接続情報の取得をご参照ください。
  8. MongoDB サーバーで次のコマンドを実行して、バックアップを ApsaraDB for MongoDB インスタンスにエクスポートします。
     mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -p <password> dump
    説明
    • <mongodb_host>:MongoDB インスタンスのプライマリノードのエンドポイント。
    • <username>:MongoDB インスタンスのユーザー名。
    • <password>:MongoDB インスタンスのパスワード。

リカバリーが完了したら、Azure Cosmos DB のバックアップは ApsaraDB for MongoDB インスタンスにマイグレーションされます。