Data Transmission Service (DTS) を使用して、自己管理 MongoDB シャードクラスターを ApsaraDB for MongoDB に一度に 1 シャードずつ移行します。DTS の増分移行により、移行中もアプリケーションを実行し続けることができます。
その他のオプションについては、「MongoDB データ移行および同期ソリューションの概要」をご参照ください。
前提条件
ソースとターゲットの MongoDB バージョンがサポートされていることを確認します。サポートされているバージョンの組み合わせについては、「移行ソリューション」でご確認ください。
ta-tag="xref" id="xref_78n_86r_96y" href="t17092.dita#concept_26618_zh">移行ソリューション。
ターゲットのシャードクラスターインスタンスの各シャードに十分なストレージ容量があることを確認します。
説明例:ソースデータベースの最大のシャードが 500 GB を使用している場合、宛先インスタンスの各シャードには 500 GB を超えるストレージが必要です。
ソースデータベースが 500 GB を使用する場合、宛先インスタンスの各シャードには 500 GB を超えるストレージが必要です。
仕組み
DTS は、シャードクラスターを一度に 1 シャードずつ移行します。各シャードに対して個別の移行タスクを作成します。
データ分散は、設定したシャードキーに依存します。シャードのパフォーマンスを最大化するためにデータシャーディングを設定してください。

