Data Transmission Service (DTS) を使用して、セルフマネージド MongoDB レプリカセットを ApsaraDB for MongoDB に移行します。DTS は、全量データ移行と増分データ移行の両方をサポートしています。これらを組み合わせることで、サービスを中断することなくデータベースをクラウドに移行できます。
または、MongoDB ツールを使用して、自己管理型データベースをレプリカセットインスタンスに移行することもできます。その他のソリューションについては、「データ移行と同期」をご参照ください。
前提条件
ソースのセルフマネージド MongoDB データベースと、ターゲットの ApsaraDB for MongoDB インスタンスは、サポートされているバージョンである必要があります。サポートされているバージョンの一覧については、移行ソリューションの概要をご参照ください。
ターゲットの ApsaraDB for MongoDB インスタンスには、ソースのセルフマネージド MongoDB データベースより 10% 以上多いストレージ領域が必要です。
注意事項
configデータベースは内部システムデータベースです。特別な要件がない限り、移行しないでください。フルデータ移行中、DTS は移行元と移行先の両方のデータベースでリソースを消費し、データベースサーバーの負荷を増大させます。お使いのデータベースが高負荷である場合や、仕様が低い場合、移行によってさらに負荷がかかったり、サービスが中断されたりする可能性があります。潜在的な影響を評価し、オフピーク時間帯にデータ移行を実行してください。
MongoDB インスタンスでサポートされているバージョンとストレージエンジンについては、「バージョンとストレージエンジン」をご参照ください。異なるバージョンまたはストレージエンジン間でデータを移行する場合は、事前に互換性を確認してください。
adminデータベースとlocalデータベースは、移行元または移行先のデータベースとして使用することはできません。DTS はデータを並行して書き込みます。その結果、移行先データベースは移行元データベースよりも 5%~10% 多くストレージスペースを使用する場合があります。
移行先データベースに、移行元データベースと同じプライマリキー (デフォルトでは
_idフィールド) を持つドキュメントが存在しないことを確認してください。そうでない場合、データが失われます。重複したプライマリキーを持つドキュメントが存在する場合、サービスに影響がなければ、移行前に移行先データベースからそれらを削除してください。
課金
移行タイプ | リンク構成料金 | データ転送料金 |
全量データ移行 | 無料です。 | パブリックネットワーク経由で Alibaba Cloud からデータを移行する場合、データ転送料金が発生します。詳細については、「課金概要」をご参照ください。 |
増分データ移行 | 有料です。詳細については、「課金概要」をご参照ください。 |
移行タイプ
フルデータ移行:ソース MongoDB データベースからターゲット MongoDB データベースに、すべての履歴データを移行します。
説明データベース、コレクション、およびインデックスの移行に対応しています。
増分データ移行:フルデータ移行に加え、ソース MongoDB データベースからターゲット MongoDB データベースに増分更新をレプリケートします。
説明データベース、コレクション、およびインデックスの作成と削除のレプリケートに対応しています。
ドキュメントの挿入、削除、および更新のレプリケートに対応しています。
データベースアカウントの権限要件
データソース | フルデータ移行 | 増分データ移行 |
自己管理型 MongoDB データベース | 移行対象のデータベースに対する | 移行対象のデータベース、 |
ApsaraDB for MongoDB | 宛先データベースの | 宛先データベースの |
データベースアカウントを作成して権限を付与するには、次のドキュメントをご参照ください。
ApsaraDB for MongoDB インスタンスについては、Data Management Service (DMS) での MongoDB データベースユーザーの管理をご参照ください。
自己管理型 MongoDB データベースについては、MongoDB でのユーザー作成をご参照ください。
移行タスクの設定と実行
ステップ 1: データ移行ページへの移動
Data Transmission Service (DTS) コンソール経由:
DTS コンソールにログインします。
左側のナビゲーションペインで、[データ移行] をクリックします。
左上隅で、移行インスタンスがあるリージョンを選択します。
Data Management (DMS) コンソール経由:
実際の手順は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。
DMS コンソールにログインします。
上部のナビゲーションバーで、ポインターを [Data + AI] > [DTS (DTS)] > [データ移行] に合わせます。
[データ移行タスク] の右側にあるドロップダウンリストから、移行インスタンスがあるリージョンを選択します。
ステップ 2: タスクの作成とソースデータベースおよびターゲットデータベースの設定
タスクの作成 をクリックします。
次の表のパラメーターを使用して、ソースデータベースとターゲットデータベースを設定します。
ソースデータベースとターゲットデータベースを設定した後、ページの上部に表示される [制限] を確認してください。このステップをスキップすると、タスクが失敗したり、データ不整合が発生したりする可能性があります。
ソースデータベースのパラメーター
パラメーター | 説明 |
[タスク名] | タスクの名前。DTS は自動的に名前を生成します。タスクを簡単に識別できるように、わかりやすい名前を指定してください。タスク名は一意である必要はありません。 |
[既存の接続を選択] | ソースデータベースが DTS に登録されている場合は、ドロップダウンリストから選択します。DTS は残りのパラメーターを自動的に入力します。それ以外の場合は、以下のパラメーターを手動で設定します。 |
[データベースタイプ] | [MongoDB] を選択します。 |
[アクセス方法] | ソースデータベースの場所に基づいて接続タイプを選択します。このトピックでは、例として [パブリック IP アドレス] を使用します。別の接続タイプを選択した場合は、必要な準備を完了してください。 |
[インスタンスリージョン] | ソースデータベースがあるリージョンを選択します。リージョンがリストにない場合は、地理的に最も近いリージョンを選択します。 |
[アーキテクチャ] | [レプリカセット] を選択します。 |
[移行方法] | 増分データを移行する方法として、Oplog (推奨) または ChangeStream を選択します。Oplog は、ソースで oplog 機能が有効になっている場合に使用できます。ChangeStream は、チェンジストリームが有効になっている場合に使用できます。ソースが非エラスティックな Amazon DocumentDB クラスターである場合、[ChangeStream] を選択し、[アーキテクチャ] パラメーターを シャードクラスター に設定する必要があります。[アーキテクチャ] パラメーターに [シャードクラスター] を選択した場合、[シャードアカウント] パラメーターと シャードパスワード パラメーターを設定する必要はありません。 |
[エンドポイントタイプ] | [スタンドアロン] または [マルチノード] を選択します。 [アクセス方法] が [Express Connect、VPN Gateway、または Smart Access Gateway]、[パブリック IP アドレス]、または [Cloud Enterprise Network (CEN)] の場合に利用できます。 |
[ドメイン名または IP] | ソースデータベースのドメイン名または IP アドレス。 [エンドポイントタイプ] が [スタンドアロン] の場合に利用可能です。 |
[ポート番号] | ソースデータベースのサービスポート。[エンドポイントタイプ] が [スタンドアロン] の場合に利用可能です。 |
[エンドポイント] | ソースデータベースのエンドポイントは、 |
[認証データベース] | ソースアカウントが属するデータベース。デフォルト: |
[データベースアカウント] | ソースデータベースへの接続に使用するアカウント。必要な権限については、「必要な権限」をご参照ください。[アクセス方法] が [ECS 上の自己管理データベース] または [データベースゲートウェイ] の場合、シャードノードのアカウントを入力します。 |
[データベースパスワード] | データベースアカウントのパスワード。 |
[暗号化] | 接続の暗号化方式: [暗号化なし]、[SSL 暗号化]、または [Mongo Atlas SSL]。 使用可能なオプションは、[アクセス方法] と [アーキテクチャ] によって異なります。 [アーキテクチャ] が [シャーディングクラスター] で、[移行方法] が [Oplog] の場合、SSL 暗号化は使用できません。 [アーキテクチャ] が [レプリカセット] で、[アクセス方法] が [Alibaba Cloud インスタンス] ではなく、[暗号化] が [SSL 暗号化] の場合、接続を検証するために CA 証明書をアップロードする必要があります。 |
ターゲットデータベースのパラメーター
パラメーター | 説明 |
[既存の接続を選択] | ターゲットインスタンスが DTS に登録されている場合は、ドロップダウンリストから選択します。それ以外の場合は、以下のパラメーターを手動で設定します。 |
[データベースタイプ] | [MongoDB] を選択します。 |
[アクセス方法] | [Alibaba Cloud インスタンス] を選択します。 |
[インスタンスリージョン] | ターゲットの ApsaraDB for MongoDB インスタンスがあるリージョンを選択します。 |
[Alibaba Cloud アカウント間でのデータレプリケーション] | 現在のアカウントのインスタンスを使用するには、[いいえ] を選択します。 |
[アーキテクチャ] | ターゲットインスタンスのアーキテクチャを選択します。 |
[インスタンス ID] | ターゲットインスタンスの ID を選択します。 |
[認証データベース] | ターゲットアカウントが属するデータベース。デフォルト: |
[データベース名] | 移行されたオブジェクトが格納されるターゲットインスタンス内のデータベースの名前。 |
[データベースアカウント] | ターゲットインスタンスへの接続に使用するアカウント。必要な権限については、「必要な権限」をご参照ください。 |
[データベースパスワード] | データベースアカウントのパスワード。 |
[暗号化] | 接続の暗号化方法。ターゲットがシャードクラスターアーキテクチャを使用している場合、SSL 暗号化は利用できません。 |
ステップ 3: 接続性のテスト
[接続をテストして続行] をクリックし、次に [DTS サーバーの CIDR ブロック] ダイアログボックスで [接続テスト] をクリックします。
DTS サーバーの CIDR ブロックがソースデータベースとターゲットデータベースの許可リストに追加されていることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
ステップ 4: 移行オブジェクトの設定
[オブジェクトの設定] ページで、次のパラメーターを使用して移行オブジェクトを設定します。
パラメーター | 説明 |
[移行タイプ] | 移行タイプを選択します: [スキーマ移行]、[完全データ移行]、およびオプションで [増分データ移行]。ゼロダウンタイム移行の場合は、3 つすべてを選択します。[スキーマ移行] をスキップする場合は、開始前にターゲットデータベースとコレクションをターゲットで作成してください。[増分データ移行] をスキップする場合は、移行中にソースへの書き込みを行わないでください。 |
[競合するテーブルの処理モード] | [事前チェックとエラー報告]: ターゲットにソースと同じ名前のコレクションが含まれている場合、事前チェックは失敗します。既存のコレクションを削除できない場合は、オブジェクト名マッピングを使用して移行されたコレクションの名前を変更してください。[エラーを無視して続行]: 事前チェックをスキップします。DTS は、既存の移行先レコードと同じプライマリキーを持つレコードを移行しません。データの一貫性は保証されません。 |
[ターゲットインスタンスのオブジェクト名の大文字/小文字] | ターゲットでのデータベース名とコレクション名の大文字/小文字のポリシー。デフォルト: [DTS のデフォルトポリシー]。詳細については、「移行先インスタンスのオブジェクト名の大文字/小文字の指定」をご参照ください。 |
[ソースオブジェクト] | 移行するデータベースまたはコレクションを選択します。 |
[選択したオブジェクト] | オブジェクトを右クリックして、ターゲットでの名前を変更 (オブジェクト名マッピング)、増分移行モードを設定、または完全移行のデータフィルタリングのための WHERE 条件を指定します。オブジェクトを削除するには、オブジェクトをクリックしてから |
ステップ 5: 詳細設定の構成
[次へ: 詳細設定] をクリックし、以下のパラメーターを設定します。
パラメーター | 説明 |
[タスクスケジューリング用の専用クラスター] | デフォルトでは、DTS は共有クラスターでタスクをスケジュールします。分離されたリソースのために専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。 |
[接続失敗時の再試行時間] | 接続失敗時の再試行期間。有効な値: 10~1,440 分。デフォルト: 720 分。この値は少なくとも 30 分に設定してください。異なるタスクが同じソースまたはターゲットデータベースを共有する場合、最後に設定された値が優先されます。 |
[その他の問題に対する再試行時間] | DDL または DML 操作の失敗に対する再試行期間。有効な値: 1~1,440 分。デフォルト: 10 分。この値は少なくとも 10 分に設定してください。この値は [接続失敗時の再試行時間] より小さくする必要があります。 |
[完全データ移行のスロットリングを有効にする] | 完全移行中のソースとターゲットの読み取り/書き込み負荷を制限します。ソースデータベースへの QPS、完全データ移行の RPS、およびデータ移行速度を設定します。[完全データ移行] が選択されている場合にのみ利用できます。 |
[同期対象データのテーブルにおけるプライマリキー | [はい]: DTS は、すべての型をスキャンせずに、コレクションごとに 1 つのデータ型の |
[増分データ移行のスロットリングを有効にする] | 増分移行中の負荷を制限します。増分データ移行の RPS とデータ移行速度を設定します。[増分データ移行] が選択されている場合にのみ利用できます。 |
[環境タグ] | インスタンスを識別するためのオプションのタグ。 |
[ETL の設定] | 抽出、変換、ロード (ETL) 機能を有効にすることで、移行中にデータを変換できます。詳細については、「データ移行またはデータ同期タスクでの ETL の設定」をご参照ください。 |
[監視とアラート] | タスクの失敗や高い移行遅延に対するアラートを設定できます。有効にした場合は、アラートのしきい値と通知先を設定してください。詳細については、「監視とアラートの設定」をご参照ください。 |
ステップ 6: データ検証の設定 (オプション)
[次のデータ検証] をクリックしてデータ検証タスクを設定します。詳細については、「データ検証タスクを設定する」をご参照ください。
ステップ 7: 事前チェックの実行
[次へ: タスク設定の保存と事前チェック] をクリックします。
このタスク設定の API パラメーターをプレビューするには、ポインターを [次へ: タスク設定の保存と事前チェック] の上に移動し、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS は、移行を開始する前に事前チェックを実行します。タスクは、事前チェックに合格した後にのみ開始されます。
チェック項目が失敗した場合は、[詳細を表示] をクリックして問題を解決し、[再チェック] をクリックします。
無視できるチェック項目でアラートが発生した場合は、[アラート詳細の確認] > [無視] > [OK] > [再度事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。
ステップ 8: インスタンスの購入と開始
成功率が 100% に達するのを待ってから、[次へ:インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、次のパラメーターを設定します。
パラメーター | 説明 |
[リソースグループ] | 移行インスタンスのリソースグループ。デフォルト: デフォルトのリソースグループ。詳細については、「リソース管理とは」をご参照ください。 |
[インスタンスクラス] | インスタンスクラスは移行速度を決定します。データ量とタイミングの要件に基づいて選択してください。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。 |
[Data Transmission Service (従量課金) サービス利用規約] を読み、同意する場合はチェックボックスを選択します。
[購入して開始] をクリックし、次に確認ダイアログボックスで [OK] をクリックします。