現在、ApsaraDB for MongoDB はデータ移行ソリューションを 2 つ提供しています。 DTS または MongoDB の組み込みコマンドを使用してデータを移行できます。 本ドキュメントでは、DTS を使用して、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにデータを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行をサポートします。 DTS を使用することで、ローカルアプリケーションのサービスを中断することなく、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにデータをスムーズに移行できます。

DTS を使用してデータを移行する際の制約

  • 関連インスタンスは、スタンドアロンまたはレプリカセットインスタンスである必要があります。
  • フルデータ移行:

    DTS を使用して、ソースインスタンスの移行オブジェクトに格納されているすべてのデータをターゲットのインスタンスに移行できます。

  • 増分データ移行

    自己構築 MongoDB インスタンスに格納されている増分データを ApsaraDB for MongoDB インスタンスに動的に同期させることができます。 増分データ移行を使用すると、自己構築 MongoDB インスタンスのサービスを中断することなく、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにスムーズにデータを移行できます。

移行機能

  • ApsaraDB for MongoDB は、MongoDB 3.0、MongoDB 3.2、および MongoDB 3.4 をサポートします。
  • フルデータ移行を使用することで、次のことが可能になります。
    • database の移行。
    • collection の移行。
    • index の移行。
  • 増分データ移行を使用することで、次のこと可能になります。
    • document の追加、削除、および更新操作の同期。
    • collection の追加、削除、および更新操作の同期。
    • database の追加、削除、および更新操作の同期。
    • index の追加、削除、および更新操作の同期。

必要な権限

次の表は、異なる移行タイプの DTS を使用して、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにデータを移行するときに、ソースインスタンスとターゲットインスタンスの移行アカウントに必要な権限を示しています。

移行タイプ フルデータ移行 増分データ移行
自己構築 MongoDB インスタンス 読み取り権限
  • ソースデータベースの読み取り権限
  • 管理データベースの読み取り権限
  • ローカルデータベースの読み取り権限
対象の ApsaraDB for MongoDB インスタンス 読み取り権限と書き込み権限 読み取り権限と書き込み権限

準備

自己構築 MongoDB インスタンスまたは ApsaraDB for MongoDB インスタンスの移行アカウントを作成していない場合は、次のコマンドを実行して移行アカウントを作成します。

    db.createUser({user:"username",pwd:"password",roles:[{role:"rolename1",db:"database_name1"},{role:"rolename2",db:"database_name2"}]})

移行アカウントに必要な権限の詳細は、前の表をご参照ください。

パラメータは次のようになります。
  • username:作成するアカウントのユーザー名。
  • password:作成するアカウントのパスワード。
  • rolename1 / rolename2:読み取り権限、読み取りおよび書き込み権限など、アカウントに付与されるロール権限。
  • database_name1 / database_name2:役割権限がアカウントに付与されるデータベース。
  • 自己構築 MongoDB インスタンスのロール権限をアカウントに付与する方法の詳細は、db.createUser()をご参照ください。

手順

