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