MongoDBは、Azure Cosmos DBのAPI for MongoDBをApsaraDB for MongoDBに移行するために使用できるネイティブバックアップユーティリティを提供します。
注意事項
これはフル移行です。 データの一貫性を確保するため、移行前にデータベースへのすべての書き込み操作を停止することを推奨します。
データベースのバックアップに mongodump コマンドを使用した場合は、dump フォルダ内のファイルを他のディレクトリに移動します。 データ移行の前に、デフォルトの dump フォルダが空であることを確認します。 そうでなければ、このフォルダ内の既存のバックアップファイルは上書きされます。
mongodump コマンドと mongorestore コマンドは mongo shell で実行するのではなく、 mongo shell で実行しないようにしてください。
必要なデータベースアカウントの権限
インスタンス | アカウント権限 |
Azure Cosmos DB | 読み取り権限 |
ターゲット MongoDB インスタンス | Read と write |
Environment 設定
ApsaraDB for MongoDB インスタンスを作成します。 詳細は、インスタンスの作成をご参照ください。
説明インスタンスのストレージ容量は Azure Cosmos DB のサイズより大きいである必要があります。
MongoDBバージョン4.0以降を選択します。
ApsaraDB for MongoDB インスタンスのパスワードを設定します。 詳細は、パスワードの設定をご参照ください。
MongoDB をサーバーにインストールします。 詳細は、MongoDB のインストールをご参照ください。
説明3.0以降のバージョンのMongoDBをインストールします。
このサーバーはバックアップおよびリカバリー中にデータを一時的に保存するために使用され、マイグレーションの完了後には必要ありません。
バックアップが保存されるストレージ容量は Azure Cosmos DB サイズより大きいである必要があります。
この例では、MongoDB を Linux サーバーにインストールします。 Windows などの他の OS も使用できます。
手順
Azure portal にログインします。
左側のナビゲーションウィンドウで、[Azure Cosmos DB] をクリックします。
Azure Cosmos DB ページで、マイグレーションする Azure Cosmos DB のアカウント名をクリックします。
アカウント詳細ページで、Connection String をクリックします。
Read-only Keys タブをクリックして、データベース接続情報を表示します。
説明データをマイグレーションするには、読み取り専用権限を持つデータベースアカウントのみが必要です。
MongoDB サーバーで次のコマンドを実行して、Azure Cosmos DB をそのサーバーにバックアップします。
mongodump -- host <HOST>:10255 -- authenticationDatabase admin -u <USERNAME> -p <PRIMARY PASSWORD> -- ssl -- sslAllowInvalidicates
注: <HOST> 、<USERNAME> 、および <SECONDARY PASSWORD> を、Azure接続情報に表示されている実際の値に置き換えます。
バックアップが完了すると、Azure Cosmos DB のバックアップは dump フォルダーに格納されます。
ApsaraDB for MongoDB インスタンスのプライマリノードのエンドポイントを取得します。 詳細については、「レプリカセットインスタンス接続の概要」をご参照ください。
MongoDB サーバーで次のコマンドを実行して、バックアップを ApsaraDB for MongoDB インスタンスにエクスポートします。
mongorestore -- host <mongodb_host>:3717 -- authenticationDatabase admin -u <username> -p <password> dump
パラメーターの説明:
<mongodb_host>: MongoDBインスタンスのプライマリノードのエンドポイント。
<username>: ApsaraDB for MongoDBインスタンスへのログインに使用されるアカウント。
<password>: ApsaraDB for MongoDBインスタンスへのログインに使用されるパスワード。
リカバリーが完了したら、Azure Cosmos DB のバックアップは ApsaraDB for MongoDB インスタンスにマイグレーションされます。