DTS を使用してデータを移行する手順は次のとおりです。

  1. Alibaba Cloud DTS コンソールにログインします。 左側のナビゲーションウィンドウで、データの移行 をクリックします。 表示されたページで、 移行タスクの作成をクリックしてタスク構成ページに移動します。 次の図に示すように、タスク名、ソースデータベース情報、およびターゲットデータベース情報を入力します。
    ソースデータベースとターゲットデータベースの情報
    タスク名
    • DTS は各タスクのタスク名を自動的に生成します。 重複するタスク名は許可されています。
    • 必要に応じてタスク名を変更します。 将来タスクを簡単に識別できるように、ビジネスに関連するタスク名を使用することをお勧めします。
    ソースデータベース
    • インスタンスタイプ:「オンプレミスデータベース」を選択します。
    • データベースエンジン:「MongoDB」を選択します。
    • ホスト名または IP アドレス:自己構築 MongoDB インスタンスへのアクセスに使用されるパブリックアドレスを指定します。
    • ポート:自己構築 MongoDB インスタンスのリスニングポートを指定します。
    • データベース名:自己構築 MongoDB インスタンスのデータベース名を指定します。
    • データベースアカウント:自己構築 MongoDB インスタンスへのログインに使用されるアカウントを指定します。
    • データベースパスワード:自己構築 MongoDB インスタンスへのログインに使用されるアカウントのパスワードを指定します。
    ターゲットデータベース
    • インスタンスタイプ:「MongoDB インスタンス」を選択します。
    • MongoDB インスタンス ID:ターゲット ApsaraDB for MongoDB インスタンスの ID を指定します。
    • DTS は、ネットワークタイプがクラシックネットワークである ApsaraDB for MongoDB インスタンスにのみをサポートします。 ApsaraDB for MongoDB インスタンスのネットワークタイプが VPC の場合は、DTS を使用してデータを移行する前に、そのネットワークタイプをクラシックネットワークに切り替える必要があります。
    • データベース名:ターゲット MongoDB インスタンスのデフォルトのデータベース名を入力します。
    • データベースアカウント:ApsaraDB for MongoDB インスタンスへのログインに使用されるアカウントを指定します。
    • データベースパスワード:ApsaraDB for MongoDB インスタンスへのログインに使用されるアカウントのパスワードを指定します。
  2. 接続情報を構成したら、右下隅のホワイトリストを認証して次のステップに進むをクリックします。

    このステップでは、DTS サーバーの IP アドレスをターゲット ApsaraDB for MongoDB インスタンスのホワイトリストに追加して、データ移行を容易にするために DTS サーバーをターゲット ApsaraDB for MongoDB インスタンスに正常に接続できるようにします。

  3. 移行オブジェクトと移行タイプを選択します。
    移行オブジェクトと移行タイプ
    移行タイプ
    • ApsaraDB for MongoDB は、フルデータ移行と増分データ移行をサポートします。
    • すべてのデータだけを移行する必要がある場合は、[既存のデータの移行]を選択します。
    • サービスを中断せずにデータを移行する必要がある場合は、[既存のデータの移行]と[データ変更の複製]の両方を選択します。
    移行オブジェクト
    • 移行オブジェクトとしてデータベースまたは collection/function を選択できます。
    • 選択したオブジェクトが ApsaraDB for MongoDB インスタンスに移行された後のオブジェクト名は、デフォルトでは自己構築 MongoDB インスタンスのものと同じです。
      移行オブジェクトの名前がソースインスタンスとターゲットインスタンスで異なる場合は、DTS のオブジェクト名マッピング機能を使用する必要があります。 詳細は、 データベースのマッピング、テーブル、および列の名前をご参照ください。
  4. 移行タスクの事前チェック

    移行タスクを開始する前に、DTS より事前チェックが実行されます。 移行タスクは、事前チェックの通過後にのみ開始できます。 事前チェックの内容と修正方法については、本ドキュメントの最後にある事前チェック項目をご参照ください。

    事前チェックに失敗した場合は、失敗した項目のチェック結果をクリックして詳細を表示し、失敗の原因に基づいて項目を修正してから、事前チェックを再開することができます。

  5. 移行タスクを起動します。

    事前チェックを通過したら、移行タスクを開始できます。 タスクのリストで、移行のステータスと進行状況を表示できます。

    これで、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにデータを移行するための移行タスクを作成しました。

事前チェック項目

移行タスクを開始する前に、DTS は事前チェックを実行します。 次の表に、自己構築 MongoDB インスタンスから ApsaraDB for MongoDB インスタンスにデータを移行するための移行タスクにおける事前チェックの内容を示します。

項目 内容 注意事項
ソースデータベース接続 DTS サーバーが自己構築 MongoDB インスタンスに接続できるかどうかをチェックします。
  • 入力した情報が正しいかどうかをチェックします。 情報に誤りがある場合は、それを訂正して、事前チェックをやり直します。
  • [DO NOT TRANSLATE]
ターゲットデータベース接続 DTS サーバーがターゲットの ApsaraDB for MongoDB インスタンスに接続できるかどうかをチェックします。 入力した情報が正しいかどうかをチェックします。 情報に誤りがある場合は、それを訂正して、事前チェックをやり直します。
ソースデータベースバージョンのチェック DTS が自己構築 MongoDB インスタンスのデータベースバージョンをサポートしているかどうかをチェックします。 データベースのバージョンを MongoDB 3.2 にアップグレードして、事前チェックを再開します。
ソースデータベースの権限のチェック 自己構築 MongoDB インスタンスの移行アカウントに必要な権限が付与されているかどうかをチェックします。 この項目が事前チェックに失敗した場合は、本ドキュメントの関連指示に従って権限を付与し、事前チェックを最初からやり直します。
ターゲットデータベースの権限のチェック ターゲットの ApsaraDB for MongoDB インスタンスの移行アカウントに必要な権限が付与されているかどうかをチェックします。 この項目が事前チェックに失敗した場合は、本ドキュメントの関連指示に従って権限を付与し、事前チェックを最初からやり直します。
[DO NOT TRANSLATE] [DO NOT TRANSLATE] [DO NOT TRANSLATE]