Data Transmission Service (DTS) を使用すると、ApsaraDB for MongoDB シャードクラスターインスタンスから ApsaraDB for MongoDB レプリカセットまたはシャードクラスターインスタンスにデータを同期できます。このトピックでは、ApsaraDB for MongoDB インスタンス間でデータを同期する方法について説明します。
前提条件
宛先 ApsaraDB for MongoDB レプリカセットまたはシャードクラスターインスタンスが作成されていること。詳細については、「レプリカセットインスタンスを作成する」または「シャードクラスターインスタンスを作成する」をご参照ください。
重要使用可能なストレージ容量がソース ApsaraDB for MongoDB インスタンスのデータ総容量よりも 10% 大きい宛先 ApsaraDB for MongoDB インスタンスを使用することをお勧めします。
サポートされているインスタンスバージョンについては、「データ同期シナリオの概要」をご参照ください。
ソース ApsaraDB for MongoDB シャードクラスターインスタンスのすべてのシャードノードにエンドポイントが割り当てられており、シャードノードが同じアカウントとパスワードを共有していること。エンドポイントの申請方法については、「シャードのエンドポイントを申請する」をご参照ください。
ApsaraDB for MongoDB シャードクラスターインスタンスにデータを同期する場合、スキーマを同期する方法に基づいて、次の操作を実行します。
DTS のスキーマ同期機能を使用しない場合:
[オブジェクトの設定] ステップで [同期タイプ] の 1 つとして [スキーマ同期] を選択しない場合は、シャード化するデータベースとコレクションを作成し、データシャーディングを設定し、バランサーを有効にし、宛先の ApsaraDB for MongoDB シャードクラスターインスタンスでビジネス要件に基づいて事前シャーディングを実行することをお勧めします。詳細については、「シャードのパフォーマンスを最大化するシャーディングの設定」および FAQ トピックの「シャードクラスターアーキテクチャにデプロイされた MongoDB データベースのデータが均等に分散されていない場合はどうすればよいですか?」セクションをご参照ください。
DTS のスキーマ同期機能を使用する場合:
[オブジェクトの設定] ステップで [同期タイプ] の 1 つとして [スキーマ同期] を選択する場合は、スキーマ同期が完了した後、バランサーを有効にし、事前シャーディングを実行することをお勧めします。詳細については、FAQ トピックの「シャードクラスターアーキテクチャにデプロイされた MongoDB データベースのデータが均等に分散されていない場合はどうすればよいですか?」セクションをご参照ください。
説明シャードクラスターインスタンスのシャーディングを設定すると、同期されたデータは異なるシャードに分散されます。これにより、シャードクラスターのパフォーマンスが最大化されます。また、バランサーを有効にし、事前シャーディングを実行して、データスキューを回避することもできます。
使用上の注意
カテゴリ | 説明 |
ソースデータベースとターゲットデータベースの制限 |
|
その他の制限 |
|
課金
同期タイプ | タスク構成料金 |
スキーマ同期と完全データ同期 | 無料です。 |
増分データ同期 | 課金されます。詳細については、「課金概要」をご参照ください。 |
サポートされている一方向データ同期トポロジ
DTS は、2 つの ApsaraDB for MongoDB シャードクラスターインスタンス間でのみ、一方向のデータ同期をサポートしています。DTS は、複数の ApsaraDB for MongoDB インスタンス間での一方向データ同期をサポートしていません。
同期タイプ
同期タイプ | 説明 |
スキーマ同期 | DTS は、選択したオブジェクトのスキーマをソース ApsaraDB for MongoDB インスタンスから宛先 ApsaraDB for MongoDB インスタンスに同期します。 |
完全データ同期 | DTS は、選択したオブジェクトの既存データをソース ApsaraDB for MongoDB インスタンスから宛先 ApsaraDB for MongoDB インスタンスに同期します。 説明 DTS は、データベースとコレクションの完全データ同期をサポートしています。 |
増分データ同期 | DTS は、ソース ApsaraDB for MongoDB インスタンスから宛先 ApsaraDB for MongoDB インスタンスに増分データを同期します。 oplog の使用DTS タスクは、タスクの実行開始後に作成されたデータベースの増分データを同期しません。 DTS は、次の操作によって生成された増分データを同期します。
変更ストリームの使用DTS は、次の操作によって生成された増分データを同期します。
|
孤立ドキュメントを削除する
データ同期を実行する前に、ソース MongoDB データベースから孤立ドキュメントを削除する必要があります。
孤立ドキュメントを削除しないと、同期パフォーマンスが低下します。さらに、一部のドキュメントでは _id
値が重複し、同期したくないデータが同期される可能性があります。
ApsaraDB for MongoDB インスタンス
メジャーバージョンが 4.2 より前、またはマイナーバージョンが 4.0.6 より前の ApsaraDB for MongoDB インスタンスから孤立ドキュメントを削除するためにクリーンアップスクリプトを実行すると、エラーが発生します。 ApsaraDB for MongoDB インスタンスの現在のバージョンを表示する方法については、「MongoDB マイナーバージョン」をご参照ください。 ApsaraDB for MongoDB インスタンスのマイナーバージョンまたはメジャーバージョンを更新する方法については、「インスタンスのメジャーバージョンをアップグレードする」および「インスタンスのマイナーバージョンを更新する」をご参照ください。
cleanupOrphaned
コマンドは、孤立ドキュメントを削除するために必要です。 このコマンドを実行する方法は、MongoDB データベースのバージョンによって異なります。
MongoDB 4.4 以後
シャードクラスターインスタンスに接続できるサーバー上に、
cleanupOrphaned.js
という名前の JavaScript スクリプトファイルを作成します。説明このスクリプトは、複数のシャードの複数のデータベースのすべてのコレクションから孤立ドキュメントを削除するために使用されます。 特定のコレクションから孤立ドキュメントを削除する場合は、スクリプトファイルのパラメーターの一部を変更できます。
// シャードの名前。 var shardNames = ["shardName1", "shardName2"]; // 孤立ドキュメントを削除するデータベース。 var databasesToProcess = ["database1", "database2", "database3"]; shardNames.forEach(function(shardName) { // 指定されたデータベースを走査する。 databasesToProcess.forEach(function(dbName) { var dbInstance = db.getSiblingDB(dbName); // 指定されたデータベースのすべてのコレクション名を取得する。 var collectionNames = dbInstance.getCollectionNames(); // すべてのコレクションを走査する。 collectionNames.forEach(function(collectionName) { // 完全なコレクション名。 var fullCollectionName = dbName + "." + collectionName; // cleanupOrphaned コマンドをビルドする。 var command = { runCommandOnShard: shardName, command: { cleanupOrphaned: fullCollectionName } }; // cleanupOrphaned コマンドを実行する。 var result = db.adminCommand(command); if (result.ok) { print("シャード " + shardName + " のコレクション " + fullCollectionName + " の孤立ドキュメントをクリーンアップしました"); printjson(result); } else { print("シャード " + shardName + " のコレクション " + fullCollectionName + " の孤立ドキュメントのクリーンアップに失敗しました"); } }); }); });
スクリプトファイルの
shardNames
パラメーターとdatabasesToProcess
パラメーターを変更する必要があります。 次の内容は、2 つのパラメーターについて説明しています。shardNames
: 孤立ドキュメントを削除するシャードの ID。 ID は、シャードクラスターインスタンスの [基本情報] ページの [シャードリスト] セクションで確認できます。 例:d-bp15a3796d3a****
。databasesToProcess
: 孤立ドキュメントを削除するデータベースの名前。
cleanupOrphaned.js
スクリプトファイルが保存されているディレクトリで、次のコマンドを実行します。mongo --host <Mongoshost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js > output.txt
次の表は、構成できるパラメーターについて説明しています。
パラメーター
説明
<Mongoshost>
シャードクラスターインスタンスの Mongos ノードのエンドポイント。 形式:
s-bp14423a2a51****.mongodb.rds.aliyuncs.com
。<Primaryport>
シャードクラスターインスタンスの Mongos ノードのポート番号。 デフォルト値: 3717。
<database>
データベースアカウントが属するデータベースの名前。
<username>
データベースアカウント。
<password>
データベースアカウントのパスワード。
output.txt
実行結果を保存するために使用される output.txt ファイル。
MongoDB 4.2 以前
シャードクラスターインスタンスに接続できるサーバー上に、
cleanupOrphaned.js
という名前の JavaScript スクリプトファイルを作成します。説明このスクリプトは、複数のシャードのデータベース内の特定のコレクションから孤立ドキュメントを削除するために使用されます。 複数のコレクションから孤立ドキュメントを削除する場合は、スクリプトファイルの
fullCollectionName
パラメーターを変更し、スクリプトを複数回実行します。 または、すべてのコレクションを走査するようにスクリプトファイルを変更することもできます。function cleanupOrphanedOnShard(shardName, fullCollectionName) { var nextKey = { }; var result; while ( nextKey != null ) { var command = { runCommandOnShard: shardName, command: { cleanupOrphaned: fullCollectionName, startingFromKey: nextKey } }; result = db.adminCommand(command); printjson(result); if (result.ok != 1 || !(result.results.hasOwnProperty(shardName)) || result.results[shardName].ok != 1 ) { print("現時点では完了できません: 失敗またはタイムアウト。") break } nextKey = result.results[shardName].stoppedAtKey; } print("シャード: " + shardName + " のコレクション: " + fullCollectionName + " の cleanupOrphaned が完了しました") } var shardNames = ["shardName1", "shardName2", "shardName3"] var fullCollectionName = "database.collection" shardNames.forEach(function(shardName) { cleanupOrphanedOnShard(shardName, fullCollectionName); });
スクリプトファイルの
shardNames
パラメーターとfullCollectionName
パラメーターを変更する必要があります。 次の内容は、2 つのパラメーターについて説明しています。shardNames
: 孤立ドキュメントを削除するシャードの ID。 ID は、シャードクラスターインスタンスの [基本情報] ページの [シャードリスト] セクションで確認できます。 例:d-bp15a3796d3a****
。fullCollectionName
: このパラメーターは、孤立ドキュメントを削除するコレクションの名前に置き換える必要があります。 形式:データベース名.コレクション名
。
cleanupOrphaned.js
スクリプトファイルが保存されているディレクトリで、次のコマンドを実行します。mongo --host <Mongoshost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js > output.txt
次の表は、構成できるパラメーターについて説明しています。
パラメーター
説明
<Mongoshost>
シャードクラスターインスタンスの Mongos ノードのエンドポイント。 形式:
s-bp14423a2a51****.mongodb.rds.aliyuncs.com
。<Primaryport>
シャードクラスターインスタンスの Mongos ノードのポート番号。 デフォルト値: 3717。
<database>
データベースアカウントが属するデータベースの名前。
<username>
データベースアカウント。
<password>
データベースアカウントのパスワード。
output.txt
実行結果を保存するために使用される output.txt ファイル。
自主管理 MongoDB データベース
自主管理 MongoDB データベースに接続できるサーバーに、cleanupOrphaned.js スクリプトファイルをダウンロードします。
wget "https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120562/cn_zh/1564451237979/cleanupOrphaned.js"
cleanupOrphaned.js ファイルの
test
を、孤立ドキュメントを削除するデータベースの名前に置き換えます。重要複数のデータベースから孤立ドキュメントを削除する場合は、ステップ 2 とステップ 3 を繰り返します。
指定されたデータベースのすべてのコレクションから孤立ドキュメントを削除するには、シャードで次のコマンドを実行します。
説明この手順は、シャードごとに繰り返す必要があります。
mongo --host <Shardhost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js
説明<Shardhost>: シャードの IP アドレス。
<Primaryport>: シャードのプライマリノードのサービスポート。
<database>: データベースアカウントが属するデータベースの名前。
<username>: 自主管理 MongoDB データベースにログインするために使用するアカウント。
<password>: 自主管理 MongoDB データベースにログインするために使用するパスワード。
例:
この例では、自主管理 MongoDB データベースに 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
手順
この例では、DTS タスクは DTS インスタンスを購入する前に構成されています。ソースの ApsaraDB for MongoDB シャードクラスターインスタンスのシャード数を指定する必要はありません。DTS タスクを構成する前に DTS インスタンスを購入した場合は、インスタンスの購入時にシャード数を指定する必要があります。
次のいずれかの方法を使用して、データ同期ページに移動し、データ同期インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、データ同期インスタンスが存在するリージョンを選択します。
DMS コンソール
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、ポインターを [データ + AI] に移動し、
を選択します。データ同期タスク の右側のドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
タスクの作成 をクリックして、タスク構成ページに移動します。
ソースデータベースとターゲットデータベースを設定します。次の表にパラメーターを示します。
セクション
パラメーター
説明
該当なし
タスク名
DTS タスクの名前です。DTS はタスク名を自動的に生成します。タスクを識別しやすい説明的な名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。
移行元データベース
既存の接続を選択
DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。DTS は、インスタンスの以下のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。
説明DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。
インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を設定する必要があります。
データベースタイプ
ソースデータベースの種類です。MongoDB を選択します。
アクセス方法
ソースデータベースのアクセス方法です。Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
ソース ApsaraDB for MongoDB インスタンスが存在するリージョン。
Alibaba Cloud アカウント間でデータを複製
この例では、現在の Alibaba Cloud アカウントのデータベースが使用されます。× を選択します。
アーキテクチャ
ソースインスタンスがデプロイされているアーキテクチャです。シャードクラスター を選択します。
移行方法
ソースデータベースから増分データを同期するために使用される方法です。ビジネス要件に基づいて方法を選択します。有効な値:
Oplog(推奨):
このオプションは、ソースデータベースで oplog 機能が有効になっている場合に利用可能です。
説明デフォルトでは、oplog 機能は自主管理 MongoDB データベースと ApsaraDB for MongoDB インスタンスの両方で有効になっています。この機能により、高速なログ プル速度のため、低レイテンシで増分データを同期できます。そのため、移行方法パラメーターには Oplog を選択することをお勧めします。
ChangeStream:
このオプションは、ソースデータベースで変更ストリームが有効になっている場合に利用可能です。詳細については、変更ストリーム を参照してください。
説明ソースデータベースが非弾性 Amazon DocumentDB クラスターの場合、移行方法 パラメーターは ChangeStream のみに設定できます。
シャードクラスターアーキテクチャ パラメーターに を選択した場合、Shardアカウント パラメーターと Shardパスワード パラメーターを設定する必要はありません。
インスタンス ID
ソース ApsaraDB for MongoDB インスタンスの ID。
認証データベース
ソース ApsaraDB for MongoDB インスタンスのデータベースアカウントとパスワードを格納する認証データベースの名前です。認証データベースの名前を以前に変更していない場合、デフォルト値 admin が使用されます。
データベースアカウント
ソース ApsaraDB for MongoDB インスタンスのデータベースアカウント。アカウントは、ソースデータベース、config データベース、admin データベース、および local データベースに対する読み取り権限を持っている必要があります。
データベースのパスワード
データベースへのアクセスに使用されるパスワードです。
Shardアカウント
ソースの ApsaraDB for MongoDB インスタンスのシャードノードへのアクセスに使用するアカウント。
説明ソースデータベースが自主管理 MongoDB データベースの場合、シャードへのアクセスに使用される情報を指定する必要があります。
Shardパスワード
ソース ApsaraDB for MongoDB インスタンスのシャードノードにアクセスするために使用されるパスワード。
移行先データベース
暗号化
ソースデータベースへの接続を暗号化するかどうかを指定します。ビジネス要件に基づいて、非暗号化、SSL 暗号化、または Mongo Atlas SSL を選択できます。暗号化 パラメーターで使用可能なオプションは、アクセス方法 パラメーターと アーキテクチャ パラメーターで選択された値によって決まります。DTS コンソールに表示されるオプションが優先されます。
説明[アーキテクチャ] パラメーターが [シャーディングクラスタ] に設定され、[移行方法] パラメーターが ApsaraDB for MongoDB データベースに対して Oplog に設定されている場合、SSL 暗号化 パラメーターは使用できません。
ソースデータベースがレプリカセット アーキテクチャを使用する自主管理 MongoDB データベースであり、アクセス方法 パラメーターが Alibaba Cloud インスタンス に設定されておらず、暗号化パラメーターが SSL 暗号化 に設定されている場合は、認証局(CA)証明書をアップロードして、ソースデータベースへの接続を検証できます。
既存の接続を選択
DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。DTS は、インスタンスの以下のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。
説明DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。
インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、以下のデータベース情報を設定する必要があります。
データベースタイプ
ターゲットデータベースの種類です。MongoDB を選択します。
アクセス方法
ターゲットデータベースのアクセス方法です。Alibaba Cloud インスタンス を選択します。
インスタンスのリージョン
宛先 ApsaraDB for MongoDB インスタンスが存在するリージョン。
Alibaba Cloud アカウント間でデータをレプリケートする
この例では、現在の Alibaba Cloud アカウントのデータベースが使用されます。× を選択します。
アーキテクチャ
デスティネーション ApsaraDB for MongoDB インスタンスがデプロイされているアーキテクチャ。
インスタンス ID
宛先 ApsaraDB for MongoDB インスタンスの ID。
認証データベース
宛先 ApsaraDB for MongoDB インスタンスのデータベースアカウントとパスワードを格納する認証データベースの名前。認証データベースの名前を以前に変更していない場合は、デフォルト値 admin が使用されます。
データベースアカウント
ターゲット ApsaraDB for MongoDB インスタンスのデータベースアカウント。アカウントには、dbAdminAnyDatabase 権限、ターゲットデータベースに対する読み取りおよび書き込み権限、ローカルデータベースに対する読み取り権限が必要です。
データベースのパスワード
データベースへのアクセスに使用されるパスワードです。
暗号化
ターゲットデータベースへの接続を暗号化するかどうかを指定します。ビジネス要件に基づいて、非暗号化、SSL 暗号化、または Mongo Atlas SSL を選択できます。暗号化 パラメーターで使用可能なオプションは、アクセス方法 パラメーターと アーキテクチャ パラメーターで選択された値によって決まります。DTS コンソールに表示されるオプションが優先されます。
説明ターゲットデータベースが ApsaraDB for MongoDB インスタンスで、[アーキテクチャ] パラメーターが [シャーディングクラスタ] に設定されている場合、暗号化パラメーター SSL 暗号化 は使用できません。
ターゲットデータベースが、レプリカセット アーキテクチャを使用する自主管理 MongoDB データベースであり、アクセス方法 パラメーターが Alibaba Cloud インスタンス に設定されておらず、暗号化パラメーターが SSL 暗号化 に設定されている場合は、ターゲットデータベースへの接続を検証するために CA 証明書をアップロードできます。
ページの下部にある 接続をテストして続行 をクリックします。
説明DTS サーバーの CIDR ブロックが、DTS サーバーからのアクセスを許可するために、ソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加できることを確認します。 詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。
ソースデータベースまたはターゲットデータベースが自己管理データベースであり、その アクセス方法 が Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。
同期するオブジェクトを設定します。
オブジェクト設定 ステップで、同期するオブジェクトを設定します。
パラメータ
説明
同期タイプ
同期タイプ。デフォルトでは、[増分データ同期] が選択されています。[スキーマ同期] と [フルデータ同期] も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトの既存データをソースデータベースから宛先クラスタに同期します。既存データは、後続の増分同期の基礎となります。
説明宛先 ApsaraDB for MongoDB シャードクラスターインスタンスにデータシャーディングが設定されていて、DTS のスキーマ同期機能を使用する必要がない場合は、[オブジェクトの設定] ステップで [同期タイプ] の 1 つとして [スキーマ同期] を選択しないでください。選択すると、シャードの競合が原因でデータの不整合が発生したり、タスクが失敗したりする可能性があります。
競合テーブルの処理モード
エラーの事前チェックと報告: 宛先データベースに、ソースデータベースのコレクションと同じ名前のコレクションが含まれているかどうかを確認します。ソースデータベースと宛先データベースに同一のコレクション名が含まれていない場合、事前チェックは合格です。それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。
説明ソースデータベースと宛先データベースに同じ名前のコレクションがあり、宛先データベースのコレクションを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、宛先データベースに同期されるコレクションの名前を変更できます。詳細については、「同期するオブジェクトの名前を変更する」をご参照ください。
エラーを無視して続行: ソースデータベースと宛先データベースで同一のコレクション名の事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
宛先データベースのデータレコードのプライマリキー値または一意キー値がソースデータベースのデータレコードと同じである場合、DTS はデータレコードを宛先データベースに同期しません。宛先データベースの既存のデータレコードは保持されます。
データの初期化に失敗したり、特定の列のみが同期されたり、データ同期タスクが失敗したりする可能性があります。
同期トポロジ
同期トポロジ。[一方向同期] を選択します。
宛先インスタンスでのオブジェクト名の大文字化
宛先インスタンスのデータベース名とコレクション名の大文字と小文字の区別。デフォルトでは、[DTS デフォルトポリシー] が選択されています。他のオプションを選択して、オブジェクト名の大文字と小文字の区別が、ソースデータベースまたは宛先データベースのオブジェクト名のデフォルトの大文字と小文字の区別と一致するようにすることができます。詳細については、「宛先インスタンスのオブジェクト名の大文字と小文字の区別を指定する」をご参照ください。
ソースオブジェクト
ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択し、
アイコンをクリックして、選択中のオブジェクト セクションにオブジェクトを追加します。
説明データベースまたはコレクションを同期するオブジェクトとして選択できます。
[選択済みオブジェクト]
宛先データベースで同期するオブジェクトの名前を設定したり、宛先データベースでデータを受信するオブジェクトを指定したりするには、選択中のオブジェクト セクションでオブジェクトを右クリックします。詳細については、「オブジェクト名をマッピングする」をご参照ください。
選択したオブジェクトを削除するには、選択中のオブジェクト セクションでオブジェクトをクリックし、
アイコンをクリックして、ソースオブジェクト セクションにオブジェクトを移動します。
説明データベースまたはコレクション別に増分データを同期するには、選択中のオブジェクト を右クリックし、表示されるダイアログボックスで操作を選択します。
同期するテーブルのデータをフィルタリングするには、選択中のオブジェクト セクションでテーブルを右クリックします。表示されるダイアログボックスで、フィルタ条件を設定します。データ同期タスクのフルデータ同期ステージでデータをフィルタリングする条件を指定できます。データ同期タスクの増分データ同期ステージでデータをフィルタリングする条件を指定することはできません。詳細については、「フィルタ条件を指定する」をご参照ください。
オブジェクト名マッピング機能を使用して、データの同期先となるデータベースまたはコレクションの名前を変更すると、そのデータベースまたはコレクションに依存する他のオブジェクトの同期に失敗する可能性があります。
次へ:詳細設定 をクリックして、詳細設定を行います。
パラメータ
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、専用のクラスタを指定しない場合、DTS は共有クラスタにタスクをスケジュールします。データ同期タスクの安定性を向上させるには、専用のクラスタを購入します。詳細については、「DTS 専用クラスタとは」をご参照ください。
失敗した接続の再試行時間
接続失敗時の再試行時間の範囲。データ同期タスクの開始後にソースデータベースまたは宛先データベースへの接続に失敗した場合、DTS は指定された時間範囲内で直ちに再接続を試みます。有効値: 10 ~ 1440。単位: 分。デフォルト値: 720。このパラメータは 30 より大きい値に設定することをお勧めします。DTS が指定された時間範囲内にソースデータベースと宛先データベースに再接続すると、DTS はデータ同期タスクを再開します。それ以外の場合、データ同期タスクは失敗します。
説明ソースデータベースまたは宛先データベースが同じ複数のデータ同期タスクに異なる再試行時間の範囲を指定した場合、最も短い再試行時間の範囲が優先されます。
DTS が再接続を試行すると、DTS インスタンスの料金が発生します。ビジネス要件に基づいて再試行時間の範囲を指定することをお勧めします。ソースインスタンスと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
その他の問題の再試行時間の範囲。たとえば、データ同期タスクの開始後に DDL 操作または DML 操作の実行に失敗した場合、DTS は指定された時間範囲内で直ちに操作を再試行します。有効値: 1 ~ 1440。単位: 分。デフォルト値: 10。このパラメータは 10 より大きい値に設定することをお勧めします。指定された時間範囲内に失敗した操作が正常に実行されると、DTS はデータ同期タスクを再開します。それ以外の場合、データ同期タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメータの値は、失敗した接続の再試行時間 パラメータの値よりも小さい必要があります。
完全同期レートを制限するかどうか
フルデータ同期中、DTS はソースデータベースと宛先データベースの読み取りリソースと書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。宛先データベースサーバーの負荷を軽減するために、フルデータ同期タスクの 1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、1 秒あたりの完全移行データ量 (MB) BPS パラメータを設定できます。
説明同期タイプ パラメータで 完全データ同期 が選択されている場合にのみ、このパラメータを設定できます。
単一テーブルのプライマリキー _id に対して 1 つのデータ型のみ
同期するデータのコレクションのプライマリキー
_id
のデータ型が一意かどうか。有効値:説明ビジネス要件に基づいてこのパラメータを指定します。指定しないと、データが失われる可能性があります。
このパラメータは、[同期タイプ] パラメータで [フルデータ同期] が選択されている場合にのみ表示されます。
[はい]: データ型が一意です。フルデータ同期中、DTS はソースデータベースから同期するデータのプライマリキー
_id
のデータ型をスキャンしません。DTS は、単一のコレクションのデータ型のプライマリキーのデータのみを同期します。[いいえ]: データ型が一意ではありません。フルデータ同期中、DTS はソースデータベースから同期するデータのプライマリキー
_id
のデータ型をスキャンし、同期するすべてのデータを同期します。
増分同期率を制限するかどうか
増分データ同期の速度制限を有効にするかどうかを指定します。ビジネス要件に基づいて、増分データ同期の速度制限を有効にすることができます。速度制限を設定するには、1 秒あたりの増分同期の行数 RPS パラメータと 1 秒あたりの増分同期データ量 (MB) BPS パラメータを設定する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。
環境タグ
DTS インスタンスを識別するために使用される環境タグ。ビジネス要件に基づいて環境タグを選択できます。この例では、このパラメータを設定する必要はありません。
ETL の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効値:
[はい]: ETL 機能を設定します。コードエディタにデータ処理文を入力できます。詳細については、「データ移行タスクまたはデータ同期タスクで ETL を設定する」をご参照ください。
[いいえ]: ETL 機能を設定しません。
監視アラート
データ同期タスクのアラートを設定するかどうかを指定します。タスクが失敗した場合、または同期遅延が指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。有効値:
[いいえ]: アラートを有効にしません。
[はい]: アラートを設定します。この場合、アラートのしきい値と アラート通知設定 も設定する必要があります。詳細については、「Configure monitoring and alerting」トピックの「DTS タスクの作成時に監視とアラートを設定する」セクションをご参照ください。
[次のステップ: データ検証] をクリックして、データ検証を設定します。
データ検証機能の使用方法の詳細については、「データ検証タスクを設定する」をご参照ください。
タスク設定を保存し、事前チェックを実行します。
DTS タスクを設定するために関連 API 操作を呼び出すときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを移動し、OpenAPI パラメーターのプレビュー をクリックします。
パラメーターを表示する必要がない場合、またはすでに表示済みの場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明データ同期タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した後にのみ、データ同期タスクを開始できます。
データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。次に、事前チェックを再実行します。
事前チェック中に項目に対してアラートがトリガーされた場合:
アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして、問題をトラブルシューティングします。次に、事前チェックを再度実行します。
アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再チェック] をクリックして、事前チェックを再度実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
インスタンスを購入します。
[成功率] が [100%] になるまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。
[購入] ページで、データ同期インスタンスの課金方法とインスタンスクラスのパラメーターを設定します。次の表にパラメーターを示します。
セクション
パラメーター
説明
新しいインスタンスクラス
課金方法
サブスクリプション: データ同期インスタンスを作成するときにサブスクリプション料金を支払います。サブスクリプション課金方法は、長期使用の場合、従量課金方法よりも費用対効果が高くなります。
従量課金: 従量課金インスタンスは時間単位で課金されます。従量課金方法は、短期使用に適しています。従量課金データ同期インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。
リソースグループ設定
データ同期インスタンスが属するリソースグループ。デフォルト値: [デフォルトのリソースグループ]。詳細については、「リソース管理とは」をご参照ください。
インスタンスクラス
DTS は、同期速度が異なるインスタンスクラスを提供します。ビジネス要件に基づいてインスタンスクラスを選択できます。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間
サブスクリプション課金方法を選択した場合は、サブスクリプション期間と作成するデータ同期インスタンスの数を指定します。サブスクリプション期間は、1 ~ 9 か月、1 年、2 年、3 年、または 5 年です。
説明このパラメーターは、サブスクリプション 課金方法を選択した場合にのみ使用できます。
[Data Transmission Service (従量課金) サービス規約] を読んで選択します。
[購入して開始] をクリックします。表示されるダイアログボックスで、OK をクリックします。
タスクの進捗状況はタスクリストで確認できます。