このトピックでは、data Transmission Service (DTS) を使用して、スタンドアロンアーキテクチャを使用する自己管理型MongoDBデータベースからApsaraDB for MongoDBインスタンスにデータを移行する方法について説明します。
MongoDBの組み込みコマンドを使用して、自己管理型MongoDBデータベースを移行することもできます。 詳細については、「mongodumpとmongorestoreを使用した自己管理型MongoDBデータベースのApsaraDB For MongoDBスタンドアロンインスタンスへの移行」をご参照ください。
データ移行または同期ソリューションの詳細については、「概要」をご参照ください。
前提条件
ソースおよびターゲットMongoDBデータベースのバージョンは、DTSでサポートされています。 詳細については、「データ移行シナリオの概要」をご参照ください。
ApsaraDB for MongoDBインスタンスの使用可能なストレージ容量は、自己管理型MongoDBデータベースのデータの合計サイズよりも10% に大きい。 これは推奨される前提条件です。
使用上の注意
デフォルトでは、スタンドアロンアーキテクチャを使用する自己管理型MongoDBデータベースではoplogはサポートされません。 1つのノードのみを含むレプリカセットを使用する場合、増分移行を実装するためのDTSのoplogがサポートされます。
サービスの中断を防ぐため、オフピーク時にデータを移行することを推奨します。
ソースとターゲットのMongoDBデータベースが異なるバージョンまたはストレージエンジンを使用している場合は、アプリケーションが両方のデータベースで実行できることを確認してください。 ApsaraDB For MongoDBでサポートされているバージョンとストレージエンジンの詳細については、「MongoDBのバージョンとストレージエンジン」をご参照ください。
管理者データベースまたはローカルデータベースをソースデータベースまたはターゲットデータベースとして使用することはできません。
データは、同時に宛先データベースに書き込まれる。 したがって、移行先データベースで占有されるストレージスペースは、移行元データベースのデータのサイズよりも大きく10% 5% があります。
ターゲットApsaraDB for MongoDBインスタンスに、ソースデータベースのプライマリキーと同じプライマリキーがないことを確認します。 デフォルトの主キーは_idです。 データが失われる可能性があります。 ターゲットインスタンスにソースデータベースのプライマリキーと同じプライマリキーがある場合は、ビジネスに影響を与えずに、ターゲットインスタンスの_idプライマリキーに対応する同じドキュメントをソースデータベースのプライマリキーと削除します。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
フルデータ移行 | 無料です。 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
増分データ移行 | 有料。 詳細については、「課金の概要」をご参照ください。 |
移行タイプ
フルデータ移行: DTSは、ソースMongoDBデータベースの既存のすべてのデータをターゲットMongoDBデータベースに移行します。
説明DTSは、データベース、コレクション、およびインデックスのタイプのオブジェクトを移行できます。
増分データ移行: 完全データ移行が完了すると、DTSはソースMongoDBデータベースの増分データをターゲットMongoDBデータベースに同期します。
説明DTSは、データベース、コレクション、およびインデックスに対して実行される作成操作と削除操作を同期できます。
DTSは、ドキュメントに対して実行される作成、削除、および更新操作を同期できます。
データベースアカウントに必要な権限
データベース | 完全なデータ移行 |
自己管理型 MongoDB データベース | ソースデータベースの読み取り権限 |
ApsaraDB for MongoDB インスタンス | ターゲットデータベースの読み取りおよび書き込み権限 |
データベースアカウントを作成し、データベースアカウントに権限を付与する方法の詳細については、以下のトピックを参照してください。
自己管理型MongoDBデータベース: db.createUser()
ApsaraDB for MongoDBインスタンス: MongoDBデータベースのユーザー権限の管理
手順
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。
移行タイプと移行するオブジェクトを選択します。
設定
説明
移行タイプの選択
フルデータ移行のみを実行するには、[フルデータ移行] のみを選択します。
データ移行中のサービスの継続性を確保するには、[フルデータ移行] および [増分データ移行] を選択します。
説明DTSを使用してスタンドアロンアーキテクチャを使用する自己管理MongoDBデータベースの増分データを移行するには、データベースのoplog機能を有効にする必要があります。
増分データ移行が選択されていない場合、完全データ移行中にソースインスタンスにデータを書き込まないことを推奨します。 これにより、ソースインスタンスとターゲットインスタンス間のデータの整合性が確保されます。
移行するオブジェクトの選択
[使用可能] セクションから1つ以上のオブジェクトを選択し、アイコンをクリックして、オブジェクトを [選択済み] セクションに移動します。
説明DTSは、admin、local、またはconfigデータベースからデータを移行できません。
移行するオブジェクトとして、データベース、コレクション、または関数を選択できます。
デフォルトでは、オブジェクトがターゲットインスタンスに移行された後、オブジェクトの名前は変更されません。 ターゲットインスタンスのオブジェクトの名前を変更する場合は、オブジェクト名マッピング機能を使用できます。 詳細については、次をご参照ください: オブジェクト名マッピング
オブジェクトの名前を変更するかどうかを指定する
オブジェクト名マッピング機能を使用して、移行先インスタンスに移行されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間範囲の指定
デフォルトでは、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の12時間以内に再試行します。 業務要件に基づいて再試行時間範囲を指定できます。 指定された再試行時間内にDTSがソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明DTSがソースデータベースとターゲットデータベースへの再接続を試行する再試行時間内に、DTSインスタンスの料金が請求されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
ページの右下隅にある [事前チェック] をクリックします。
説明データ移行タスクを開始する前に、DTSは事前チェックを実行します。 データ移行タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。
原因に基づいて問題をトラブルシューティングし、事前チェックを再度実行できます。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して、再度事前チェックを実行できます。
タスクが事前チェックに合格したら、[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[インスタンスクラス] パラメーターを指定し、[データ送信サービス (従量課金) サービス規約] に同意するチェックボックスをオンにします。
[購入と開始] をクリックして、データ移行タスクを開始します。
フルデータ移行
フルデータ移行中は、手動でタスクを停止しないことをお勧めします。 そうしないと、ターゲットデータベースに移行されたデータが不完全になる可能性があります。 フルデータ移行タスクが自動的に停止するまで待つことができます。
増分データ移行
増分データ移行中、タスクは自動的に停止しません。 タスクを手動で停止する必要があります。
説明データ移行タスクを手動で停止する適切な時期を選択することを推奨します。 たとえば、オフピーク時やワークロードをApsaraDB For MongoDBインスタンスに切り替える前にタスクを停止できます。
増分データ移行と移行タスクが遅延しませんがデータ移行タスクのプログレスバーに表示されるまで待ちます。 次に、ソースインスタンスへのデータの書き込みを数分間停止します。 増分データ移行のレイテンシは、プログレスバーに表示され得る。
増分データ移行のステータスが [移行タスクは遅延なし] に変わるまで待ちます。 次に、移行タスクを手動で停止します。
ワークロードをターゲットApsaraDB for MongoDBインスタンスに切り替えます。