注意事項
フルデータ移行は、ソースとターゲットの両方のデータベースのロードを増加させます。サービス中断を避けるために、オフピーク時間に移行を実行してください。
サービス中断を回避します。
バージョンやストレージエンジンをまたいで移行する場合は、まず「バージョンとストレージエンジン」で互換性を確認してください。
a#concept_qg2_xcr_52b">まずバージョンとストレージエンジンを確認。
DTS はデータを同時に書き込むため、ターゲットデータベースはソースよりも 5% から 10% 多くのストレージを使用する場合があります。
データベースは、ソースよりも 5% から 10% 多くストレージを使用する可能性があります。
送信先に、ソースと同じプライマリキー (デフォルトでは _id) を持つドキュメントが存在しないことを確認してください。競合が存在し、その削除が業務に影響を与えない場合は、移行前に送信先から競合するドキュメントを削除してください。
競合が存在し、削除しても業務に影響がない場合は、移行前に送信先から競合するドキュメントを削除してください。
admin データベースと local データベースは、ソースまたは送信先として使用することはできません。
ソースまたは送信先として使用できません。
ソース MongoDB シャードクラスターには、最大 10 個の Mongos ノードを含めることができます。
ソースの MongoDB シャードクラスターには、最大 10 個の mongos ノードしか設定できません。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
完全データ移行 | 無料です。 | パブリックインターネット経由で Alibaba Cloud の外部に移行されるデータには料金が発生します。DTS 料金。 |
増分データ移行 | 有料です。。DTS 料金 |
移行タイプ
完全データ移行:選択したソースオブジェクトから既存のすべてのデータをターゲットにコピーします。
説明データベース、コレクション、およびインデックスを含みます。
n1y_f19">
データベース、コレクション、およびインデックスが含まれます。
増分データ移行:完全移行が完了した後、DTS はソースからターゲットへのデータ変更を継続的に同期します。
説明DTS は、データベース、コレクション、インデックスの作成および削除操作を同期します。
DTS は、ドキュメントに対する作成、削除、および更新操作を同期します。
およびデータベース、コレクション、およびインデックスの削除操作。 データベース、コレクション、およびインデックスの ns。
DTS は、ドキュメントの作成、削除、および更新操作を同期します。
te、およびドキュメントの更新操作。
データベースアカウントの権限
データベース | 完全データ移行 | 増分データ移行 |
自己管理 MongoDB データベース | 移行対象のデータベースに対する | 移行対象のデータベース、および admin データベースと local データベースに対する |
ApsaraDB for MongoDB インスタンス | ターゲットデータベースに対する | ターゲットデータベースに対する |
データベースアカウントを作成し、権限を付与するには:
自己管理 MongoDB:db.createUser() (MongoDB ドキュメント)。
MongoDB ドキュメント)
ApsaraDB for MongoDB:DMS を使用した MongoDB データベースのユーザー管理。
DMS を使用した goDB データベース。
事前準備
必須:データの不整合を防ぐため、移行中はバランサーを無効にしてください。MongoDB インスタンスのバランサーの管理。
警告バランサーが無効になっていない場合、チャンクの移行が DTS が読み取るデータの一貫性に影響を与える可能性があります。
"c43899c026iua">バランサーを無効化しないと、チャンクの移行が DTS が読み取るデータの一貫性に影響を及ぼす可能性があります。
失敗したチャンク移行によって作成された孤立ドキュメントをソースデータベースから削除します。
説明孤立ドキュメントは、移行性能を低下させ、エラーにつながる
_idの競合を引き起こす可能性があります。cleanupOrphaned.js スクリプトをダウンロードします。
wget "https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120562/cn_zh/1564451237979/cleanupOrphaned.js"cleanupOrphaned.js スクリプトで、
testをクリーンアップするデータベースの名前に置き換えます。説明複数のデータベースがある場合は、このステップと ステップ c を繰り返します。
function cleanupOrphaned(coll) { var nextKey = { }; var result; while ( nextKey != null ) { result = db.adminCommand( { cleanupOrphaned: coll, startingFromKey: nextKey } ); if (result.ok != 1) print("Unable to complete at this time: failure or timeout.") printjson(result); nextKey = result.stoppedAtKey; } } var dbName = 'test' db = db.getSiblingDB(dbName) db.getCollectionNames().forEach(function(collName) { cleanupOrphaned(dbName + "." + collName); });各シャードでこのコマンドを実行して、データベース内のすべてのコレクションから孤立ドキュメントを削除します。
説明すべてのシャードで実行してください。
mongo --host <Shardhost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js説明<Shardhost>:シャードの IP アドレス。
<Primaryport>:シャード内のプライマリノードのサービスポート。
<database>:アカウントの認証データベース。
<username>:データベースアカウント。
<password>: アカウントのパスワード。
3 つのシャードの例:
mongo --host 172.16.1.10 --port 27018 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.11 --port 27021 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.12 --port 27024 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
d826nfg"><password>: アカウントのパスワード。
シャードが 3つの例:
g="codeblock" id="codeblock_6ze_gis_zmv" outputclass="language-plaintext" code-type="xCode">mongo --host 172.16.1.11 --port 27021 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
mongo --host 172.16.1.10 --port 27018 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.11 --port 27021 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.12 --port 27024 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.12 --port 27024 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js宛先インスタンスでシャーディングが必要なデータベースとコレクションを作成し、データシャーディングを設定します。 データシャーディングを設定してシャードのパフォーマンスを最大化する。
移行前にシャーディングを設定することで、すべてのデータが単一のシャードに集中し、そのストレージ容量を超えてしまうのを防ぎます。
ote" id="note_keh_seo_9uz">
移行前にシャーディングを設定することにより、すべてのデータが単一のシャードに集中し、そのストレージ容量を超過するのを防ぎます。
制限事項
ソースデータベースの制限
サーバーには十分なアウトバウンド帯域幅が必要です。帯域幅が不足すると移行が遅くなります。
移行対象のコレクションには、プライマリキーまたは一意性制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットに重複レコードが表示される可能性があります。
DTS は完全データ移行中にソースデータベースとターゲットデータベースの両方で読み取りおよび書き込みリソースを使用するため、サーバーの負荷が増加します。オフピーク時間に移行を実行してください。
ソースデータベースとターゲットデータベースの MongoDB バージョンまたはストレージエンジンが異なる場合は、まず互換性を確認してください。 詳細については、「MongoDB バージョンとストレージエンジン」をご参照ください。
増分データ移行の場合、ソースデータベースで oplog を有効にし、oplog を少なくとも 7 日間保持してください。oplog が有効でない場合、事前チェック中にエラーメッセージが返され、データ移行タスクを開始できません。DTS が oplog を取得できない場合、タスクは失敗し、データの不整合や損失が発生する可能性があります。これらの保持要件は、DTS のサービスレベルアグリーメント (SLA) の対象外です。
移行オブジェクトとしてコレクションを選択し、ターゲットで編集 (名前変更など) を計画している場合、1 つのタスクでサポートされるコレクションは最大 1,000 個です。1,000 個を超えるコレクションの場合は、複数のタスクを設定するか、データベース全体を移行してください。
admin または local データベースをソースまたはターゲットとして使用しないでください。
ソースの自己管理 MongoDB データベースには、10 個を超える mongos ノードを含めることはできません。
Time-to-Live (TTL) インデックスを持つコレクションは移行しないでください。TTL インデックスは、移行後にソースとターゲットの間でデータの不整合を引き起こす可能性があります。
ソースデータベースまたは送信先のシャードクラスターインスタンスに孤立ドキュメントが存在しないことを確認してください。孤立ドキュメントは、データの不整合やタスクの失敗の原因となります。詳細については、「MongoDB ドキュメント」および「シャードクラスターアーキテクチャの MongoDB データベースから孤立ドキュメントを削除する方法」をご参照ください。
移行中に、ソースデータベースで以下のコマンドを実行しないでください。これらのコマンドはデータ分散を変更し、不整合を引き起こす原因となります。
shardCollection、reshardCollection、unshardCollection、moveCollection、movePrimary
スキーマ移行および完全データ移行中:
データベースやコレクションに対してスキーマ変更 (配列型の更新を含む) を行わないでください。スキーマ変更はタスクの失敗やデータの不整合を引き起こします。
完全データ移行のみ (増分なし) を実行する場合は、ソースデータベースにデータを書き込まないでください。データの一貫性を確保するには、スキーマ移行、完全データ移行、増分データ移行を一緒に選択してください。
移行中にソースデータベースのバランサーがアクティブな場合、チャンクの移行によって遅延が発生する可能性があります。
その他の制限
タスクを設定する前に DTS インスタンスを購入する場合、購入時にシャード数を指定してください。
DTS は SRV 接続文字列を介して MongoDB データベースに接続できません。
移行を開始する前に、ソースデータベースのすべてのデータにシャードキーを追加してください。移行中、INSERT 操作にはシャードキーを含める必要があり、UPDATE 操作ではシャードキーを変更できません。
完全なデータ移行中は、ソース MongoDB データベースのバランサーを無効にしてください。各サブタスクが増分データ移行フェーズに達するまで、無効にしたままにしてください。時期尚早に再度有効にすると、データの不整合の原因となります。詳細については、「ApsaraDB for MongoDB バランサーの管理」をご参照ください。
ターゲットデータベースに、ソースと同じプライマリキー (
_id) を持つドキュメントが既に存在しないことを確認してください。重複が存在する場合は、移行を開始する前にターゲット内の対応するドキュメントを削除してください。トランザクション情報は保持されません。移行されたトランザクションは個別のレコードに変換されます。
DTS がターゲットに書き込む際にプライマリキーまたは一意キーの競合が発生した場合、DTS は競合する書き込みをスキップし、既存のデータを保持します。
移行タスクの実行中に ApsaraDB for MongoDB シャードクラスターインスタンスをスケーリングしないでください。スケーリングするとタスクが失敗します。
ターゲットの ApsaraDB for MongoDB データベースで
db.$table_name.aggregate([{ $count:"myCount"}])を使用してクエリ数をカウントします。DTS はデータを同時に書き込むため、ターゲットで使用されるストレージ容量はソースよりも 5~10% 大きくなります。
ターゲットコレクションに一意なインデックスがあるか、
capped属性がtrueに設定されている場合、コレクションはシングルスレッドの書き込みのみをサポートし、増分移行中の同時リプレイをサポートしません。これにより、移行遅延が増加する可能性があります。完全データ移行は両方のデータベースで読み取りおよび書き込みリソースを使用するため、サーバーの負荷が増加します。オフピーク時間に移行を実行してください。
完全データ移行中の同時 INSERT 操作は、テーブルの断片化を引き起こします。完全データ移行後、ターゲットのテーブルスペースはソースよりも大きくなります。
DTS は、失敗した移行タスクを最大 7 日間再試行します。ワークロードをターゲットインスタンスに切り替える前に、失敗したタスクを停止またはリリースするか、ターゲットに対する DTS の書き込み権限を取り消してください。そうしないと、失敗したタスクが再開されたときにソースデータがターゲットデータを上書きします。
DTS タスクが失敗した場合、DTS テクニカルサポートは 8 時間以内に復元を試みます。復元中、タスクが再起動され、タスクパラメーターが変更される場合があります。
変更される可能性があるのはタスクパラメーターのみであり、データベースパラメーターは変更されません。変更される可能性のあるパラメーターは、インスタンスパラメーターの変更セクションに記載されています。
ターゲットがレプリカセットインスタンスの場合:
Express Connect、VPN ゲートウェイ、Smart Access Gateway、パブリック IP アドレス、または Cloud Enterprise Network (CEN) 経由で接続されている場合は、[ドメイン名または IP] と [ポート番号] を設定します
プライマリノードの IP アドレスとポートに接続するか、高可用性エンドポイントを設定します。 詳細については、「ソースまたはターゲットデータベースが高可用性 MongoDB データベースである DTS タスクを作成する」をご参照ください。
ECS 上の自己管理型データベース経由で接続する場合、[ポート番号] をプライマリノードのポートに設定します
ターゲットがシャードクラスターインスタンスの場合、アプリケーションの動作が ApsaraDB for MongoDB シャードクラスターの要件を満たしていることを確認してください。
データ移行
事前準備
DTS タスクを作成する前に、以下の手順を完了してください。
ステップ 1:ソースデータベースのバランサーを無効にする
自己管理 MongoDB データベースのバランサーを無効にして、DTS タスク中のチャンク移行がデータの一貫性に影響を与えないようにします。
移行中にバランサーがアクティブな場合、チャンク移行により DTS が不整合なデータを読み取る原因となります。
詳細については、「ApsaraDB for MongoDB バランサーを管理する」をご参照ください。
ステップ 2:ソースデータベースから孤立ドキュメントを削除する
失敗したチャンク移行によって残された孤立ドキュメントは、移行性能を損ない、重複した _id 値を作成し、不要なデータが移行される可能性があります。
cleanupOrphaned.js ファイルをダウンロードします。
wget "https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120562/cn_zh/1564451237979/cleanupOrphaned.js"cleanupOrphaned.jsファイルで、testを孤立ドキュメントを削除したいデータベースの名前に置き換えます。複数のデータベースから孤立ドキュメントを削除するには、このステップと次のステップを各データベースで繰り返します。

