ネイティブツールの mongodump と mongorestore を使用して、Azure Cosmos DB API for MongoDB から ApsaraDB for MongoDB へデータを移行します。
注意事項
-
これは完全移行です。開始する前に、ソースデータベースへのすべての書き込み操作を停止してください。
-
以前に
mongodumpを使用してデータベースをバックアップした場合は、バックアップファイルをデフォルトの dump フォルダーから移動してください。そうしないと、フォルダー内の既存のファイルが上書きされます。 -
mongodumpおよびmongorestoreコマンドは、mongo シェル内ではなく、MongoDB がインストールされているサーバー上で実行します。
必要な権限
|
インスタンスタイプ |
アカウント権限 |
|
Azure Cosmos DB |
read |
|
移行先 MongoDB インスタンス |
readWrite |
前提条件
-
ApsaraDB for MongoDB インスタンスを作成します。詳細については、「インスタンスの作成」をご参照ください。
説明-
移行先インスタンスには、ソースの Azure Cosmos DB データよりも多くのストレージ容量が必要です。
-
MongoDB バージョン 4.0 以降を選択してください。
-
-
ApsaraDB for MongoDB インスタンスのパスワードを設定します。詳細については、「パスワードの設定」をご参照ください。
-
サーバーに MongoDB をインストールします。詳細については、「MongoDB のインストール」をご参照ください。
説明-
MongoDB 3.0 以降をインストールしてください。
-
このサーバーは一時的なホストです。移行後に廃止できます。
-
バックアップディレクトリのパーティションには、ソースの Azure Cosmos DB データよりも多くの利用可能なディスク容量が必要です。
以降の手順では、Linux サーバーを例に説明します。
-
手順
-
Azure portal にログインします。
-
左側のナビゲーションペインで、[Azure Cosmos DB] をクリックします。
-
[Azure Cosmos DB] ページで、移行するアカウントをクリックします。
-
アカウント詳細ページで、[接続文字列] をクリックします。
-
[読み取り専用キー] タブをクリックします。
図 1. Azure 接続情報。フィールドには、ホスト (
xxx.documents.azure.cn)、ポート (10255)、ユーザー名、プライマリパスワード、セカンダリパスワード、プライマリ接続文字列、セカンダリ接続文字列、および SSL (true) が含まれます。ホスト、ユーザー名、および プライマリパスワードのみが必要です。説明この移行には読み取り専用権限で十分です。
-
Linux サーバー上で、次のコマンドを実行してソースデータベースをバックアップします。
mongodump --host <HOST>:10255 --authenticationDatabase admin -u <USERNAME> -p <PRIMARY PASSWORD> --ssl --sslAllowInvalidCertificates説明<HOST>、<USERNAME>、および<PRIMARY PASSWORD>を Azure 接続情報 の値で置き換えます。バックアップが完了するまで待ちます。データは現在のディレクトリの
dumpフォルダに保存されます。 -
ApsaraDB for MongoDB インスタンスのプライマリノードのエンドポイントを取得します。詳細については、「インスタンス接続の概要」をご参照ください。
-
Linux サーバー上で、次のコマンドを実行して ApsaraDB for MongoDB インスタンスにデータを復元します。
mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -p <password> dump説明-
<mongodb_host>:移行先インスタンスのプライマリノードのエンドポイント。
-
<username>:移行先インスタンスのデータベースユーザー名。
-
<password>:移行先インスタンスのデータベースパスワード。
-
復元が完了するまで待ちます。