本ドキュメントでは、Data Transmission Service(DTS)を使用して、オンプレミス MongoDB データベースから ApsaraDB for MongoDB にデータを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行をサポートします。 増分データ移行を使用して、サービスを中断することなく、ApsaraDB for MongoDB にシームレスにデータを移行できます。

前提条件

  • オンプレミス MongoDB インスタンスのサービスポートは、パブリックネットワークに対して開かれています。
  • ソースデータベースのデータベースバージョンは、3.0、3.2、3.4、または 3.6 である必要があります。 MongoDB 4.0 はサポートされていません。 MongoDB 4.0 におけるデータ移行についての詳細は、MongoDB が提供するツールを使用したオンプレミスデータベースの Alibaba Cloud への移行 をご参照ください。
  • ApsaraDB for MongoDB インスタンスのストレージスペースは、オンプレミス MongoDB インスタンスのストレージスペースよりも大きくする必要があります。

  • admin データベースのデータは移行できません。
  • config データベースは内部データベースです。 特に必要がない限り、config データベースからデータを移行しないことをお勧めします。
  • オンプレミススタンドアロン MongoDB インスタンスの場合、まず oplog を有効にして DTS の増分データ移行を使用する必要があります。 詳細は、増分データ移行前の準備 をご参照ください。
  • ビジネスの中断を避けるため、オフピーク時にデータを移行することをお勧めします。

課金情報

移行タイプ 構成料金 パブリックネットワークトラフィック料金:
フルデータ移行 請求されない 請求されない
増分データ移行 請求される 詳細は、データ送信サービスの価格 をご参照ください。 請求されない

移行タイプの説明

  • フルデータ移行:オンプレミス MongoDB データベースのすべてのデータは、移行先インスタンスに移行されます。
    • database を移行します。
    • collection を移行します。
    • index を移行します。
  • 増分データ移行:オンプレミスデータベースの増分更新データは、完全なデータ移行に基づいて、移行先インスタンスのデータベースに同期されます。
    • database の追加、削除、および更新操作の同期。
    • document の追加、削除、および更新操作の同期。
    • collection の追加、削除、および更新操作の同期。
    • index の追加、削除、および更新操作の同期。

移行権限の要件

DTS を使用して MongoDB データベースを移行する場合、特定の種類の移行を実行する際には特定の権限が必要です。 詳細は以下のとおりです。

ソースデータベース フルデータ移行 増分データ移行
オンプレミス MongoDB データベース 読み取り権限
  • ソースデータベースの読み取り権限
  • 管理データベースの読み取り権限
  • ローカルデータベースの読み取り権限
ApsaraDB for MongoDB 読み書き権限 読み書き権限
MongoDB アカウントを作成および権限付与する方法の詳細については、MongoDB の公式ドキュメントの db.createUser をご参照ください。

増分データ移行前の準備

増分データ移行に DTS を使用するには、まずソースデータベースの oplog を有効にする必要があります。 次のセクションでは、オンプレミス MongoDB データベースの oplog を有効にする方法について説明します。 完全なデータ移行のみを実行する場合は、この手順をスキップしていただいて構いません。
この操作による MongoDB サービスの再起動が必要であり、データベースアクセスに影響します。 そのため、ピーク時間外に操作を実行することを推奨します。
  1. mongo shell を使用して、オンプレミス MongoDB サーバーにログインできます。 オンプレミスデータベースの MongoDB サービスを停止するには、次のコマンドを実行する必要があります。
    use admin
    db.shutdownServer()
  2. 次のコマンドを実行して、バックエンドから MongoDB サービスをレプリカセットとして起動します。
    mongod --port 27017 --dbpath /var/lib/mongodb --logpath /var/log/mongodb/mongod.log --replSet rs0 --bind_ip 0.0.0.0 --auth --fork
    • このコマンドは、オンプレミス MongoDB インスタンスの既存のデータベースパス /var/lib/mongodb およびログファイル /var/log/mongodb/mongod.log を使用します。 オンプレミスサーバー上の実際のディレクトリパスに基づいて、ディレクトリパスを指定できます。
    • このコマンドは、MongoDB サービスのバインディングアドレスとして 0.0.0.0 を使用します。これにより、すべての IP アドレスからのアクセスが許可されます。
    • このコマンドは認証を有効にします。 ユーザーは、認証に通過した後にのみデータベースにアクセスできます。
    • kill コマンドを実行して、プロセスを終了できます。
  3. mongo shell を使用して、オンプレミス MongoDB サーバーにログインし、次のコマンドを実行してレプリカセットを初期化します。
    use admin
    rs.initiate()
  4. 数分待ちます。 現行ノードのステータスはプライマリに変わります。

スタンドアロンアーキテクチャにデプロイされたオンプレミス MongoDB データベースの oplog を有効にしました。 rs.printReplicationInfo() コマンドを実行して、oplog のステータスを表示できます。