各シャードで以下のコマンドを実行して、指定されたデータベース内のすべてのコレクションから孤立ドキュメントを削除します。
このコマンドはすべてのシャードで実行してください。
プレースホルダー
説明
<Shardhost>シャードの IP アドレス
<Primaryport>シャード内のプライマリノードのサービスポート
<database>アカウントが属するデータベースの名前
<username>自己管理 MongoDB データベースにログインするためのアカウント
<password>自己管理 MongoDB データベースにログインするためのパスワード
mongo --host <Shardhost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js例:3 つのシャードを持つソースデータベースの場合:
mongo --host 172.16.1.10 --port 27018 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js mongo --host 172.16.1.11 --port 27021 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js mongo --host 172.16.1.12 --port 27024 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
ステップ 3:ターゲットインスタンスでシャーディングを設定する (シャードクラスターのみ)
ターゲットがシャードクラスターインスタンスの場合、移行を開始する前にシャーディング対象のデータベースとコレクションを作成し、データシャーディングを設定します。これにより、移行されたデータがシャード間で均等に分散され、単一のシャードが過負荷になるのを防ぎます。
詳細については、「シャードのパフォーマンスを最大化するためのシャーディングの設定」をご参照ください。
ステップ 1:データ移行ページを開く
以下のいずれかの方法で[データ移行] ページを開き、移行インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、[データ移行] をクリックします。
左上隅で、データ移行インスタンスが存在するリージョンを選択します。
DMS コンソール
実際の手順は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソールにログインします。
トップナビゲーションバーで、[Data + AI] > [DTS (DTS)] > [データ移行] の順に選択します。
[データ移行タスク] の右にあるドロップダウンリストから、移行インスタンスが存在するリージョンを選択します。
ステップ 2:タスクを作成する
[タスクの作成] をクリックしてタスク構成ページを開きます。
ステップ 3:ソースデータベースとターゲットデータベースを設定する
ソースデータベースとターゲットデータベースを設定した後、ページ上部に表示される [制限事項] をお読みください。このステップをスキップすると、タスクが失敗したり、データの不整合が発生したりする可能性があります。
以下のパラメーターを設定します:
一般
パラメーター | 説明 |
タスク名 | DTS は自動的にタスク名を生成します。タスクを簡単に識別できるように、わかりやすい名前を指定してください。一意の名前である必要はありません。 |
ソースデータベース
パラメーター | 説明 |
既存の接続を選択 | インスタンスが DTS に登録されている場合は、ドロップダウンリストから選択すると、DTS によって残りのパラメーターが自動的に入力されます。それ以外の場合は、以下のパラメーターを設定します。DMS コンソールでは、[DMS データベースインスタンスの選択] リストから選択します。 |
データベースタイプ | [MongoDB]を選択します。 |
アクセス方法 | 接続方法を選択します。この例では [パブリック IP アドレス] を使用します。他の方法については、まずネットワーク環境を設定してください。詳細については、「準備の概要」をご参照ください。 |
インスタンス リージョン | ソースデータベースが存在するリージョン。リージョンがリストにない場合は、地理的に最も近いものを選択してください。 |
アーキテクチャ | [シャーディングクラスター] を選択します。このオプションは、Express Connect、VPN Gateway、Smart Access Gateway、パブリック IP アドレス、または Cloud Enterprise Network (CEN) のアクセス方法の場合にのみ表示されます。 |
移行方法 | 増分データを移行するメソッドとして、Oplog (推奨) または ChangeStream を選択します。 Oplog は、ソースで oplog が有効になっている場合 (自己管理データベースと ApsaraDB for MongoDB インスタンスの両方でデフォルトで有効) に利用でき、低レイテンシーの増分移行を提供します。 ChangeStream は、change stream が有効になっている場合に利用できます。 詳細については、「Change Streams」をご参照ください。 ソースが非エラスティックな Amazon DocumentDB クラスターである場合は、[ChangeStream] のみを選択します。 [アーキテクチャ] が [シャードクラスター] に設定されている場合、[シャードアカウント] および [シャードパスワード] パラメーターは不要です。 |
エンドポイントタイプ | 設定に応じて [スタンドアロン] または [マルチノード] を選択します。このパラメーターは、Express Connect、VPN Gateway、Smart Access Gateway、パブリック IP アドレス、または Cloud Enterprise Network (CEN) のアクセス メソッドの場合にのみ表示されます。 |
Mongos ドメイン名または IP アドレス | いずれかの Mongos ノードのエンドポイントまたは IP アドレス。[エンドポイントタイプ] が [スタンドアロン] の場合にのみ表示されます。[ドメイン名または IP] にいずれかの Mongos ノードのアドレスを設定し、[ポート番号] にそのポートを設定します。 |
ポート番号 | Mongos ノードのサービスポートです。[エンドポイントタイプ] が [スタンドアロン] の場合にのみ表示されます。ポートはインターネット経由でアクセスできる必要があります。 |
Mongos エンドポイント |
|
認証データベース | ソースの認証データベース。デフォルト:admin。 |
データベースアカウント | Mongos ノードにアクセスするためのアカウントです。[アクセス方法] が ECS 上の自己管理型データベース または データベースゲートウェイ の場合、代わりにシャードアクセスアカウントを入力してください。 |
データベースパスワード | データベースアカウントのパスワード。 |
複数のシャードノードへのアクセス | シャードノードのアクセス情報です。ソースアーキテクチャが [シャードクラスター]、[移行方法] が Oplog、[エンドポイントタイプ] が [マルチノード] の場合にのみ利用可能です。[追加] をクリックし、各シャードノードのエンドポイントを |
シャードアクセス情報 (IP:Port) | 各シャードの IP アドレスとポートを、 |
シャードアカウント | ソースデータベースのシャードにアクセスするためのアカウント。 |
シャードパスワード | シャードアカウントのパスワード。 |
暗号化 | 接続の暗号化方式: 非暗号化、SSL 暗号化、または Mongo Atlas SSL。 利用可能なオプションは、[アクセス方法] と [アーキテクチャ] の設定によって異なります。 [アーキテクチャ] が [シャードクラスター] で、[移行方法] が Oplog の場合、ApsaraDB for MongoDB では SSL 暗号化は利用できません。 移行元が ReplicaSet アーキテクチャを使用しており、[アクセス方法] が [Alibaba Cloud インスタンス] ではなく、[暗号化] が SSL 暗号化である場合、CA 証明書をアップロードして接続を検証します。 |
ターゲットデータベース
パラメーター | 説明 |
既存の接続を選択 | インスタンスが DTS に登録されている場合は、ドロップダウンリストから選択します。そうでない場合は、以下のパラメーターを設定します。 |
データベースタイプ | [MongoDB] を選択します。 |
アクセス方法 | [Alibaba Cloud インスタンス] を選択します。 |
インスタンスリージョン | ターゲットの ApsaraDB for MongoDB インスタンスが存在するリージョン。 |
Alibaba Cloud アカウント間のデータ複製 | 現在のアカウントでインスタンスを使用する場合は、[いいえ] を選択します。 |
アーキテクチャ | ターゲットインスタンスのアーキテクチャ。 |
インスタンス ID | ターゲットの ApsaraDB for MongoDB インスタンスの ID。 |
認証データベース | ターゲットの認証データベース。デフォルト:admin。 |
データベース名 | 移行されたオブジェクトを受け取るターゲットデータベースの名前。 |
データベースアカウント | ターゲットインスタンスのデータベースアカウント。 |
データベースパスワード | ターゲットデータベースアカウントのパスワード。 |
暗号化 | 接続の暗号化メソッド。利用可能なオプションは、[アクセス方法] と [アーキテクチャ] の設定によって異なります。送信先が [シャードクラスター] アーキテクチャの ApsaraDB for MongoDB インスタンスである場合、SSL 暗号化は利用できません。 |
ステップ 4:接続性をテストする
[接続をテストして続行] をクリックします。
ソースデータベースとターゲットデータベースのセキュリティ設定に、DTS サーバーの CIDR ブロックが追加されていることを確認してください。「DTS サーバーの CIDR ブロックを追加する」をご参照ください。ソースまたはターゲットが、[Alibaba Cloud インスタンス] として接続されていない自己管理データベースの場合、[DTS サーバーの CIDR ブロック] ダイアログボックスで [接続テスト] をクリックします。
ステップ 5:移行オブジェクトを設定する
[オブジェクトの設定] ページで、次のパラメーターを設定します:
パラメーター | 説明 |
移行タイプ | 要件に基づいて移行タイプを選択してください。完全なデータ移行のみを実行するには、[スキーマ移行] と [完全なデータ移行] を選択してください。移行中にサービスを実行し続けるには、[スキーマ移行]、[完全なデータ移行]、および [増分データ移行] を選択してください。[スキーマ移行] が選択されていない場合は、タスクを開始する前に送信先にデータベースとコレクションを作成し、[選択したオブジェクト] でオブジェクト名マッピングを有効にしてください。[増分データ移行] が選択されていない場合は、移行中にソースにデータを書き込まないでください。 |
競合テーブルの処理モード | 事前チェックとエラー報告: 送信先に、ソースと同じ名前のコレクションがあるかどうかをチェックします。重複が存在する場合、事前チェックは失敗します。送信先のコレクションを削除または名前変更せずに命名の競合を解決するには、オブジェクト名マッピング機能を使用します。詳細については、「オブジェクト名をマップする」をご参照ください。エラーを無視して続行: 重複するコレクション名の事前チェックをスキップします。完全なデータ移行中に、レコードが送信先の既存のレコードと同じプライマリキーを持つ場合、既存のレコードは保持されます。増分データ移行中、既存のレコードは上書きされます。ソースと送信先のスキーマが異なる場合、特定の列の移行に失敗する可能性があります。 |
移行先インスタンスのオブジェクト名の大文字/小文字 | 送信先におけるデータベース名とコレクション名の大文字/小文字の扱いを制御します。デフォルト: DTS デフォルトポリシー。詳細については、「宛先インスタンスのオブジェクト名の大文字/小文字を指定する」をご参照ください。 |
ソースオブジェクト | 1 つ以上のオブジェクト (コレクションまたはデータベース) を選択し、 |
選択済みオブジェクト | オブジェクトを右クリックして、送信先で名前を変更するか、別の送信先オブジェクトにマッピングします。詳細については、「オブジェクト名のマッピング」をご参照ください。オブジェクトを右クリックして、データベースとコレクションの増分移行モードを設定します。コレクションを右クリックして、完全移行の WHERE フィルター条件を指定します。詳細については、「フィルター条件の指定」をご参照ください。オブジェクトを削除するには、対象のオブジェクトをクリックしてから |
[次へ: 詳細設定] をクリックして、以下を設定します。
パラメーター | 説明 |
タスクスケジューリング専用クラスター | DTS はデフォルトでタスクを共有クラスターにスケジュールします。より高い安定性を求める場合は、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。 |
接続失敗時の再試行時間 | タスク開始後の接続障害に対する再試行期間。有効な値:10~1,440 分。デフォルト:720 分。30 分以上に設定してください。この期間内に DTS が再接続すると、タスクは再開されます。そうでない場合、タスクは失敗します。複数のタスクが同じデータベースを共有する場合、最後に設定された再試行時間が適用されます。再試行中、DTS はインスタンスに対して課金します。 |
その他の問題の再試行時間 | DDL または DML 操作が失敗した場合のリトライウィンドウです。有効値は 1~1,440 分、デフォルトは 10 分です。10 分より大きい値を設定し、[失敗した接続のリトライ時間] の値より小さくする必要があります。 |
全量データ移行のスロットリング有効化 | 完全なデータ移行中の DTS のリソース使用量を制限します。[ソースデータベースへの 1 秒あたりのクエリ数 (QPS)]、[完全なデータ移行の RPS]、および[完全移行のデータ移行速度 (MB/s)] を設定します。[完全なデータ移行] が選択されている場合にのみ使用できます。 |
同期対象テーブルのプライマリキー _id のデータ型は 1 種類のみ | 各コレクションで |
増分データ移行のスロットリングの有効化 | 増分データ移行中の DTS リソース使用量を制限します。[増分データ移行の RPS] と [増分移行のデータ移行速度 (MB/s)] を設定します。[増分データ移行] が選択されている場合にのみ利用可能です。 |
環境タグ | DTS インスタンスを識別するためのタグ。オプションです。 |
ETL の設定 | 抽出・変換・書き出し (ETL) 機能を有効にします。[はい] を選択すると、コードエディタでデータ処理文を入力できます。「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。[いいえ] を選択すると、ETL はスキップされます。 |
モニタリングおよびアラート | タスクのアラートを設定します。[はい] を選択すると、アラートのしきい値と通知連絡先を設定できます。詳細については、「DTS タスクの作成時にモニタリングとアラートを設定する」をご参照ください。 |
[次のステップ: データ検証] をクリックしてデータ検証を設定します。 詳細については、「データ検証タスクを設定する」をご参照ください。
ステップ 6:事前チェックを実行する
[次へ: タスク設定の保存と事前チェック] をクリックします。
このタスク構成の API パラメーターをプレビューするには、[次へ: タスク設定の保存と事前チェック] にカーソルを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS は移行が開始される前に事前チェックを実行します。事前チェックが成功するまでタスクは開始できません。
事前チェック項目が失敗した場合は、その横にある[詳細の表示]をクリックし、問題を解決してから、再度事前チェックを実行します。
事前チェック項目がアラートをトリガーした場合:
アラートが無視できない場合は、[詳細を表示] をクリックして問題を解決し、事前チェックを再実行してください。
アラートを無視できる場合は、[アラート詳細の確認] をクリックし、ダイアログボックスで [無視]、[OK] の順にクリックします。 続行するには、[事前チェックを再実行] をクリックします。 アラートを無視すると、データの不整合が発生する可能性があります。
ステップ 7:インスタンスを購入する
成功率 が 100% に達したら、[次へ: インスタンスの購入] をクリックします。
[インスタンスの購入] ページで、次の項目を設定します。
セクション
パラメーター
説明
新しいインスタンスクラス
リソースグループ
移行インスタンスのリソースグループです。デフォルトはデフォルトリソースグループで、「Resource Management とは」をご参照ください。
インスタンスクラス
インスタンスクラスは移行速度を決定します。ニーズに合わせて選択してください。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。
チェックボックスを選択して、Data Transmission Service (従量課金) サービス利用規約を読んで同意します。
[購入して開始] をクリックし、次に確認ダイアログで [OK] をクリックします。
タスクは[データ移行] ページに表示されます。
完全データ移行のみ:タスクは自動的に停止します。ステータスは [完了] と表示されます。
増分データ移行:タスクは継続的に実行され、自動的に停止しません。ステータスは [実行中] と表示されます。
ステップ 8:残りのシャードのタスクを作成する (該当する場合)
ソースの [アクセス方法] が [ECS 上の自己管理型データベース] または [データベースゲートウェイ] の場合、残りの各シャードについてステップ 1~7 を繰り返します。
ステップ 9:移行タスクを停止する
フルデータ移行
移行されたデータが不完全になる可能性があるため、完全データ移行タスクを手動で停止しないでください。タスクが自動的に停止するのを待ちます。
増分データ移行
増分データ移行は自動的に停止しません。オフピーク時間やターゲットインスタンスにワークロードを切り替える前など、適切なタイミングで手動で停止してください。
[増分データ移行] が [実行中] のプログレスバーに表示され、[操作情報] に [遅延なし] が表示されるまで待機します。その後、ソースデータベースへのデータの書き込みを数分間停止します。
[増分データ移行] のステータスが [遅延なし] に戻ったら、すべてのシャードの移行タスクを手動で停止します。
ステップ 10:ワークロードをターゲットインスタンスに切り替える
移行が完了し、データを確認した後、ワークロードをターゲットの ApsaraDB for MongoDB インスタンスに切り替えます。