このトピックでは、data Transmission Service (DTS) を使用して、異なるAlibaba CloudアカウントのApsaraDB for MongoDBインスタンス間でデータを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行をサポートします。 ApsaraDB for MongoDBインスタンス間でデータを移行する場合、サービスの継続性を確保するために、サポートされている両方の移行タイプを選択できます。
前提条件
ソースインスタンスは、スタンドアロンインスタンスまたはレプリカセットインスタンスです。 ソースインスタンスがシャードクラスターインスタンスの場合、MongoDBの組み込みコマンドを使用してデータを移行することを推奨します。 詳細については、「mongodumpとmongorestoreを使用した自己管理型MongoDBデータベースからApsaraDB For MongoDBシャードクラスターインスタンスへのデータの移行」をご参照ください。
説明DTSは、スタンドアロンインスタンスからの増分データ移行をサポートしていません。 詳細については、「移行タイプ」をご参照ください。
ターゲットインスタンスは、ターゲットリージョンに作成されます。 詳細については、「ApsaraDB For MongoDBスタンドアロンインスタンスの作成」、「レプリカセットインスタンスの作成」、または「シャードクラスターインスタンスの作成」をご参照ください。
説明ターゲットインスタンスの使用可能なストレージスペースは、ソースインスタンスのデータの合計サイズよりも10% に大きい。 これは推奨される前提条件です。
使用上の注意
DTSは、完全データ移行中にソースデータベースとターゲットデータベースのリソースを消費します。 これにより、データベースサーバーの負荷が増加する可能性があります。 データベースサーバーの負荷が高い場合、またはサーバーの仕様が移行要件を満たしていない場合、データベースサービスが利用できなくなることがあります。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。
DTSは、スタンドアロンインスタンスからの増分データ移行をサポートしていません。 データの一貫性を確保するために、完全データ移行中にソースインスタンスにデータを書き込まないでください。
ソースApsaraDB for MongoDBインスタンスとターゲットApsaraDB for MongoDBインスタンスのバージョンまたはストレージエンジンが異なる場合は、バージョンまたはストレージエンジンに互換性があることを確認してください。 詳細については、「MongoDBのバージョンとストレージエンジン」をご参照ください。
ApsaraDB for MongoDBインスタンスのマイナーバージョンが期限切れになるか、メンテナンスリストに含まれていない場合、および一部の操作を実行すると、ApsaraDB for MongoDBインスタンスのマイナーバージョンが自動的に最新バージョンに更新されます。 これにより、ApsaraDB for MongoDBインスタンスのパフォーマンスと安定性が向上します。 詳細については、データベースバージョンのアップグレード、データ移行、概要、バックアップポイント別に新しいApsaraDB For MongoDBインスタンスへのバックアップデータの復元、ポイントインタイム、およびApsaraDB for MongoDBインスタンスの1つ以上のデータベースの復元をご参照ください。
データは、同時に宛先データベースに書き込まれる。 したがって、移行先データベースで占有されるストレージスペースは、移行元データベースのデータのサイズよりも大きく10% 5% があります。
ターゲットMongoDBデータベースに、ソースデータベースと同じプライマリキーがないことを確認します。 デフォルトの主キーは_idです。 そうしないと、宛先データベースでデータ損失が発生する可能性があります。 ターゲットデータベースにソースデータベースと同じプライマリキーがある場合は、DTSのサービスを中断することなく、ターゲットデータベース内の関連データをクリアします。 同じプライマリキーが_idの場合、ソースデータベースと同じ_idを持つターゲットデータベースのデータを削除できます。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
フルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
移行タイプ
移行タイプ | 説明 |
フルデータ移行 | DTSは、オブジェクトの既存のデータをソースMongoDBデータベースからターゲットMongoDBデータベースに移行します。 説明 次のタイプのオブジェクトがサポートされています: データベース、コレクション、およびインデックス。 |
増分データ移行 | 完全データ移行が完了すると、DTSは増分データをソースMongoDBデータベースからターゲットMongoDBデータベースに移行します。 説明
|
データベースアカウントに必要な権限
データベース | 完全なデータ移行 | 増分データ移行 |
同期元の ApsaraDB for MongoDB インスタンス | ソースデータベースの読み取り権限 | ソース、管理者、およびローカルデータベースの読み取り権限 |
同期先の ApsaraDB for MongoDB インスタンス | ターゲットデータベースの読み取りおよび書き込み権限 | ターゲットデータベースの読み取りおよび書き込み権限 |
データベースアカウントを作成し、データベースアカウントに権限を付与する方法の詳細については、「MongoDBデータベースのユーザー権限の管理」をご参照ください。
準備
ソースインスタンスを所有するAlibaba Cloudアカウントを使用して、ApsaraDB for MongoDBコンソールにログインします。
ソースインスタンスのパブリックエンドポイントを申請します。 詳細については、「パブリックエンドポイントの申請」をご参照ください。
DTSサーバーのCIDRブロックをソースインスタンスのホワイトリストに追加します。 詳細については、「ApsaraDB For MongoDBインスタンスのIPアドレスホワイトリストの変更」をご参照ください。
説明追加する必要があるCIDRブロックは、ターゲットインスタンスが存在するリージョンに基づいて決定できます。 詳細については、「DTSサーバーのCIDRブロックの追加」をご参照ください。
たとえば、ソースインスタンスが中国 (杭州) リージョンにあり、ターゲットインスタンスが中国 (深セン) リージョンにある場合、中国 (深セン) リージョンのDTSサーバーのCIDRブロックをソースインスタンスのホワイトリストに追加する必要があります。
手順
ApsaraDB for MongoDBコンソールにログインします。
左側のナビゲーションウィンドウで、レプリカセットインスタンス または シャーディングインスタンス をクリックします。
ページの左上隅で、インスタンスが属するリソースグループとリージョンを選択します。
インスタンスのIDをクリックするか、で、操作インスタンスに対応する列を選択し、管理をクリックします。
インスタンスの詳細ページの右上隅で、オンプレミス MongoDB データベースの移行 をクリックします。
[移行タスクの作成] ページで、データ移行タスクを作成します。
ソースデータベースとターゲットデータベースを設定します。
セクション
パラメーター
説明
N/A
タスク名
DTSが自動的に生成するタスク名。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。
移行元データベース
インスタンスタイプ
ソースデータベースのインスタンスタイプ。 この例では、パブリックIPアドレスを持つユーザー作成データベースが選択されています。
インスタンスリージョン
ソースインスタンスが存在するリージョン。
データベースエンジン
移行元ディスクのタイプを設定します。 MongoDB を選択します。
Hostname or IP Address
ソースインスタンスのパブリックエンドポイントから取得したドメイン名。 例: dds-bp1b47357f218e74 **** -pub.mongodb.rds.aliyuncs.com。
ポート番号
ソースインスタンスのサービスポート。 この例では、3717が使用されます。
データベース名
認証データベースの名前。 このデータベースにデータベースアカウントが作成されます。
説明rootアカウントを使用する場合は、[データベース名] フィールドにadminと入力します。
データベースアカウント
ソースインスタンスへの接続に使用されるアカウントのユーザー名。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを設定します。
説明ソースデータベースに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が正しいかどうかを確認できます。 情報が正しい場合は、[合格] メッセージが表示されます。 それ以外の場合、[失敗] メッセージが表示され、[失敗] メッセージの横にある [確認] をクリックして情報を変更する必要があります。
暗号化
接続を暗号化するかどうかを指定します。 ビジネス要件に基づいて、[非暗号化] または [SSL暗号化] を選択します。 SSL暗号化を選択した場合、データ移行タスクを設定する前に、ソースインスタンスのSSL暗号化を有効にする必要があります。
説明MongoDB Atlasデータベースに対してのみSSL暗号化を選択できます。
SSL暗号化を選択すると、より多くのCPUリソースが消費されます。
ターゲットデータベース
インスタンスタイプ
ターゲットデータベースのインスタンスタイプ。 MongoDB インスタンス を選択します。
インスタンスリージョン
ターゲットApsaraDB for MongoDBインスタンスが存在するリージョン。
MongoDB インスタンス ID
ターゲットインスタンスの ID。
データベース名
認証データベースの名前。 このデータベースにデータベースアカウントが作成されます。
説明rootアカウントを使用する場合は、[データベース名] フィールドにadminと入力します。
データベースアカウント
宛先インスタンスへの接続に使用されるアカウントのユーザー名。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを設定します。
説明ターゲットデータベースに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が正しいかどうかを確認できます。 情報が正しい場合は、[合格] メッセージが表示されます。 それ以外の場合、[失敗] メッセージが表示され、[失敗] メッセージの横にある [確認] をクリックして情報を変更する必要があります。
ページの右下隅にある [ホワイトリストと次への設定] をクリックします。
警告DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを移行する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
移行タイプと移行するオブジェクトを選択します。
設定
説明
移行タイプの選択
データの一貫性を確保するために、[フルデータ移行] と [増分データ移行] の両方を選択することを推奨します。
フルデータ移行のみを選択した場合、フルデータ移行中に更新されたデータは、移行元インスタンスから移行先インスタンスに移行されない可能性があります。
増分データ移行のみを選択した場合、次の項目に注意してください。
移行タスクの開始後、DTSはソースインスタンスで生成された増分データのみを移行します。
増分データ移行中はトリガーを同期できません。 詳細については、「トリガーを含むソースデータベースのデータ同期タスクの設定」をご参照ください。
説明DTSは、スタンドアロンインスタンスの増分データ移行をサポートしていません。
増分データ移行が選択されていない場合、フルデータ移行中にソースインスタンスにデータを書き込まないことを推奨します。 これにより、ソースインスタンスとターゲットインスタンス間のデータの整合性が確保されます。
移行するオブジェクトの選択
移行するオブジェクトを選択するには、次の手順を実行します。
[使用可能] セクションから1つ以上のオブジェクトを選択します。
アイコンをクリックして、[選択済み] セクションにオブジェクトを追加します。
説明DTSは、adminまたはローカルデータベースからデータを移行できません。
移行できるオブジェクトは、データベース、コレクション、および関数です。
デフォルトでは、オブジェクトがターゲットインスタンスに移行された後、オブジェクトの名前は変更されません。 ターゲットインスタンスのオブジェクトの名前を変更する場合は、オブジェクト名マッピング機能を使用できます。 詳細については、次をご参照ください: オブジェクト名マッピング
オブジェクトの名前を変更するかどうかを指定する
オブジェクト名マッピング機能を使用して、移行先インスタンスに移行されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定
デフォルトでは、DTSがソースデータベースとターゲットデータベースへの接続に失敗した場合、DTSは12時間以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 指定された再試行時間内にDTSがソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明DTSがソースデータベースとターゲットデータベースへの再接続を試みる時間範囲内で、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースデータベースとターゲットデータベースがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
ページの右下隅にある [事前チェック] をクリックします。
説明データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
事前チェック中にアイテムに対してアラートが生成された場合は、シナリオに基づいて次の操作を実行します。
アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
データ移行タスクが事前チェックに合格したら、[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[インスタンスクラス] パラメーターを設定します。 次に、チェックボックスを読み、[Data Transmission Service (Pay-As-You-Go) Service Terms] に同意します。
[購入と開始] をクリックして、データ移行タスクを開始します。
移行タスクの進行状況を表示します。
フルデータ移行
フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 フルデータ移行タスクが自動的に停止するまで待つことができます。
増分データ移行
増分データ移行タスクは自動的に停止しません。 タスクを手動で停止する必要があります。
増分データ移行および移行タスクが遅延しませんがデータ移行タスクのプログレスバーに表示されるまで待ちます。 次に、ソースインスタンスへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。
増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。
ワークロードをターゲットApsaraDB for MongoDBインスタンスに切り替えます。
次のステップ
ソースインスタンスが不要になった場合は、ソースインスタンスをリリースします。
ソースインスタンスが従量課金に基づいて課金されている場合、インスタンスをリリースできます。 詳細については、「ApsaraDB For MongoDBインスタンスのリリース」をご参照ください。
ソースインスタンスがサブスクリプションの課金方法に基づいて課金されている場合、インスタンスをリリースすることはできません。
関連ドキュメント
シャードクラスターインスタンスにデータを移行する場合、ビジネス要件に基づいてデータシャーディングを設定できます。 詳細は、シャードのパフォーマンスを最大化するためのシャーディングの構成 をご参照ください。