MongoDB データベースから ApsaraDB for MongoDB インスタンスへのデータの移行手順

  1. DTS コンソール にログインします。
  2. 左側のナビゲーションウィンドウで、データ移行 をクリックします。
  3. データ移行ページの右上隅で、移行タスクの作成をクリックします。
  4. 移行タスクのソースデータベースとターゲットデータベースを構成します。 MongoDB 移行用のソースデータベースとターゲットデータベースの構成
    パラメータ 説明 
    タスク名
    • DTS は各タスクのタスク名を自動的に生成します。 タスク名は一意である必要はありません。
    • 必要に応じてタスク名を変更できます。 タスクの識別のため、タスクに意味のある名前を指定することをお勧めします。
    ソースデータベース
    • インスタンスタイプ:オンプレミスデータベースを選択します。
    • データベースエンジン:MongoDB を選択します。
    • ホスト名または IP アドレス:オンプレミス MongoDB インスタンスのアドレスを入力します。 このアドレスはパブリック IP アドレスである必要があります。
    • ポート:オンプレミス MongoDB インスタンスのサービスポートを指定します。
    • データベース名:オンプレミス MongoDB データベースの認証データベース名を指定します。
    • データベースアカウント:オンプレミスデータベースへのアクセスに使用するアカウントを入力します。 詳細は、移行権限の要件 をご参照ください。
    • データベースパスワード:オンプレミス MongoDB インスタンスへのアクセスに使用されるデータベースアカウントのパスワードを指定します。
    ターゲットデータベース
    • インスタンスタイプ:MongoDB インスタンスを選択します。
    • インスタンスリージョン:ターゲット MongoDB インスタンスが存在するリージョンを選択します。
    • MongoDB インスタンス ID:ターゲット MongoDB インスタンスのインスタンス ID を選択します。
    • データベース名:ターゲットインスタンスの認証データベース名を入力します。 デフォルト設定:elastic。
    • データベースアカウント:ターゲット MongoDB インスタンスのデータベースへのアクセスに使用するアカウントを入力します。 詳細は、移行権限の要件 をご参照ください。
    • データベースパスワード:ターゲット MongoDB インスタンスへのアクセスに使用されるデータベースアカウントのパスワードを入力します。
  5. パラメータを構成後、右下隅のホワイトリストを承認して次のステップに進むボタンをクリックします。
    • DTS サーバーの IP アドレスは、ターゲット ApsaraDB for MongoDB インスタンスのホワイトリストに自動的に追加されます。 これにより、DTS サーバーが ApsaraDB for MongoDB インスタンスにアクセスできるようになります。 移行が完了したら、不要になったホワイトリストを削除できます。 詳細は、ホワイトリストの構成 をご参照ください。
    • オンプレミス MongoDB データベースにホワイトリストが構成されている場合、次の操作を実行する必要があります。ソースデータベースセクションで、DTS IP の取得をクリックして DTS サーバーの IP アドレスを取得します。 次に、取得した IP アドレスをオンプレミス MongoDB データベースのホワイトリストに追加します。
  6. 移行オブジェクトと移行タイプを選択します。移行オブジェクトと移行タイプの構成
    パラメータ 説明 
    移行タイプ
    • データをすべて移行する場合は、移行タイプとしてフルデータ移行を選択します。
      データの整合性を確保するために、フル移行が実行されているときにソース MongoDB データベースに新しいデータを書き込まないようにします。
    • ビジネスを停止せずにデータを移行する必要がある場合は、移行タイプでフルデータ移行および増分データ移行を選択します。
      オンプレミススタンドアロン MongoDB インスタンスの場合、まず oplog を有効にして DTS の増分データ移行を使用する必要があります。 詳細は、増分データ移行前の準備 をご参照ください。
    移行オブジェクト
    • 利用可能リストから移行するデータベースを選択し、をクリックして選択済みリストに移動します。
      • admin データベースのデータは移行できません。
      • config データベースは内部データベースです。 特に必要がない限り、config データベースからデータを移行しないことをお勧めします。
    • 移行オブジェクトは database、及び collection/function であることが可能です。
    • オブジェクトが ApsaraDB for MongoDB インスタンスに移行された後、ApsaraDB for MongoDB のオブジェクト名は、オンプレミスデータベースのオブジェクト名と同じようになります。
      移行されたオブジェクトの名前がオンプレミスソースデータベースとターゲットインスタンスで異なる場合、DTS が提供するオブジェクト名マッピング機能を使用できます。 詳細は、 オブジェクト名のマッピング をご参照ください。
  7. 上述の構成を完了したら、右下隅の プリチェック をクリックします。
    • 移行タスクが開始される前にプリチェックが実行されます。 プリチェックが成功した後にのみ移行が開始されます。
    • プリチェックに失敗した場合、アイコンをクリックして、対応するチェック項目にの詳細を表示します。 問題を修正後、プリチェックが再度実行されます。
  8. プリチェックが成功したら、次へ をクリックします。
  9. 設定の確認ページで、チャネル仕様を設定し、データ送信サービス(従量課金)利用規約チェックボックスにチェックを入れます。
  10. 購入してスタートをクリックして移行タスクを開始します。
    • フルデータ移行

      移行タスクが自動的に停止するまで待ちます。

    • 増分データ移行
      移行タスクは自動的に停止しません。 移行タスクを停止するには、タスクが移行タスク遅延なし状態になるまで待っていただいて、ソースデータベースへの書き込みを停止します。 数分後、タスクは再度移行タスク遅延なし 状態になり、タスクを停止できます。遅延のない増分移行

データが正しいか確認します。 正しい場合、オンプレミスデータベースから ApsaraDB for MongoDB インスタンスに切り替えることができます。

詳細情報

mongo shell を介したスタンドアロン ApsaraDB for MongoDB インスタンスへの接続