MongoDB は、Azure Cosmos DB API for MongoDB を Alibaba Cloud にマイグレーションするために使用できるネイティブバックアップユーティリティを提供します。
注記
- データマイグレーションはフルマイグレーションです。 データの不整合を避けるために、マイグレーションする前にデータベースへの書き込み操作をすべて停止することをお勧めします。
- データベースのバックアップに mongodump コマンドを使用した場合は、dump フォルダ内のファイルを他のディレクトリに移動します。 データマイグレーションの前に、デフォルトの dump フォルダが空であることを確認します。 そうでなければ、このフォルダ内の既存のバックアップファイルは上書きされます。
- mongodump コマンドと mongorestore コマンドは mongo shell で実行するのではなく、 MongoDB がインストールされているサーバー上で実行します。
必要なデータベース権限
マイグレーションタイプ | フルマイグレーション |
---|---|
Azure Cosmos DB | Read |
対象 MongoDB インスタンス | Read と write |
環境の構成
- ApsaraDB for MongoDB インスタンスを作成します。 詳細、インスタンスの作成をご参照ください。
注
- インスタンスのストレージ容量は Azure Cosmos DB のサイズより大きいである必要があります。
- MongoDB バージョン 3.4 を選択します。
- ApsaraDB for MongoDB インスタンスのパスワードを設定します。 詳細は、パスワードの設定をご参照ください。
- MongoDB をサーバーにインストールします。 詳細は、MongoDB のインストールをご参照ください。
注
- MongoDB 3.0 以降のバージョンをインストールします。
- このサーバーはバックアップおよびリカバリー中にデータを一時的に保存するために使用され、マイグレーションの完了後には必要ありません。
- バックアップが保存されるストレージ容量は 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 --sslAllowInvalidCertificates
注:<HOST>、<USERNAME>、および<PRIMARY 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>:MongoDB インスタンスのユーザー名。
- <password>:MongoDB インスタンスのパスワード。
リカバリーが完了したら、Azure Cosmos DB のバックアップは ApsaraDB for MongoDB インスタンスにマイグレーションされます。