このトピックでは、Data Transmission Service (DTS) に関するよくある質問 (FAQ) への回答を提供します。DTS がエラーメッセージを返した場合、一般的なエラーとトラブルシューティング トピックを参照して、エラーのトラブルシューティングを行うことができます。エラーメッセージが表示されない場合は、このトピックの FAQ に基づいてエラーの原因を特定し、エラーを修正できます。
FAQ の種類
FAQ は以下の種類に分類されます。
課金に関する FAQ
DTS の料金はどのように請求されますか?
DTS の料金は、サブスクリプションと従量課金制の課金方法に基づいて請求されます。課金方法の詳細については、「課金の概要」をご参照ください。
DTS の請求書はどのように表示しますか?
DTS の請求書の表示方法の詳細については、「請求書の表示」をご参照ください。
DTS インスタンスが一時停止されている間も課金されますか?
データ移行インスタンスが一時停止されている間は課金されません。
ソースデータベースまたはターゲットデータベースに接続できるかどうかに関係なく、データ同期インスタンスが一時停止されている間も、データ同期インスタンスの料金は請求されます。これは、一時停止されたインスタンスが CPU やメモリなどのリソースを消費し続けるためです。インスタンスが一時停止されると、DTS はターゲットデータベースへのデータの書き込みを停止しますが、ソースデータベースからのログの読み取りは試行し続けます。これにより、インスタンスの再起動後すぐにデータ同期インスタンスを再開できます。
データ同期の料金がデータ移行の料金よりも高いのはなぜですか?
データ同期には、より高度な機能が備わっています。たとえば、同期するオブジェクトを再選択したり、MySQL データベース間の双方向同期を設定したりできます。さらに、データ同期では、内部ネットワーク経由でデータを送信することで、ネットワークレイテンシを低く抑えることができます。
支払い遅延の影響は何ですか?
支払い遅延の影響の詳細については、「有効期限と支払い遅延」をご参照ください。
サブスクリプションインスタンスの有効期限が切れる前にリリースするにはどうすればよいですか?
インスタンスの課金方法をサブスクリプションから従量課金制に変更した後、サブスクリプションインスタンスをリリースできます。課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。
タスクの課金方法をサブスクリプションから従量課金制に変更できますか?
はい、タスクの課金方法をサブスクリプションから従量課金制に変更できます。課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。
タスクの課金方法を従量課金制からサブスクリプションに変更できますか?
はい、データ同期タスクまたは変更追跡タスクの課金方法を従量課金制からサブスクリプションに変更できます。課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。
データ移行タスクの課金方法は、従量課金制のみです。
以前は無料だった DTS インスタンスの料金が請求されるのはなぜですか?
これは、DTS インスタンスの無料トライアル期間が終了したためです。DTS は、ターゲットデータベースが ApsaraDB データベースであるタスクに無料トライアル期間を提供しています。無料トライアル期間が終了すると、タスクの料金が請求されます。
リリースされた DTS インスタンスの料金が請求されるのはなぜですか?
DTS は、従量課金制の DTS インスタンスの請求書を毎日生成します。DTS インスタンスがリリースされた日は、その日に DTS が使用されているため、DTS インスタンスの料金が請求されます。
従量課金制の DTS インスタンスの料金はどのように請求されますか?
従量課金制の DTS インスタンスの料金は、[増分データ同期] が一時停止されている期間を含め、増分タスクが進行中の場合にのみ請求されますが、[増分データ移行] が一時停止されている期間は除きます。詳細については、「課金方法」をご参照ください。
ネットワークトラフィックの料金は請求されますか?
一部の DTS タスクでは、インターネットトラフィック料金とデータトラフィック料金が請求されます。これは、ソースデータベースとターゲットデータベースが存在するリージョンとは無関係です。データ移行インスタンスでターゲットデータベースの [アクセス方法] として [パブリック IP アドレス] を設定した場合、インターネットトラフィック料金が請求されます。完全データ検証タスクで [サンプリングされた行に基づいてすべてのフィールドを検証する] 場合、検証されたデータ量に基づいてデータトラフィック料金が請求されます。詳細については、「請求対象項目」をご参照ください。
パフォーマンスとインスタンスタイプに関する FAQ
インスタンスタイプの違いは何ですか?
インスタンスタイプの違いの詳細については、「データ移行インスタンスのインスタンスクラス」と「データ同期インスタンスのインスタンスクラス」をご参照ください。
DTS インスタンスをアップグレードできますか?
はい、DTS インスタンスをアップグレードできます。詳細については、「DTS インスタンスのアップグレード」をご参照ください。
DTS インスタンスをダウングレードできますか?
いいえ、DTS では DTS インスタンスをダウングレードできません。
データの同期または移行にはどれくらい時間がかかりますか?
DTS タスクに必要な時間は推定できません。これは、DTS の転送パフォーマンスが、DTS の内部ペイロード、ソースデータベースとターゲットデータベースのペイロード、転送されるデータ量、DTS タスクに増分データ移行または同期が含まれるかどうか、ネットワークの状態など、さまざまな要因の影響を受けるためです。高パフォーマンスが必要な場合は、より高いパフォーマンスを提供するインスタンスタイプを選択することをお勧めします。インスタンスタイプの詳細については、「データ移行インスタンスのインスタンスクラス」と「データ同期インスタンスのインスタンスクラス」をご参照ください。
データ移行インスタンスまたはデータ同期インスタンスのパフォーマンス情報はどのように表示しますか?
インスタンスに関するパフォーマンス情報の表示方法の詳細については、「増分データ移行の接続ステータスとパフォーマンスの表示」または「データ同期の接続ステータスとパフォーマンスの表示」をご参照ください。
DTS コンソールで特定の DTS インスタンスが見つからないのはなぜですか?
DTS インスタンスがサブスクリプションインスタンスの場合、有効期限が切れたためにインスタンスがリリースされている可能性があります。
リソースグループが無効です。[すべてのリソース] を選択することをお勧めします。
リージョンが無効です。選択したリージョンが、DTS インスタンスが存在するリージョンであるかどうかを確認してください。
タスクタイプが無効です。必要なタスクタイプのインスタンスが表示されるインスタンスリストページにアクセスしているかどうかを確認してください。たとえば、同期インスタンスは データ同期タスク ページにのみ表示されます。
有効期限の切れまたは支払い遅延により、インスタンスがリリースされています。サブスクリプションインスタンスの有効期限が切れた場合、または支払い遅延が発生した場合、インスタンスは停止します。サービスの停止後 7 日以内に支払い遅延を解消しない場合、システムはインスタンスをリリースして削除します。詳細については、「有効期限と支払い遅延」をご参照ください。
事前チェックに関する FAQ
Redis のデータエビクションポリシーに関連するチェック項目に対してアラートが生成されるのはなぜですか?
ターゲットデータベースのデータエビクションポリシー(maxmemory-policy)が に設定されていない場合、ソースデータベースとターゲットデータベース間でデータの不整合が発生する可能性があります。データエビクションポリシーの詳細については、「Tair のデフォルトのエビクションポリシーとは」をご参照ください。
増分データ移行タスクの事前チェックでバイナリログ関連の項目が失敗した場合はどうすればよいですか?
ソースデータベースのバイナリログが正常かどうかを確認します。詳細については、「ソースデータベースのバイナリロギングに関する事前チェック」をご参照ください。
データベース接続に関するよくある質問
ソースデータベースへの接続が失敗した場合はどうすればよいですか?
ソースデータベースの情報と設定が正常かどうかを確認します。詳細については、「ソースデータベースの接続性」をご参照ください。
宛先データベースへの接続に失敗した場合はどうすればよいですか?
宛先データベースの情報と設定が正常かどうかを確認します。詳細については、「宛先データベースの接続性」をご参照ください。
リージョンで DTS がサポートされていないデータベースインスタンスとの間でデータを移行または同期するにはどうすればよいですか。
データ移行タスクの場合、ApsaraDB RDS for MySQL インスタンスなどのデータベースインスタンスのパブリックエンドポイントを申請できます。 これにより、[パブリック IP アドレス] を使用してデータベースインスタンスに接続できます。 その後、DTS がサポートされているリージョンにある DTS サーバーの CIDR ブロックをデータベースインスタンスのホワイトリストに追加します。 データベースインスタンスのホワイトリストに追加する必要がある DTS サーバーの CIDR ブロックの詳細については、「DTS サーバーの CIDR ブロックを追加する」をご参照ください。
データ同期タスクの場合、データ同期中に [パブリック IP アドレス] を使用してデータベースインスタンスに接続できないため、DTS でサポートされていないリージョンのデータベースインスタンスとの間でデータを同期することはできません。
データ同期に関するよくある質問
DTS はどのような種類のデータベースのデータ同期をサポートしていますか?
DTS は、リレーショナルデータベース管理システム (RDBMS) データベース、NoSQL データベース、オンライン分析処理 (OLAP) データベースなど、さまざまなデータソース間のデータ同期をサポートしています。詳細については、「データ同期シナリオの概要」をご参照ください。
データ移行とデータ同期の違いは何ですか?
次の表に、データ移行とデータ同期の相違点を示します。
自己管理データベースとは、DTS タスクを構成する際に [アクセス方法] が [Alibaba Cloud インスタンス] に設定されていないデータベースです。自己管理データベースには、サードパーティクラウドでホストされているデータベース、オンプレミスデータベース、および ECS インスタンスでホストされているデータベースが含まれます。
項目 | データ移行 | データ同期 |
ユースケース | データ移行機能は、オンプレミスデータベース、Elastic Compute Service (ECS) インスタンスでホストされている自己管理データベース、およびサードパーティクラウド上のデータベースから Alibaba Cloud にデータを移行するために使用されます。 | データ同期機能は、2 つのデータソース間でリアルタイムにデータを同期するために使用されます。この機能は、アクティブ地理的冗長性、ディザスタリカバリ、クロスボーダーデータ同期、クエリ負荷分散、クラウド ビジネスインテリジェンス (BI) システム、リアルタイムデータウェアハウスなどのシナリオに適しています。 |
サポートされているデータベースサービス | 詳細については、「データ移行シナリオの概要」をご参照ください。 説明 スタンドアロン MongoDB データベースや MySQL 互換 OceanBase データベースなど、データ同期機能でサポートされていないデータベースの場合は、データ移行を実行できます。データ移行は、ソースデータベースとターゲットデータベース間でデータを同期するための回避策として機能します。 | 詳細については、「データ同期シナリオの概要」をご参照ください。 |
データベースのサポートされているデプロイ環境 |
|
説明 データ同期機能は、内部ネットワーク経由でデータを送信することにより、低ネットワークレイテンシを保証します。 |
機能 |
|
|
課金方法 | 従量課金のみがサポートされています。 | 従量課金とサブスクリプションの課金方法がサポートされています。 |
料金 | 増分データ移行を含むデータ移行インスタンスに対して課金されます。 | デフォルトでは、同期インスタンスには増分データ同期タスクが含まれています。そのため、データ同期インスタンスに対して課金されます。 |
請求ルール | 増分データ移行が一時停止されている期間を除き、増分データ移行が進行中の場合にのみ課金されます。スキーマ移行または完全なデータ移行に対しては課金されません。 |
|
ApsaraDB for MongoDB インスタンスのデータベースなど、データ同期機能でサポートされていないデータベースの場合は、増分データ移行を実行して、データベースとの間でデータを同期できます。
データ同期モードでの DTS の動作
データ同期モードでの DTS の動作の詳細については、「アーキテクチャ」をご参照ください。
同期遅延はどのように計算しますか?
同期遅延とは、ターゲットデータベースに同期された最新のデータレコードのタイムスタンプと、ソースデータベースの現在のタイムスタンプとの差です。単位:ミリ秒。
ほとんどの場合、待機時間は 1,000 ミリ秒未満です。
データ同期タスクで同期されるオブジェクトを変更できますか?
はい、データ同期タスクで同期されるオブジェクトを変更できます。同期されるオブジェクトを変更する方法の詳細については、「データ同期タスクにオブジェクトを追加する」および「データ同期タスクからオブジェクトを削除する」をご参照ください。
データ同期タスクにテーブルを追加できますか?
はい。データ同期タスクにテーブルを追加できます。データ同期タスクにテーブルを追加する方法の詳細については、「データ同期タスクにオブジェクトを追加する」をご参照ください。
実行中のデータ同期タスクで、テーブルやフィールドなどのオブジェクトを変更するにはどうすればよいですか。
データ同期タスクの完全同期フェーズが終了すると、増分同期フェーズで同期されるオブジェクトを変更できます。実行中のデータ同期タスクで同期されるオブジェクトを変更する方法の詳細については、「データ同期タスクにオブジェクトを追加する」および「データ同期タスクからオブジェクトを削除する」をご参照ください。
データ同期タスクが一定期間停止した後に再開された場合、データの不整合は発生しますか?
データ同期タスクの停止中にソースデータベースが変更された場合、ソースデータベースとターゲットデータベースのデータに不整合が生じる可能性があります。 データ同期タスクを再開し、増分データをターゲットデータベースに同期すると、ソースデータベースとターゲットデータベースのデータは一致します。
増分同期タスクのソースデータベースのデータが削除された場合、ターゲットデータベースの同期済みデータは削除されますか?
増分同期タスクで同期する DML [操作] に [削除] を選択しない場合、ターゲットデータベースのデータは削除されません。それ以外の場合、ターゲットデータベースの同期済みデータは削除されます。
Redis インスタンス間の同期中に、ターゲット Redis インスタンスのデータは上書きされますか?
同じキーを持つデータは上書きされます。ターゲットデータベースは、事前チェックフェーズでチェックされます。ターゲットデータベースが空でない場合は、エラーメッセージが返されます。
データ同期タスクでフィールドまたはデータをフィルタリングできますか?
はい。マッピング機能を使用して、データ同期タスクで同期したくない列をフィルタリングできます。同期するデータをフィルタリングするために SQL WHERE 条件を指定できます。詳細については、「オブジェクト名をマッピングする」および「フィルター条件を設定する」をご参照ください。
データ同期タスクをデータ移行タスクに変換できますか?
いいえ、異なるタイプのタスクを相互に変換することはできません。
スキーマを同期せずにデータのみを同期できますか?
はい。スキーマを同期せずにデータのみを同期できます。そのためには、データ同期タスクを構成する際に [スキーマ同期] を選択しないでください。
ソースデータベースとターゲットデータベース間でデータ同期タスクのデータ不整合が発生する原因は何ですか?
データの不整合は、次の原因によって発生する可能性があります。
タスクを構成するときにターゲットデータベースのデータをクリアせず、ターゲットデータベースに既存データが保存されている。
タスクを構成するときに増分同期モジュールのみを選択し、完全同期モジュールを選択していない。
タスクを構成するときに完全同期モジュールのみを選択し、増分同期モジュールを選択していない。 タスクの完了後にソースデータベースのデータが変更される。
DTS 以外のツールを使用してターゲットデータベースにデータを書き込む。
増分書き込みの待機時間により、増分データがターゲットデータベースに書き込まれていない。
データ同期タスクで、ターゲットデータベース内の同期済みオブジェクトの名前を変更できますか?
はい。データ同期タスクを構成する際に、ターゲットデータベース内の同期済みオブジェクトの名前を変更できます。ターゲットデータベース内の同期済みオブジェクトの名前を変更する方法の詳細については、「同期するオブジェクトの名前を変更する」をご参照ください。
DML 操作または DDL 操作を同期できますか?
はい。リレーショナルデータベース間で DML 操作と DDL 操作を同期できます。サポートされている DML 操作は、INSERT、UPDATE、および DELETE です。サポートされている DDL 操作は、CREATE、DROP、ALTER、RENAME、および TRUNCATE です。
サポートされている DML 操作と DDL 操作は、シナリオによって異なります。詳細については、「データ同期シナリオの概要」をご参照ください。
読み取り専用データベースインスタンスをデータ同期タスクのソースインスタンスとして使用できますか?
デフォルトでは、同期インスタンスには増分データ同期タスクが含まれています。次の点に注意してください。
読み取り専用データベースインスタンスがトランザクションログを記録する場合 (ApsaraDB RDS for MySQL 5.7 または 8.0 のインスタンスなど)、ソースインスタンスとして使用できます。
読み取り専用データベースインスタンスがトランザクションログを記録しない場合 (ApsaraDB RDS for MySQL 5.6 のインスタンスなど)、ソースインスタンスとして使用できません。
データベースシャードまたはテーブルパーティションを同期できますか?
はい。データベースシャードとテーブルパーティションを同期できます。たとえば、MySQL データベースまたは PolarDB for MySQL クラスタから AnalyticDB for MySQL クラスタにデータベースシャードとテーブルパーティションを同期できます。これにより、複数のテーブルをマージできます。
データ同期完了後、ターゲットデータベースのデータサイズがソースデータベースのデータサイズよりも小さいのはなぜですか。
同期するデータがフィルタリングされている場合、またはソースデータベースに多数のテーブルパーティションがある場合、データ同期完了後のターゲットデータベースのデータサイズは、ソースデータベースのデータサイズよりも小さくなる可能性があります。
クロスアカウントデータ同期タスクでは、双方向同期はサポートされていますか?
Alibaba Cloud アカウント間で双方向同期タスクを設定できるのは、ApsaraDB RDS for MySQL インスタンス間、ApsaraDB RDS for MySQL クラスター間、Tair (Enterprise Edition) インスタンス間、ApsaraDB for MongoDB レプリカセットインスタンス間、または ApsaraDB for MongoDB シャードクラスターインスタンス間のみです。
クロスボーダーの双方向同期タスクを設定できますか?
いいえ、クロスボーダーの双方向同期タスクを設定することはできません。
双方向同期タスクで一方のデータベースにレコードが追加されたときに、もう一方のデータベースに追加されないのはなぜですか?
これは、逆方向のデータ同期タスクを設定していない場合に発生する可能性があります。
増分データ同期タスクの進捗が 100% に到達しないのはなぜですか?
増分データ同期タスクの進捗は 100% に到達しません。DTS が増分データ同期を実行する場合、DTS はソースデータベースからターゲットデータベースへの変更をリアルタイムで継続的に同期し、手動でのみ停止できます。リアルタイムの増分同期が不要になった場合は、DTS コンソールで同期タスクを停止できます。
増分同期タスクで一部のデータが同期されないのはなぜですか?
DTS インスタンスに対して増分同期タスクのみを構成した場合、DTS はタスクの開始後に増分データのみを同期します。タスクの開始前にソースデータベースに格納されているデータは、ターゲットデータベースに同期されません。 データ同期タスクを構成する際には、[増分データ同期]、[スキーマ同期]、および [フルデータ同期] を選択することをお勧めします。 これにより、データ整合性が確保されます。
ソースデータベースから完全データを同期すると、ソース ApsaraDB RDS データベースのパフォーマンスに影響はありますか?
はい、ソースデータベースから完全データを同期すると、ソース ApsaraDB RDS データベースのクエリパフォーマンスに影響します。ソースデータベースのパフォーマンスへの影響を軽減するには、次のいずれかの方法を使用します。
ソースインスタンスの仕様をアップグレードします。
最初に DTS タスクを一時停止し、ソースデータベースの負荷が減少した後にタスクを再開します。
DTS タスクの同期または移行レートを減らします。移行レートの調整方法の詳細については、「完全データ移行の速度制限を有効にする」をご参照ください。
DTS は MySQL データベースから ApsaraDB for ClickHouse クラスターへのデータ同期をサポートしていますか?
DTS は、MySQL データベースから ApsaraDB for ClickHouse クラスターへのデータ同期機能を廃止しました。 MySQL データベースから ApsaraDB for ClickHouse クラスターにデータを同期するために DTS インスタンスを既に購入済みの場合、その DTS インスタンスは影響を受けません。 この機能の詳細については、DTS のドキュメントにある「ApsaraDB RDS for MySQL インスタンスから ApsaraDB for ClickHouse クラスターにデータを同期する」をご参照ください。
PolarDB-X 1.0 データベースをソースデータベースとするデータ同期インスタンスのレイテンシが表示されないのはなぜですか?
ソースデータベースが PolarDB-X 1.0 データベースである DTS タスクは、分散タスクです。 DTS によって監視されるメトリックは、サブタスクにのみ存在します。そのため、ソースデータベースが PolarDB-X 1.0 データベースである DTS インスタンスのレイテンシは表示されません。インスタンス ID をクリックしてインスタンス詳細ページに移動し、[タスク管理] ページの [サブタスクの詳細] タブでインスタンスのレイテンシを表示できます。
複数テーブルのマージタスクでエラー DTS-071001 が報告されるのはなぜですか?
このエラーは、複数テーブルのマージタスクの実行中に、ソースデータベースでオンライン DDL 操作を実行したために発生します。 ソースデータベース内のテーブルスキーマなどのオブジェクトを変更しても、ターゲットデータベース内の対応するオブジェクトは変更されません。
以前のバージョンの DTS コンソールでタスクを構成する際にホワイトリストを構成できない場合はどうすればよいですか?
新しいバージョンの DTS コンソールでタスクを構成できます。
データ同期タスクがソースデータベースでの DDL 操作の実行によって失敗した場合はどうすればよいですか?
ターゲットデータベースで同じ DDL 操作を実行し、タスクを再起動できます。 データ同期中に pt-online-schema-change などのツールを使用してオブジェクトに対して DDL 操作を実行しないことをお勧めします。 そうしないと、データ同期が失敗する可能性があります。 DTS のみを使用してターゲットデータベースにデータを書き込む場合は、データ管理 (DMS) を使用して、データ同期中にソーステーブルに対してオンライン DDL 操作を実行できます。 または、DDL 操作の影響を受けるテーブルを削除することもできます。 同期するオブジェクトを削除する方法の詳細については、「データ同期タスクからオブジェクトを削除する」をご参照ください。
データ同期タスクが、ターゲットデータベースで DDL 操作が実行されたために失敗した場合はどうすればよいですか?
増分データ同期中にターゲットデータベースまたはターゲットデータベースのテーブルが削除されると、データ同期タスクは失敗します。この場合、次のいずれかの方法を使用してタスクを再開できます。
方法 1: タスクを再構成します。タスクの失敗の原因となったデータベースまたはテーブルを同期対象のオブジェクトとして選択しないでください。
方法 2: 同期するオブジェクトを変更します。データ同期タスクから、タスクの失敗の原因となったデータベースまたはテーブルを削除します。詳細については、「データ同期タスクからオブジェクトを削除する」をご参照ください。
リリースされたデータ同期タスクを再開できますか。タスクを再構成した場合、データ整合性は確保されますか。
データ同期タスクは、リリースされた後に再開することはできません。データ同期タスクを再構成する際に、[フルデータ同期] を選択しないと、タスクがリリースされた後、新しいタスクが開始される前に生成された増分データはターゲットデータベースに同期されません。この場合、データ整合性は確保されません。ビジネスで高精度が求められる場合は、同期されたデータをターゲットデータベースから削除し、データ同期タスクを再構成できます。タスクを再構成する際は、[タスクステージ] パラメーターで [スキーマ同期] と [フルデータ同期] を選択します。デフォルトでは、[増分データ同期] が選択されています。
完全同期タスクの進捗が長時間変化しない場合はどうすればよいですか?
同期するテーブルにプライマリキーが含まれていない場合、完全同期は非常に遅くなります。 データ同期タスクを開始する前に、ソースデータベースから同期する各テーブルにプライマリキーを定義することをお勧めします。
ソーステーブルと同じ名前のターゲットテーブルに存在しないデータのみを同期できますか?
はい。ソーステーブルと同じ名前のターゲットテーブルに存在しないデータのみを同期できます。DTS タスクを構成する際に、[競合するテーブルの処理モード] パラメーターを [エラーを無視して続行] に設定できます。完全同期中に、ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードのプライマリキー値がターゲットデータベースの既存のデータレコードと同じである場合、このレコードはターゲットデータベースに同期されません。
Alibaba Cloud アカウント間でデータ同期タスクを構成するにはどうすればよいですか?
ソースインスタンスが属する Alibaba Cloud アカウントを使用して RAM (Resource Access Management) 権限付与を構成し、次に宛先インスタンスが属する Alibaba Cloud アカウントを使用して DTS タスクを構成する必要があります。詳細については、「Alibaba Cloud アカウント間で DTS タスクを構成する」をご参照ください。
DMS 論理データベースインスタンスを選択できない場合はどうすればよいですか?
論理データベースインスタンスが存在するリージョンを選択していることを確認してください。 問題が解決しない場合は、インスタンスが 1 つしか存在せず、デフォルトでそのインスタンスが選択されている可能性があります。 この場合は、他のパラメーターの設定を続行してください。
ソースデータベースが SQL Server データベースの場合、データ同期タスクで関数を同期できますか?
いいえ、ソースデータベースが SQL Server データベースの場合、データ同期タスクで関数を同期することはできません。同期するオブジェクトとしてテーブルを選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトもターゲットデータベースに同期しません。
データ同期タスクでエラーが報告された場合はどうすればよいですか?
一般的なエラーとトラブルシューティングを参照して、エラーメッセージに基づいて詳細なソリューションを確認できます。
データ同期タスクのホットスポットテーブルマージ機能を有効にするにはどうすればよいですか?
[trans.hot.merge.enable] パラメーターを [true] に設定できます。詳細については、「DTS インスタンスのパラメーターを変更する」をご参照ください。
トリガーを含むソースデータベースのデータ同期タスクを構成するにはどうすればよいですか?
同期対象のオブジェクトとしてデータベースを選択し、そのデータベースにテーブルを更新するトリガーが含まれている場合、データの不整合が発生する可能性があります。トリガーを含むソースデータベースのデータ同期タスクを構成する方法の詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクを構成する」をご参照ください。
sys データベースなどのシステムデータベースを同期できますか?
いいえ、sys データベースなどのシステムデータベースは同期できません。
MongoDB インスタンスの admin データベースまたは local データベースとのデータ同期は可能ですか?
いいえ、MongoDB インスタンスの admin データベースまたは local データベースとのデータ同期はできません。
逆方向の双方向同期タスクはいつ設定できますか?
転送方向の増分同期タスクが遅延していない場合にのみ、逆方向の双方向同期タスクを設定できます。
データ同期タスクでソース PolarDB-X 1.0 インスタンスのノードをスケールアウトまたはスケールインできますか?
いいえ、DTS タスクでソース PolarDB-X 1.0 インスタンスのノードをスケールアウトまたはスケールインすることはできません。ソース PolarDB-X 1.0 インスタンスのノードがスケールアウトまたはスケールインされた場合は、タスクを再構成する必要があります。
DTS から Kafka に同期されるデータは一意ですか?
いいえ、DTS は Kafka に同期または移行されるデータの一意性を保証できません。これは、Kafka に書き込まれるデータが追加されるためであり、DTS タスクが再起動された場合、またはソースデータベースのログが繰り返しプルされた場合に重複データが存在する可能性があるためです。DTS はデータのべき等性を保証します。データは書き込まれた時間に基づいて順番にソートされ、重複データの最新の値が後ろに追加されます。
ApsaraDB RDS for MySQL インスタンスから AnalyticDB for MySQL クラスタにデータを同期できますか?
はい、ApsaraDB RDS for MySQL インスタンスから AnalyticDB for MySQL クラスタにデータを同期できます。詳細については、「ApsaraDB RDS for MySQL インスタンスから AnalyticDB for MySQL V3.0 クラスタにデータを同期する」をご参照ください。
Redis インスタンス間でデータを同期するときに、完全データ同期が表示されないのはなぜですか?
[増分データ同期] が表示されます。 Redis インスタンス間のデータ同期にこのオプションを選択すると、完全データ同期と増分データ同期の両方を実行します。
完全同期をスキップできますか?
はい、完全同期をスキップできます。 完全同期をスキップした後、増分同期は継続されます。 ただし、エラーが発生する可能性があります。 完全同期をスキップしないことをお勧めします。
指定した時間に自動的に開始するデータ同期タスクを設定できますか?
いいえ、指定した時間に自動的に開始するデータ同期タスクを設定することはできません。
テーブル内の断片化された領域は、同期中に同期されますか?
いいえ、テーブル内の断片化された領域は同期されません。
MySQL 8.0 インスタンスから MySQL 5.6 インスタンスにデータを同期する際に注意すべき事項は何ですか?
データ同期タスクを開始する前に、MySQL 5.6 インスタンスにデータベースを作成する必要があります。 互換性を確保するために、宛先インスタンスのバージョンは、ソースデータベースのバージョンと同じかそれ以上である必要があります。 宛先インスタンスのバージョンがソースデータベースのバージョンよりも古い場合、データベースの互換性の問題が発生する可能性があります。
ソースデータベースからターゲットデータベースにアカウントを同期できますか?
ApsaraDB RDS for MySQL インスタンス間でのみアカウントを同期できます。
Alibaba Cloud アカウント間で双方向同期タスクを設定できますか?
Alibaba Cloud アカウント間で双方向同期タスクを設定できるのは、ApsaraDB RDS for MySQL インスタンス間、ApsaraDB RDS for MySQL クラスター間、Tair (Enterprise Edition) インスタンス間、ApsaraDB for MongoDB レプリカセットインスタンス間、または ApsaraDB for MongoDB シャードクラスターインスタンス間のみです。
Alibaba Cloud アカウント間でデータを複製 設定項目がないタスクの場合は、CEN を使用して双方向同期を実装できます。詳細については、「CEN を使用してオンプレミスデータベースを DTS に接続する」の「Alibaba Cloud アカウントまたはリージョンをまたいでデータベースを DTS に接続する」セクションをご参照ください。
宛先データベースが ApsaraMQ for Kafka インスタンスの場合、パラメータをどのように設定しますか?
ビジネス要件に基づいてパラメータを設定します。特殊なパラメータの設定方法の詳細については、「DTS タスクの宛先インスタンスが ApsaraMQ for Kafka インスタンスの場合のパラメータ設定」をご参照ください。
データ移行に関するよくある質問
データ移行タスクの完了後、移行されたデータはソースデータベースに存在しますか?
はい、データ移行タスクの完了後、移行されたデータはソースデータベースに存在します。DTS は、データ移行および同期の際に、ソースデータベースからターゲットデータベースにデータをコピーします。ソースデータベースのデータは影響を受けません。
DTS はどのような種類のデータベースのデータ移行をサポートしていますか?
DTS は、RDBMS データベース、NoSQL データベース、OLAP データベースなど、さまざまなデータソース間のデータ移行をサポートしています。詳細については、「データ移行シナリオの概要」をご参照ください。
DTS はデータ移行モードでどのように動作しますか?
DTS がデータ移行モードでどのように動作するかの詳細については、「アーキテクチャ」をご参照ください。
データ移行タスクで移行されるオブジェクトを変更できますか?
いいえ、データ移行タスクで移行されるオブジェクトを変更することはできません。
データ移行タスクにテーブルを追加できますか?
いいえ、データ移行タスクにテーブルを追加することはできません。
実行中のデータ移行タスクで、テーブルやフィールドなどのオブジェクトを変更するにはどうすればよいですか?
DTS では、データ移行タスクで移行されるオブジェクトを変更することはできません。
データ移行タスクを一定期間一時停止した後に再起動すると、データの不整合が発生しますか?
データ移行タスクの一時停止中にソースデータベースが変更された場合、ソースデータベースとターゲットデータベースのデータに不整合が生じる可能性があります。 データ移行タスクを再起動し、増分データをターゲットデータベースに移行すると、ソースデータベースとターゲットデータベースのデータは一致します。
データ移行タスクをデータ同期タスクに変換できますか?
いいえ、異なるタイプのタスクを相互に変換することはできません。
スキーマを移行せずにデータのみを移行できますか?
はい。スキーマを移行せずにデータのみを移行できます。そのためには、データ移行タスクを構成する際に [スキーマ移行] を選択しないでください。
データ移行タスクにおいて、ソースデータベースとターゲットデータベース間でデータの不整合が発生する可能性のある原因は何ですか?
データの不整合は、次の原因によって発生する可能性があります。
タスクの設定時にターゲットデータベースのデータをクリアせず、ターゲットデータベースに既存データが保存されている。
タスクの設定時に増分データ移行モジュールのみを選択し、完全なデータ移行モジュールを選択していない。
タスクの設定時に完全なデータ移行モジュールのみを選択し、増分データ移行モジュールを選択していない。 タスク完了後にソースデータベースのデータが変更される。
DTS 以外のツールを使用してターゲットデータベースにデータを書き込む。
増分書き込みの待機時間のため、増分データがターゲットデータベースに書き込まれていない。
データ移行タスクで、ターゲットデータベースに移行されたオブジェクトの名前を変更できますか?
はい。データ移行タスクを構成する際に、ターゲットデータベースに移行されたオブジェクトの名前を変更できます。ターゲットデータベースに移行されたオブジェクトの名前を変更する方法の詳細については、「オブジェクト名マッピング」をご参照ください。
単一のデータベースインスタンス内でデータを移行できますか?
はい。単一のデータベースインスタンス内でデータを移行できます。詳細については、「異なる名前のデータベース間でデータを同期または移行する」をご参照ください。
DML 操作または DDL 操作を移行できますか?
はい、リレーショナルデータベース間で DML 操作と DDL 操作を移行できます。サポートされている DML 操作は、INSERT、UPDATE、および DELETE です。サポートされている DDL 操作は、CREATE、DROP、ALTER、RENAME、および TRUNCATE です。
サポートされている DML 操作と DDL 操作は、シナリオによって異なります。詳細については、「データ移行シナリオの概要」をご参照ください。
読み取り専用のデータベースインスタンスをデータ移行タスクのソースインスタンスとして使用できますか?
データ移行タスクで増分データを移行する必要がない場合は、読み取り専用のデータベースインスタンスをソースインスタンスとして使用できます。 それ以外の場合は、次の項目に注意してください。
読み取り専用のデータベースインスタンスがトランザクションログを記録する場合 (ApsaraDB RDS for MySQL 5.7 または 8.0 のインスタンスなど)、ソースインスタンスとして使用できます。
読み取り専用のデータベースインスタンスがトランザクションログを記録しない場合 (ApsaraDB RDS for MySQL 5.6 のインスタンスなど)、ソースインスタンスとして使用できません。
データベースシャードまたはテーブルパーティションを移行できますか?
はい。データベースシャードとテーブルパーティションを移行できます。たとえば、MySQL データベースまたは PolarDB for MySQL クラスタから AnalyticDB for MySQL クラスタにデータベースシャードとテーブルパーティションを移行できます。これにより、複数のテーブルをマージできます。
データ移行タスクでフィールドまたはデータをフィルタリングできますか?
はい。マッピング機能を使用して、データ移行タスクで移行したくない列をフィルタリングできます。 移行するデータをフィルタリングするために SQL WHERE 条件を指定できます。 詳細については、「オブジェクト名をマッピングする」および「移行するデータをフィルタリングする」をご参照ください。
データ移行完了後、ターゲットデータベースのデータサイズがソースデータベースのデータサイズよりも小さいのはなぜですか。
移行するデータがフィルタリングされている場合、またはソースデータベースに多数のテーブルパーティションがある場合、データ移行完了後のターゲットデータベースのデータサイズはソースデータベースのデータサイズよりも小さくなる可能性があります。
データ移行タスクで移行されたオブジェクトの数が、オブジェクトの総数を超えるのはなぜですか?
表示されているオブジェクトの総数は推定値です。データ移行タスクが完了すると、総数は正確な値に調整されます。
データ移行中に、ターゲットデータベースに increment_trx テーブルが作成されるのはなぜですか?
increment_trx テーブルは、DTS によってターゲットデータベースに作成されるオフセットテーブルです。このテーブルには増分データ移行のオフセットが記録され、タスクが異常終了して再起動された場合に再開可能なアップロードの問題を解決するために使用できます。データ移行中は increment_trx テーブルを削除しないでください。削除すると、データ移行が失敗する可能性があります。
完全なデータ移行フェーズでは、データ移行タスクで再開可能なアップロードはサポートされていますか?
はい。完全なデータ移行フェーズで中断された時点からデータ移行タスクを再開できます。 完全なデータ移行フェーズで一定期間停止した後にデータ移行タスクを再開すると、移行が完了したオフセットからデータの移行が続行されます。最初からデータ移行を開始する必要はありません。
サードパーティのデータベースインスタンスからAlibaba Cloudにデータを移行するにはどうすればよいですか?
Alibaba Cloud以外が提供するデータベースインスタンスからAlibaba Cloudにデータを移行する方法の詳細については、「サードパーティクラウドからAlibaba Cloudへのデータ移行」をご参照ください。
オンプレミスの Oracle データベースから PolarDB for Oracle クラスタにデータを移行するにはどうすればよいですか?
オンプレミスの Oracle データベースから PolarDB for Oracle クラスタにデータを移行する方法の詳細については、「自己管理 Oracle データベースから PolarDB for PostgreSQL (Oracle 互換) クラスタにデータを移行する」をご参照ください。
完全なデータ移行フェーズで、データ移行タスクが完了する前に一時停止できますか?
はい。完全なデータ移行フェーズで、データ移行タスクが完了する前に一時停止できます。
ApsaraDB RDS for MySQL インスタンスから自己管理 MySQL データベースに部分的なデータを移行するにはどうすればよいですか?
データ移行タスクを構成する際に、ソースオブジェクト セクションで移行するオブジェクトを選択するか、ビジネス要件に基づいて [選択済みオブジェクト] セクションでオブジェクトをフィルタリングできます。 MySQL データベース間でデータを移行する操作は似ています。詳細については、「自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスにデータを移行する」をご参照ください。
同じ Alibaba Cloud アカウント内の ApsaraDB RDS インスタンス間でデータを移行するにはどうすればよいですか?
DTS は、ApsaraDB RDS インスタンス間のデータ移行と同期をサポートしています。詳細については、「データ移行シナリオの概要」をご参照ください。
データ移行タスクの開始後、ソースデータベースの IOPS アラートが報告されます。 この場合、ソースデータベースの安定性をどのように確保すればよいですか?
DTS タスクの実行中に、ソースデータベースの負荷が高い場合、次のいずれかの方法を使用して、DTS タスクがソースデータベースに与える影響を軽減できます。
ソースインスタンスの仕様をアップグレードします。
最初に DTS タスクを一時停止し、ソースデータベースの負荷が減少した後にタスクを再開します。
DTS タスクの同期または移行レートを減らします。 移行レートの調整方法の詳細については、「完全なデータ移行の速度制限を有効にする」をご参照ください。
データ移行タスクで test という名前のデータベースを選択できないのはなぜですか?
システムデータベースは移行できません。 自己管理データベースを移行対象として選択できます。
PolarDB-X 1.0 データベースをソースデータベースとするデータ移行インスタンスのレイテンシが表示されないのはなぜですか?
ソースデータベースが PolarDB-X 1.0 データベースである DTS タスクは、分散タスクです。 DTS によって監視されるメトリックは、サブタスクにのみ存在します。そのため、ソースデータベースが PolarDB-X 1.0 データベースである DTS インスタンスのレイテンシは表示されません。インスタンス ID をクリックしてインスタンス詳細ページに移動し、[タスク管理] ページの [サブタスクの詳細] タブでインスタンスのレイテンシを表示できます。
MongoDB インスタンスからデータを移行できないのはなぜですか?
これは、移行対象のデータベースが local データベースまたは admin データベースであるためです。 MongoDB インスタンスでは、local データベースまたは admin データベースとの間でデータの移行を実行できません。
複数テーブルのマージタスクでエラー DTS-071001 が報告されるのはなぜですか?
このエラーは、複数テーブルのマージタスクの実行中に、ソースデータベースでオンライン DDL 操作を実行したために発生します。 ソースデータベース内のテーブルスキーマなどのオブジェクトを変更しても、ターゲットデータベース内の対応するオブジェクトは変更されません。
以前のバージョンの DTS コンソールでタスクを構成するときにホワイトリストを構成できない場合はどうすればよいですか?
新しいバージョンの DTS コンソールでタスクを構成できます。
データ移行タスクがソースデータベースでの DDL 操作の実行が原因で失敗した場合はどうすればよいですか?
ターゲットデータベースで同じ DDL 操作を実行し、タスクを再起動できます。pt-online-schema-change などのツールを使用して、データ移行中にオブジェクトに対してオンライン DDL 操作を実行しないことをお勧めします。そうしないと、データ移行が失敗する可能性があります。DTS のみを使用してターゲットデータベースにデータを書き込む場合は、DMS を使用してデータ移行中にオンライン DDL 操作を実行できます。
増分データ移行中に DDL 操作がターゲットデータベースで実行されたためにデータ移行タスクが失敗した場合はどうすればよいですか?
増分データ移行中にターゲットデータベースまたはターゲットデータベースのテーブルが削除されると、データ移行タスクは失敗します。タスクを再構成し、タスクの失敗の原因となったデータベースまたはテーブルを移行対象オブジェクトとして選択しないようにすることができます。
リリースされたデータ移行タスクを再開できますか?タスクを再構成した場合、データ整合性は確保されますか?
データ移行タスクは、リリースされた後に再開することはできません。データ移行タスクを再構成する際に、[フルデータ移行] を選択しない場合、タスクがリリースされた後、新しいタスクが開始される前に生成された増分データは、ターゲットデータベースに移行されません。この場合、データ整合性は確保されません。ビジネスで高精度が求められる場合は、移行されたデータをターゲットデータベースから削除し、データ移行タスクを再構成できます。タスクを再構成する際は、[タスクステージ] パラメーターで [スキーマ移行]、[増分データ移行]、および [フルデータ移行] を選択します。
完全なデータ移行タスクの進捗が長時間変化しない場合はどうすればよいですか?
移行するテーブルにプライマリキーが含まれていない場合、完全なデータ移行は非常に遅くなります。 データ移行タスクを開始する前に、ソースデータベースから移行する各テーブルにプライマリキーを定義することをお勧めします。
同じ名前のソーステーブルから、宛先テーブルに存在しないデータのみを移行できますか?
はい、同名のソーステーブルから、ターゲットテーブルに存在しないデータのみを移行できます。 DTS タスクを構成する際に、[競合するテーブルの処理モード] パラメーターを [エラーを無視して続行] に設定できます。完全なデータ移行中に、ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードのプライマリキー値がターゲットデータベースの既存のデータレコードと同じである場合、このレコードはターゲットデータベースに移行されません。
Alibaba Cloud アカウント間でデータ移行タスクを構成するにはどうすればよいですか?
ソースインスタンスが属する Alibaba Cloud アカウントを使用して RAM (Resource Access Management) 権限付与を構成し、次に宛先インスタンスが属する Alibaba Cloud アカウントを使用して DTS タスクを構成する必要があります。詳細については、「Alibaba Cloud アカウント間で DTS タスクを構成する」をご参照ください。
オンプレミスデータベースからデータを移行するために、オンプレミスデータベースに接続するにはどうすればよいですか?
データ移行タスクを設定する際に、オンプレミスデータベースの [アクセス方法] パラメーターを [パブリック IP アドレス] に設定できます。オンプレミスデータベースからデータを移行する方法の詳細については、「自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスにデータを移行する」をご参照ください。
データ移行タスクが失敗し、エラー DTS-31008 が報告された場合はどうすればよいですか?
失敗したタスクは DTS コンソールで見つけることができ、[原因の表示] をクリックして詳細を表示できます。詳細な解決策については、「一般的なエラーとトラブルシューティング」をご参照ください。
Express Connect 経由の自己管理データベースへの接続が失敗した場合はどうすればよいですか?
必要なリージョンの Express Connect 経由の接続用の DTS サーバーの CIDR ブロックが、自己管理データベースの IP アドレス ホワイトリストに追加されているかどうかを確認します。 自己管理データベースのホワイトリストに追加する必要がある DTS サーバーの CIDR ブロックの詳細については、「ユーザー作成データベースの DTS IP 範囲をホワイトリストに登録する」をご参照ください。
ソースデータベースが SQL Server データベースの場合、データ移行タスクで関数を移行できますか?
いいえ、ソースデータベースが SQL Server データベースの場合は、データ移行タスクで関数を移行することはできません。 移行対象のオブジェクトとしてテーブルを選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトもターゲットデータベースに移行しません。
完全なデータ移行タスクが低速で実行される場合はどうすればよいですか?
これは、大量のデータが移行されるためです。タスクが完了するまで待機してください。 DTS コンソールにログインし、インスタンス ID をクリックしてインスタンス詳細ページに移動できます。 [タスク管理] ページで、[完全なデータ移行] タブをクリックして、完全なデータ移行タスクの進捗状況を表示します。
スキーマ移行でエラーが報告された場合はどうすればよいですか?
DTS コンソールにログインし、インスタンス ID をクリックしてインスタンス詳細ページに移動します。[タスク管理] ページで、[スキーマ移行] タブをクリックして詳細なエラーメッセージを表示し、エラーのトラブルシューティングを行います。一般的なエラーのトラブルシューティング方法の詳細については、「一般的なエラーとトラブルシューティング」をご参照ください。
スキーマ移行または完全なデータ移行は課金されますか?
いいえ、スキーマ移行または完全なデータ移行は課金されません。詳細については、「課金対象項目」をご参照ください。
Redis インスタンス間でデータを移行する場合、宛先インスタンスの ZSET タイプのデータは上書きされますか?
はい、Redis インスタンス間でデータを移行する場合、宛先データベースの ZSET タイプのデータは上書きされます。 ソースデータベースと宛先データベースに同じ ZSET タイプのキーがある場合、DTS は宛先データベースから ZSET キーのデータを削除し、ZADD コマンドを実行してソースデータベースから宛先データベースに ZSET キーのすべてのメンバーを移行します。
完全なデータ移行はソースデータベースにどのような影響を与えますか?
完全なデータ移行中、DTS はデータをスライスに分割し、スライス範囲内でデータの読み取りと書き込みを行います。データのスライス中は、ソースデータベースの IOPS が増加します。DTS がスライス範囲内でデータを読み取ると、ソースデータベースの IOPS、CachePool、およびアウトバウンド帯域幅が影響を受けます。DTS の実務経験に基づくと、これらの影響は無視できます。
データ移行タスクでソース PolarDB-X 1.0 インスタンスのノードをスケールアウトまたはスケールインできますか?
いいえ、DTS タスクでソース PolarDB-X 1.0 インスタンスのノードをスケールアウトまたはスケールインすることはできません。ソース PolarDB-X 1.0 インスタンスのノードがスケールアウトまたはスケールインされた場合は、タスクを再構成する必要があります。
DTS から Kafka に移行されたデータは一意ですか?
いいえ、DTS は Kafka に同期または移行されたデータが一意であることを保証できません。これは、Kafka に書き込まれるデータが追加されるためであり、DTS タスクが再起動された場合、またはソースデータベースのログが繰り返しプルされた場合に、重複データが存在する可能性があるためです。DTS はデータのべき等性を保証します。データは書き込まれた時間を基準にソートされ、重複データの最新の値が後ろに追加されます。
完全なデータ移行タスクを設定してから増分データ移行タスクを設定すると、データの不整合が発生しますか?
はい、データの不整合が発生する可能性があります。増分データ移行タスクを設定した場合、データは増分データ移行タスクが開始された後にのみ移行されます。タスクが開始される前は、ソースインスタンスで生成された増分データは宛先インスタンスに同期されません。サービス中断なしでデータを移行する必要がある場合は、移行タスクを設定するときにスキーマ移行、完全なデータ移行、および増分データ移行を選択します。
増分データ移行タスクを構成するときに、スキーマ移行を選択する必要がありますか?
スキーマ移行を選択すると、DTS は、データが移行される前に、移行されるオブジェクトの定義 (テーブル A の定義など) を宛先インスタンスに移行します。増分データ移行を実行するには、スキーマ移行、フルデータ移行、および増分データ移行を選択することをお勧めします。 これにより、データ移行中のデータ整合性が確保されます。
自己管理データベースからRDS インスタンスにデータを移行するときに、移行先 RDS インスタンスのストレージ容量がソースデータベースのストレージ容量よりも大きいのはなぜですか?
DTS は論理移行を使用します。 DTS は、移行するデータを SQL 文にカプセル化し、SQL 文を移行先の RDS インスタンスに移行します。 この場合、バイナリログは、移行先の RDS インスタンスで生成されます。 そのため、移行中、移行先 RDS インスタンスのストレージ容量がソースデータベースのストレージ容量よりも大きくなる可能性があります。
VPC 内の ApsaraDB for MongoDB インスタンスを、データ移行のソースデータベースとして選択できますか?
はい。DTS では、VPC 内の ApsaraDB for MongoDB インスタンスをソースデータベースとして選択してデータを移行できます。
データ移行タスクの実行中にソースデータベースのデータを変更すると、どのような影響がありますか?
データ移行タスクでスキーマ移行、フルデータ移行、および増分データ移行が選択されている場合、DTS はソースデータベースからのすべてのデータ変更をターゲットデータベースに移行します。
完了したデータ移行タスクをリリースした場合、ソースデータベースは影響を受けますか?
いいえ、ソースデータベースは影響を受けません。 データ移行タスクの状態が [完了] に変更された後、データ移行タスクをリリースできます。
DTS は ApsaraDB for MongoDB インスタンスの増分データ移行をサポートしていますか?
はい、DTS は ApsaraDB for MongoDB インスタンスの増分データ移行をサポートしています。詳細については、「データ移行シナリオの概要」をご参照ください。
ソースインスタンスが RDS インスタンスのデータ移行タスクと、パブリック IP アドレス経由で接続された自己管理データベースインスタンスがソースインスタンスのデータ移行タスクの違いは何ですか?
ソースインスタンスとして RDS インスタンスを選択すると、データ移行タスクは、ドメインネームシステム ( DNS ) の変更やネットワークタイプの変更など、変更に適応できます。 これにより、インスタンスの信頼性が確保されます。
VPC 内の ECS インスタンスでホストされている自己管理データベースから RDS インスタンスにデータを移行できますか?
はい、VPC 内の ECS インスタンスでホストされている自己管理データベースを RDS インスタンスに移行できます。
ECS インスタンスと移行先の RDS インスタンスが同じリージョンにある場合、DTS は VPC 内の ECS インスタンス上の自己管理データベースに直接アクセスできます。
ECS インスタンスと移行先の RDS インスタンスが異なるリージョンにある場合、ECS インスタンスは Elastic IP アドレス (EIP) に関連付けられている必要があります。この場合、DTS は ECS インスタンスの EIP を使用して、ECS インスタンスでホストされているデータベースに自動的にアクセスします。
データ移行中に DTS によってテーブルはロックされますか? ソースデータベースに影響はありますか?
DTS は、完全なデータ移行または増分データ移行中にソースデータベースのテーブルをロックしません。完全なデータ移行および増分データ移行中は、ソースデータベースのテーブルの読み取りと書き込みが可能です。
DTS は RDS インスタンスからデータを移行するときに、プライマリ RDS データベースまたはセカンダリ RDS データベースのどちらからデータを取得しますか?
DTS は RDS インスタンスからデータを移行するときに、プライマリ RDS データベースからデータをプルします。
指定した時間に自動的に開始するデータ移行タスクを設定できますか?
いいえ、指定した時間に自動的に開始するデータ移行タスクを設定することはできません。
VPC 内の RDS インスタンスからデータを移行できますか?
はい、VPC 内の RDS インスタンスからデータを移行できます。データ移行タスクを構成する際に、RDS インスタンスの ID を指定します。
同じ Alibaba Cloud アカウント内または Alibaba Cloud アカウント間でデータ移行または同期を実行する場合、DTS は内部ネットワークまたはインターネット経由で ECS インスタンスまたは RDS インスタンスにアクセスしますか。ネットワークトラフィックの料金は発生しますか。
データ移行または同期が同じ Alibaba Cloud アカウント内または Alibaba Cloud アカウント間で実行されるかどうかは、ネットワークタイプには影響しません。ネットワークトラフィックの料金が発生するかどうかは、DTS インスタンスタイプによって決まります。
ネットワークタイプ
データ移行: 同じリージョン内でデータを移行する場合、DTS は内部ネットワーク経由で ECS インスタンスまたは RDS インスタンスにアクセスします。リージョン間でデータを移行する場合、DTS はインターネット経由でソース ECS インスタンスまたは RDS インスタンスにアクセスし、内部ネットワーク経由で宛先 RDS インスタンスにアクセスします。
データ同期: DTS は内部ネットワーク経由で ECS インスタンスまたは RDS インスタンスにアクセスします。
トラフィック料金
データ移行: インターネット経由のアウトバウンドトラフィックに対して課金されます。他のタイプの DTS インスタンスのインターネット経由のトラフィックに対しては課金されません。インターネット経由のアウトバウンドトラフィックの料金は、宛先インスタンスの アクセス方法 パラメーターが パブリック IP アドレス に設定されている場合にのみ発生します。
データ同期: インターネット経由のトラフィックに対しては課金されません。
DTS を使用してデータを移行した後、ソースデータベースのデータは削除されますか?
いいえ、ソースデータベースのデータは削除されません。移行中、DTS はソースデータベースのデータをターゲットデータベースにコピーします。これはソースデータベースのデータには影響しません。
RDS インスタンス間で DTS を使用してデータを移行する場合、ターゲットデータベースの名前を指定できますか?
はい、完全なデータ移行をスキップできます。移行中に、DTS が提供するデータベース名マッピング機能を使用して、ターゲットデータベースの名前を指定できます。詳細については、「異なる名前のデータベース間でデータを同期または移行する」をご参照ください。
データ移行タスクで DTS がソース ECS インスタンスに接続できない場合はどうすればよいですか?
ECS インスタンスのパブリック IP アドレスが使用できない可能性があります。 ECS インスタンスに Elastic IP アドレス (EIP) を関連付けて、再試行してください。 EIP の関連付け方法の詳細については、「EIP」をご参照ください。
Redis インスタンス間で DTS がデータを移行するときに、完全なデータ同期が表示されないのはなぜですか?
[増分データ移行] が表示されます。 Redis インスタンス間のデータ移行でこのオプションを選択すると、完全なデータ移行と増分データ移行の両方を実行します。
完全なデータ移行をスキップできますか?
はい、完全なデータ移行をスキップできます。 完全なデータ移行をスキップした後、増分データ移行は続行されます。 ただし、エラーが発生する可能性があります。 完全なデータ移行をスキップしないことをお勧めします。
クラスタ版の Redis インスタンスをパブリック IP アドレス経由で DTS に接続できますか?
いいえ、スタンドアロン版の Redis インスタンスのみをパブリック IP アドレス経由で DTS に接続できます。
MySQL 8.0 インスタンスから MySQL 5.6 インスタンスにデータを移行する際に注意すべき事項は何ですか?
データ移行タスクを開始する前に、MySQL 5.6 インスタンスにデータベースを作成する必要があります。互換性を確保するために、ターゲットデータベースのバージョンがソースデータベースのバージョンと同じかそれ以上であることを確認してください。ターゲットデータベースのバージョンがソースデータベースのバージョンよりも古い場合、データベースの互換性の問題が発生する可能性があります。
ソースデータベースからターゲットデータベースにアカウントを移行できますか?
ApsaraDB RDS for MySQL インスタンス間でのみアカウントを移行できます。
宛先データベースが ApsaraMQ for Kafka インスタンスの場合、パラメーターをどのように構成すればよいですか?
ビジネス要件に基づいてパラメーターを構成します。特殊なパラメーターの構成方法の詳細については、「DTS タスクの宛先インスタンスが ApsaraMQ for Kafka インスタンスの場合のパラメーターの構成」をご参照ください。
スケジュールされた完全なデータ移行を設定するにはどうすればよいですか?
データ統合機能のスケジューリングポリシーを設定して、ソースデータベースからターゲットデータベースにスキーマデータと既存データを定期的に移行できます。詳細については、「ApsaraDB RDS for MySQL インスタンス間でデータ統合タスクを設定する」をご参照ください。
自己管理 SQL Server インスタンスのデータを、Elastic Compute Service (ECS) インスタンスにあるものから、オンプレミスサーバーにデプロイされた自己管理データベース SQL Server に移行できますか?
はい。オンプレミスサーバーにデプロイされた自己管理データベース SQL Server を Alibaba Cloud に接続できます。詳細については、「準備の概要」をご参照ください。
サードパーティのクラウドプラットフォームにデプロイされている PostgreSQL データベースからデータを移行できますか?
サードパーティのクラウドプラットフォームにデプロイされている PostgreSQL データベースのパブリックアクセスを有効にして、DTS サーバーからのアクセスを受け入れるように設定すれば、DTS を使用してデータを移行できます。
PostgreSQL データベースのバージョンが V10.0 より前の場合、増分データ移行はサポートされていません。
変更追跡に関するよくある質問
変更追跡モードでの DTS の動作
変更追跡モードでの DTS の動作の詳細については、「アーキテクチャ」をご参照ください。
変更追跡インスタンスの有効期限が切れた後、コンシューマーグループは削除されますか?
変更追跡インスタンスの有効期限が切れた後、関連するコンシューマーグループは 7 日間保持されます。有効期限切れから 7 日以内にインスタンスが更新されない場合、インスタンスは解放され、関連するコンシューマーグループも削除されます。
読み取り専用データベースインスタンスを、変更追跡タスクのソースインスタンスとして使用できますか?
次の点に注意してください。
読み取り専用データベースインスタンスがトランザクションログを記録する場合 (ApsaraDB RDS for MySQL 5.7 または 8.0 のインスタンスなど)、ソースインスタンスとして使用できます。
読み取り専用データベースインスタンスがトランザクションログを記録しない場合 (ApsaraDB RDS for MySQL 5.6 のインスタンスなど)、ソースインスタンスとして使用できません。
追跡データをどのように使用しますか?
追跡データの使用に関する詳細については、「追跡データを使用する」をご参照ください。
変更追跡機能を使用してデータが転送された後、日付形式が変更されるのはなぜですか?
デフォルトでは、日付は YYYY:MM:DD 形式で保存されますが、DTS では YYYY-MM-DD 形式で表示されます。 そのため、すべての日付は、転送および書き込み時の元の形式に関係なく、DTS ではデフォルトの形式で保存および表示されます。
変更追跡タスクの問題をトラブルシューティングするにはどうすればよいですか?
変更追跡タスクの問題のトラブルシューティング方法の詳細については、「変更追跡タスクに関する問題のトラブルシューティング」をご参照ください。
SDK クライアントがデータダウンロード中に突然一時停止し、データの変更を追跡できない場合はどうすればよいですか?
SDK コードで ackAsConsumed メソッドが呼び出され、コンシューマオフセットがレポートされているかどうかを確認します。 ackAsConsumed メソッドが呼び出されてコンシューマオフセットがレポートされない場合、キャッシュ内のデータはクリアできません。 キャッシュがいっぱいになると、SDK はデータのプルに失敗します。 この場合、SDK は一時停止し、データの変更を追跡できません。
SDK クライアントの再起動後にデータの変更を追跡できない場合はどうすればよいですか?
SDK クライアントを起動する前に、追跡対象のすべてのデータ変更の時間範囲内にコンシューマオフセットを変更する必要があります。 詳細については、「SDK デモを使用して追跡データを消費する」の「コンシューマオフセットの管理」セクションをご参照ください。
クライアントのコンシューマオフセットを指定するにはどうすればよいですか?
[initCheckpoint] パラメーターを構成して、クライアントのコンシューマオフセットを指定できます。詳細については、「SDK デモを使用して追跡データを消費する」をご参照ください。
変更追跡タスクの数が制限を超えた場合、コンシューマオフセットをリセットするにはどうすればよいですか。
SDK クライアントを使用するモードに基づいて、対応するコードファイル(DTSConsumerAssignDemo.java ファイルまたは DTSConsumerSubscribeDemo.java ファイルなど)を開きます。
説明詳細については、「SDK デモを使用して追跡データを消費する」をご参照ください。
変更追跡ページの データ範囲 列で、変更追跡インスタンスでコンシューマオフセットをリセットできるデータ範囲を確認します。
ビジネス要件に基づいて新しいコンシューマオフセットを選択し、コンシューマオフセットを UNIX タイムスタンプに変換します。
コードファイルで initCheckpoint パラメーターを指定して、元のコンシューマオフセットを新しい UNIX タイムスタンプに置き換えます。
SDK クライアントを再起動します。
クライアントを使用して VPC 経由で変更追跡タスクにアクセスできない場合はどうすればよいですか?
これは、クライアントがホストされているサーバーが、変更追跡タスクの構成時に指定した VPC 内にない場合に発生する可能性があります。たとえば、クライアントの VPC が変更された場合などです。この場合、変更追跡タスクを再構成する必要があります。
コンソールに表示されるコンシューマオフセットの値が、データ範囲の最大値よりも大きいのはなぜですか?
変更追跡タスクのデータ範囲は 1 分ごとに更新されますが、コンシューマオフセットは 10 秒ごとに更新されます。そのため、リアルタイムでデータを使用する場合、コンシューマオフセットの値が変更追跡タスクのデータ範囲の最大値よりも大きくなる可能性があります。
DTS は SDK を使用して追跡されるデータが完全なトランザクションであることをどのように保証しますか?
提供されたコンシューマオフセットに基づいて、DTS はコンシューマオフセットに対応する完全なトランザクションを検索し、トランザクション全体の BEGIN 文からダウンストリームにデータを配信します。そのため、完全なトランザクションを受信できます。
追跡対象のデータが正しく消費されているかどうかを確認するにはどうすればよいですか?
データが正しく消費されている場合、DTS コンソールに表示されるコンシューマオフセットが転送されます。
変更追跡 SDK コードにおける usePublicIp=true は何を示していますか?
usePublicIp パラメーターを true に設定すると、SDK はインターネット経由で DTS 変更追跡タスクにアクセスします。
変更追跡タスク用に構成されたソース RDS インスタンスのプライマリデータベースとセカンダリデータベースが切り替えられた場合、またはプライマリデータベースが再起動された場合、サービスは影響を受けますか?
いいえ、サービスは影響を受けません。 ApsaraDB RDS for MySQL インスタンス、ApsaraDB RDS for PostgreSQL インスタンス、PolarDB for MySQL インスタンス、PolarDB for PostgreSQL インスタンス、またはストレージタイプが ApsaraDB RDS for MySQL の PolarDB-X 1.0 インスタンスでプライマリデータベースとセカンダリデータベースが切り替えられた場合、またはプライマリデータベースが再起動された場合、DTS は変更に適応します。
RDS はバイナリログをローカルサーバーに自動的にダウンロードできますか?
DTS を使用すると、RDS バイナリログをリアルタイムで追跡できます。 DTS の変更追跡機能を有効にして RDS バイナリログを追跡し、DTS SDK を使用してログをローカルサーバーにリアルタイムで同期できます。
変更追跡のリアルタイム増分データには、新しいデータのみが含まれますか、それとも新しいデータと変更されたデータの両方が含まれますか?
DTS によって追跡できる増分データには、追加、削除、および変更されたすべてのデータと、DDL 操作によって発生したスキーマの変更が含まれます。
SDK クライアントが再起動された後、コンシューマクライアントでメッセージが承認されていない場合、なぜ一部のメッセージが複数回受信されるのですか?
SDK に承認されていないメッセージが含まれている場合、サーバーはバッファー内のすべてのメッセージをプッシュします。 メッセージがプッシュされた後、SDK はメッセージを受信できなくなります。 この場合、サーバーに保存されているコンシューマオフセットは、承認されていないメッセージの前の最後のメッセージのチェックポイントです。 SDK クライアントが再起動すると、サーバーは、承認されていないメッセージの前の最後のメッセージのチェックポイントからデータをプッシュして、メッセージが失われないようにします。 そのため、SDK クライアントはこの時点で一部のメッセージを複数回受信します。
変更追跡のコンシューマオフセットはどのくらいの頻度で更新されますか? SDK クライアントを再起動すると、メッセージが複数回受信されるのはなぜですか?
変更追跡 SDK が各メッセージを消費した後、SDK は ackAsConsumed メソッドを呼び出してサーバーに確認応答を送信する必要があります。 サーバーが確認応答を受信すると、サーバーはメモリ内のコンシューマオフセットを更新し、10 秒ごとにコンシューマオフセットを永続化します。 最新の確認応答が永続化される前に SDK クライアントを再起動すると、サーバーは、確認応答が最後に永続化されたメッセージのコンシューマオフセットからメッセージをプッシュして、メッセージが失われないようにします。 この場合、SDK はメッセージを複数回受信します。
複数の RDS インスタンスのデータを変更追跡インスタンスを使用して追跡できますか?
いいえ、変更追跡インスタンスを使用して複数の RDS インスタンスのデータを追跡することはできません。変更追跡インスタンスは、単一の RDS インスタンスのデータのみを追跡できます。
変更追跡インスタンスでデータの不整合は発生しますか?
いいえ、変更追跡タスクはソースデータベースの変更のみを取得し、データの不整合は発生しません。コンシューマー クライアントによって消費されるデータが期待どおりでない場合は、問題のトラブルシューティングを行ってください。
追跡データを消費する際に「UserRecordGenerator: haven't receive records from generator for 5s」というエラーメッセージが表示された場合はどうすればよいですか?
UserRecordGenerator: haven't receive records from generator for 5s というエラーメッセージが追跡データの消費時に表示された場合は、コンシューマオフセットが増分データコレクションモジュールのオフセット範囲内にあること、およびコンシューマクライアントが想定どおりに実行されていることを確認してください。
Topic に複数のパーティションを作成できますか?
いいえ、Topic に複数のパーティションを作成することはできません。メッセージのグローバルな順序を保証するために、DTS では Topic ごとに 1 つのパーティションのみを作成できます。 Topic はパーティション 0 に割り当てられます。
変更追跡 SDK は GO プログラミング言語をサポートしていますか?
はい。サンプルコードの詳細については、「dts-subscribe-demo」をご参照ください。
変更追跡 SDK では Python プログラミング言語はサポートされていますか?
はい。サンプルコードの詳細については、「dts-subscribe-demo」をご参照ください。
flink-dts-connector を実行して、複数のスレッドを使用して追跡データを同時に使用できますか?
いいえ。
その他
データ同期または移行タスクの実行中にターゲットデータベースのデータを変更すると、どのような影響がありますか?
データ同期または移行タスクが失敗する可能性があります。データ同期または移行中にターゲットデータベースのオブジェクトに対して操作を実行すると、例外が発生する可能性があります。たとえば、プライマリキーの競合が発生したり、データレコードが更新されなかったりする可能性があります。この場合、データ同期または移行タスクが失敗する可能性があります。データ同期または移行を中断しない操作を実行した場合、タスクは影響を受けません。たとえば、ターゲットデータベースにテーブルを作成し、そのテーブルにデータを書き込んだ場合、そのテーブルは移行または同期されるオブジェクトではないため、タスクは影響を受けません。
DTS はソースデータベースに関する情報を読み取り、完全データ、スキーマデータ、および増分データをターゲットデータベースに移行または同期します。そのため、ターゲットデータベースのデータの変更は、移行または同期されたデータによって上書きされる可能性があります。
データ同期または移行タスクの実行中に、DTS はソースデータベースとターゲットデータベースの両方に同時にデータを書き込むことができますか?
はい。ただし、DTS インスタンスの実行中に他のデータソースからのデータがターゲットデータベースに書き込まれた場合、ターゲットデータベースまたは DTS インスタンスのデータが異常になる可能性があります。
DTS インスタンスの使用中にソースデータベースまたはターゲットデータベースのパスワードを変更するとどうなりますか?
DTS はエラーを返し、インスタンスを停止します。 DTS コンソールにログインし、インスタンス ID をクリックしてインスタンス詳細ページに移動できます。 [基本情報] ページで、ソースデータベースまたはターゲットデータベースのアカウントとパスワードを変更できます。 その後、[タスク管理] ページに移動します。 [タスク管理] ページで、エラーが報告されたモジュールを見つけ、モジュールを再起動します。
一部のソースデータベースまたはターゲットデータベースにパブリック IP アドレス経由で接続できないのはなぜですか?
接続タイプは、タスクタイプとソースデータベースまたはターゲットデータベースのタイプによって異なります。たとえば、ソースデータベースとして MySQL データベースを選択した場合、データ移行タスクまたは変更追跡タスクではパブリック IP アドレス経由でソースデータベースに接続できますが、データ同期タスクでは接続できません。
DTS はアカウント間のデータ移行または同期をサポートしていますか?
はい、DTS はアカウント間のデータ移行または同期をサポートしています。詳細については、「Alibaba Cloud アカウント間で DTS タスクを設定する」をご参照ください。
ソースデータベースとターゲットデータベースの両方に同じデータベースを指定できますか。
はい。ソースデータベースとターゲットデータベースの両方に同じデータベースを指定する場合は、マッピング機能を使用してデータを分離および区別することをお勧めします。そうしないと、DTS タスクが失敗するか、データが失われます。詳細については、「オブジェクト名のマッピング」をご参照ください。
宛先データベースが Redis インスタンスにある DTS タスクで、次のエラーが報告されます。「OOM command not allowed when used memory > 'maxmemory'」。なぜこれが発生するのですか?
このエラーは、宛先 Redis インスタンスのストレージ容量が不足していることが原因である可能性があります。宛先 Redis インスタンスがクラスタアーキテクチャを使用している場合、このエラーは、シャードのメモリ使用量が上限に達したことが原因である可能性があります。この場合、Redis インスタンスのスペックをアップグレードしてください。
AliyunDTSRolePolicy ポリシーとは何ですか?
AliyunDTSRolePolicy ポリシーは、DTS タスクを構成する際に、Alibaba Cloud アカウント内または Alibaba Cloud アカウント間で、ApsaraDB RDS インスタンスや ECS インスタンスなどのクラウドリソースにアクセスするために使用されます。詳細については、「DTS に Alibaba Cloud リソースへのアクセスを承認する」をご参照ください。
RAM ロールに権限を付与するにはどうすればよいですか?
DTS コンソールに初めてログインするときに、AliyunDTSDefaultRole ロールに権限を付与する必要があります。コンソールの指示に従って、RAM ロールに権限を付与します。詳細については、「DTS が Alibaba Cloud リソースにアクセスすることを承認する」をご参照ください。
Alibaba Cloud アカウントを使用して DTS コンソールにログインする必要があります。
DTS タスクのデータベースアカウントのパスワードを変更できますか?
はい、DTS タスクのデータベースアカウントのパスワードを変更できます。 DTS コンソールにログインし、インスタンス ID をクリックしてインスタンス詳細ページに移動します。 [基本情報] ページで、[パスワードの変更] をクリックして、ソースまたはターゲットデータベースアカウントのパスワードを変更します。
DTS タスクのシステムアカウントのパスワードは変更できません。
MaxCompute のテーブル名が _base サフィックスで終わるのはなぜですか?
初期スキーマ同期。
DTS は、必要なオブジェクトのスキーマをソースデータベースから MaxCompute に同期します。初期スキーマ同期中、DTS はソーステーブル名の末尾に _base 接尾辞を追加します。たとえば、ソーステーブルの名前が customer の場合、MaxCompute のテーブルの名前は customer_base になります。
初期完全データ同期。
DTS は、テーブルの既存データをソースデータベースから MaxCompute の宛先テーブルに同期します。たとえば、ソースデータベースの customer テーブルは、MaxCompute の customer_base テーブルに同期されます。このデータは、後続の増分同期の基礎となります。
説明_base が接尾辞として付加された宛先テーブルは、完全ベースラインテーブルと呼ばれます。
増分データ同期。
DTS は、MaxCompute に増分データテーブルを作成します。増分データテーブルの名前には、customer_log など、_log という接尾辞が付加されます。次に、DTS はソースデータベースで生成された増分データを、増分データテーブルに同期します。
説明詳細については、「増分データテーブルのスキーマ」をご参照ください。
Kafka トピックに関する情報を取得できない場合はどうすればよいですか?
これは、Kafka ブローカーにトピック情報が存在しないことが原因である可能性があります。 Kafka ブローカー間でのトピックの分散を確認するには、次のコマンドを実行します。
./bin/kafka-topics.sh --describe --zookeeper zk01:2181/kafka --topic topic_nameRDS インスタンスのセカンダリデータベースとしてローカル MySQL インスタンスを作成できますか?
はい。DTS のデータ移行機能を使用して、RDS インスタンスからローカル MySQL インスタンスにデータをリアルタイムで移行できます。その後、MySQL インスタンスを RDS インスタンスのセカンダリデータベースとして使用できます。
RDS インスタンスから新しく作成した RDS インスタンスにデータを複製するにはどうすればよいですか?
DTS のデータ移行機能を使用できます。データ移行タスクを構成する場合は、移行タイプとしてスキーマ移行、完全なデータ移行、および増分データ移行を選択します。詳細については、「ApsaraDB RDS インスタンス間でデータを移行する」をご参照ください。
RDS インスタンスで、データベース名以外が同じデータベースを複製できますか?
はい、DTS のオブジェクト名マッピング機能を使用すると、RDS インスタンスで、データベース名以外が同じデータベースを複製できます。
DTS インスタンスで常にレイテンシが発生する場合はどうすればよいですか?
DTS インスタンスでは、以下の原因により遅延が発生する可能性があります。
異なるアカウントを使用してソースインスタンスで複数の DTS タスクを作成しました。その結果、ソースインスタンスの負荷が高くなっています。同じアカウントを使用して DTS タスクを作成することをお勧めします。
宛先インスタンスのメモリが不足している可能性があります。業務を調整し、宛先インスタンスを再起動してください。問題が解決しない場合は、宛先インスタンスをスペックアップするか、プライマリセカンダリスイッチオーバーを実行してください。
説明スイッチオーバー中は、ネットワーク接続が中断される場合があります。アプリケーションがインスタンスに自動的に再接続できることを確認してください。
以前のバージョンの DTS コンソールでターゲットデータベースにデータを同期または移行した後、フィールドが小文字になっている場合はどうすればよいですか?
新しいバージョンの DTS コンソールでタスクを設定し、宛先データベースのオブジェクト名の大文字と小文字を指定します。詳細については、「宛先インスタンスのオブジェクト名の大文字と小文字を指定する」をご参照ください。
一時停止した DTS タスクを再開できますか?
ほとんどの場合、24 時間以内に一時停止された DTS タスクは適切に再開できます。データ量が small の場合、7 日以内に一時停止された DTS タスクを再開できます。タスクを 6 時間以上一時停止しないことをお勧めします。
タスクを一時停止してから再起動すると、タスクの進捗が 0 から開始するのはなぜですか?
タスクが再起動されると、DTS は転送されたデータを再度クエリし、残りのデータの処理を続行します。このプロセス中、待機時間により、タスクの進捗状況が実際の状況と異なる場合があります。
ロックフリー DDL の原則とは何ですか?
ロックフリー DDL 操作の原則の詳細については、「概要」 Topic の「ロックフリー スキーマ変更プロセス」セクションをご参照ください。
テーブルのデータ同期または移行を一時停止できますか?
いいえ、テーブルのデータ同期または移行を一時停止することはできません。
タスクが失敗した場合、タスクを再度購入する必要がありますか?
いいえ、タスクを再構成できます。
複数のタスクが同じターゲットデータベースにデータを書き込むとどうなりますか?
これにより、データの不整合が発生する可能性があります。
DTS インスタンスを更新した後も、インスタンスがロックされたままなのはなぜですか?
ロックされた DTS インスタンスを更新した後、インスタンスのロックが解除されるまでしばらく時間がかかります。
DTS インスタンスのリソースグループを変更できますか?
はい、DTS インスタンスのリソースグループを変更できます。[基本情報] ページのインスタンスに移動します。[基本情報] セクションで、リソースグループ名の横にある [編集] をクリックします。
DTS はバイナリログ分析ツールを提供していますか?
いいえ、DTS はバイナリログ分析ツールを提供していません。
増分データ同期または移行タスクの進捗状況が常に 95% と表示されるのは正常ですか?
はい、正常です。増分データ同期または移行タスクは停止または完了することはありません。進捗状況は 100% に到達することはありません。
DTS タスクが 7 日以上フリーズされた後、解放されないのはなぜですか?
場合によっては、フリーズされたタスクが 7 日以上保存されます。
既存のタスクのポート番号を変更できますか?
いいえ、既存のタスクのポート番号は変更できません。
DTS タスクで PolarDB-X 1.0 インスタンスにマウントされている ApsaraDB RDS for MySQL インスタンスをスペックダウンできますか?
ApsaraDB RDS for MySQL インスタンスをスペックダウンしないことをお勧めします。スペックダウン操作はプライマリとセカンダリのスイッチオーバーをトリガーし、データ損失が発生する可能性があります。
DTS タスクの実行中に、ソースまたは宛先インスタンスをスペックアップまたはスペックダウンできますか?
DTS タスクの実行中にソースまたは宛先インスタンスをスペックアップまたはスペックダウンすると、タスクが遅延したり、データが失われたりする可能性があります。 DTS タスクの実行中は、ソースまたは宛先インスタンスの仕様を変更しないことをお勧めします。
DTS タスクはソースインスタンスと宛先インスタンスにどのような影響を与えますか?
完全データ初期化中、DTS はソースデータベースと宛先データベースの読み取りリソースと書き込みリソースを使用します。これにより、データベースの負荷が増加する可能性があります。完全なデータ移行タスクまたは同期タスクは、オフピーク時に実行することをお勧めします。
DTS タスクのおおよその待機時間とは何ですか?
DTS タスクの待機時間は、ソースインスタンスの実行負荷、伝送ネットワークの帯域幅、ネットワーク遅延、宛先インスタンスの書き込みパフォーマンスなど、さまざまな要因の影響を受けるため、推定できません。
DMS コンソールに移動した場合、以前のバージョンの DTS コンソールに戻るにはどうすればよいですか?
DMS コンソールの右下隅にある
イメージにポインターを移動し、
アイコンをクリックすると、以前のバージョンの DTS コンソールに移動できます。
DTS はデータの暗号化をサポートしていますか?
はい。DTS は、ソースデータベースからデータを読み取り、ターゲットデータベースに書き込む際に、SSL を介した安全なデータベースアクセスをサポートしています。ただし、ソースデータベースとターゲットデータベース間のデータ転送の暗号化はサポートされていません。
ApsaraDB for ClickHouse インスタンスをソースインスタンスまたは宛先インスタンスとして構成できますか。
いいえ、ApsaraDB for ClickHouse インスタンスをソースインスタンスまたは宛先インスタンスとして構成することはできません。
AnalyticDB for MySQL V2.0 クラスターをソースインスタンスまたは宛先インスタンスとして構成できますか?
AnalyticDB for MySQL V2.0 クラスターは、宛先インスタンスとしてのみ構成できます。この操作は、旧バージョンの DTS コンソールでのみ実行でき、新バージョンの DTS コンソールでは実行できません。
新しく作成したタスクが DTS コンソールに表示されないのはなぜですか?
誤ったリソースグループを選択したか、タスクのフィルター条件が正しく設定されていない可能性があります。タスクのフィルター条件を正しく設定してください。たとえば、上部のナビゲーションバーで正しいリージョンとリソースグループを選択してください。
データ検証タスクでデータの不整合が発生するのはなぜですか?
データ検証タスクでデータの不整合が発生する原因は次のとおりです。
データ移行または同期タスクでレイテンシが発生します。
デフォルト値を持つ列がソースデータベースに追加され、タスクでレイテンシが発生します。
DTS 以外のツールを使用して、ターゲットデータベースにデータを書き込みます。
複数テーブルのマージ機能が有効になっているタスクのソースデータベースで DDL 操作が実行されます。
データ移行またはデータ同期タスクでオブジェクト名マッピング機能が有効になっています。
作成済みのタスクのグレー表示された設定項目は変更できますか?
いいえ、作成済みのタスクのグレー表示された設定項目は変更できません。
レイテンシーアラートとしきい値をどのように設定できますか?
DTS は、DTS タスクの監視およびアラート機能を提供します。 DTS コンソールで重要なメトリックのアラート ルールを設定して、DTS タスクをリアルタイムで監視できます。 詳細については、「監視とアラートの設定」をご参照ください。
かなり前に発生したタスクの失敗原因を確認できますか?
いいえ、かなり前に発生したタスクの失敗原因は確認できません。タスクがかなり前に(7 日以上前に)失敗した場合、関連ログはクリアされます。この場合、失敗の原因を確認することはできません。
長時間前に失敗したタスクを再開できますか?
いいえ、長時間前に失敗したタスクは再開できません。 7 日以上前など、長時間前にタスクが失敗した場合、関連ログはクリアされます。 この場合、タスクを再構成する必要があります。
rdsdt_dtsacct アカウントとは何ですか?
rdsdt_dtsacct アカウントを作成しない場合、DTS によってアカウントが作成される場合があります。 DTS は、ソースおよびターゲット データベースインスタンスに接続するために、一部のデータベースインスタンスに rdsdt_dtsacct という名前の組み込みデータベースアカウントを作成します。
SQL Server データベースのヒープテーブル、プライマリキーのないテーブル、圧縮テーブル、および計算列を含むテーブルに関する情報を表示するにはどうすればよいですか?
次の SQL 文を実行して、ソースデータベースにこれらのタイプのテーブルが含まれているかどうかを確認できます。
次の SQL 文を実行して、ヒープテーブルを確認します。
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.indexes WHERE index_id = 0); -- ヒープテーブルを確認するための SQL 文次の SQL 文を実行して、プライマリキーのないテーブルを確認します。
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id NOT IN (SELECT parent_object_id FROM sys.objects WHERE type = 'PK'); -- プライマリキーのないテーブルを確認するための SQL 文次の SQL 文を実行して、クラスタ化インデックス列に含まれていないプライマリキー列を確認します。
SELECT s.name schema_name, t.name table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id WHERE t.type = 'U' AND s.name NOT IN('cdc', 'sys') AND t.name NOT IN('systranschemas') AND t.object_id IN ( SELECT pk_colums_counter.object_id AS object_id FROM (select pk_colums.object_id, sum(pk_colums.column_id) column_id_counter from (select sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.is_primary_key = 'true') pk_colums group by object_id) pk_colums_counter inner JOIN ( select cluster_colums.object_id, sum(cluster_colums.column_id) column_id_counter from (SELECT sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.index_id = 1) cluster_colums group by object_id ) cluster_colums_counter ON pk_colums_counter.object_id = cluster_colums_counter.object_id and pk_colums_counter.column_id_counter != cluster_colums_counter.column_id_counter); -- クラスタ化インデックス列に含まれていないプライマリキー列を確認するための SQL 文次の SQL 文を実行して、圧縮テーブルを確認します。
SELECT s.name AS schema_name, t.name AS table_name FROM sys.objects t, sys.schemas s, sys.partitions p WHERE s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id = p.object_id AND p.data_compression != 0; -- 圧縮テーブルを確認するための SQL 文次の SQL 文を実行して、計算列を含むテーブルを確認します。
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_computed = 1); -- 計算列を含むテーブルを確認するための SQL 文
ソースデータベースとターゲットデータベースのスキーマに不整合がある場合はどうすればよいですか?
オブジェクト名マッピング機能を使用して、ソースデータベースの列をターゲットデータベースの列にマッピングできます。詳細については、「オブジェクト名をマッピングする」をご参照ください。
列の型は変更できません。
オブジェクト名マッピング機能を使用して、列の型を変更できますか?
いいえ、オブジェクト名マッピング機能を使用して列の型を変更することはできません。
ソースデータベースの読み取り速度を制限できますか?
いいえ、ソースデータベースの読み取り速度を制限することはできません。タスクを開始する前に、IOPS やネットワーク帯域幅がソースデータベースの要件を満たしているかどうかなど、ソースデータベースのパフォーマンスを評価する必要があります。タスクはオフピーク時に実行することをお勧めします。
シャードクラスタアーキテクチャにデプロイされた MongoDB データベースの孤立ドキュメントを削除するにはどうすればよいですか。
孤立ドキュメントが存在するかどうかを確認する
mongo シェルを使用して、シャードクラスタアーキテクチャにデプロイされた MongoDB データベースに接続します。
ApsaraDB for MongoDB シャードクラスターインスタンスへの接続方法の詳細については、「mongo シェルを使用してシャードクラスターインスタンスに接続する」をご参照ください。
次のコマンドを実行して、宛先の MongoDB データベースに切り替えます。
use <db_name>次のコマンドを実行して、孤立ドキュメントに関する情報を表示します。
db.<coll_name>.find().explain("executionStats")説明各シャードの
executionStatsにあるSHARDING_FILTERステージのchunkSkipsフィールドの値を確認します。 値が 0 でない場合、対応するシャードに孤立ドキュメントが存在します。次の応答は、
FETCHステージで 102 件のドキュメントが返されたことを示しています。 その後、SHARDING_FILTERステージで 2 つの孤立ドキュメントが除外され、100 件のドキュメントが返されます。"stage" : "SHARDING_FILTER", "nReturned" : 100, ...... "chunkSkips" : 2, "inputStage" : { "stage" : "FETCH", "nReturned" : 102,SHARDING_FILTERステージの詳細については、「MongoDB マニュアル」をご参照ください。
孤立ドキュメントを削除する
複数の MongoDB データベースがある場合は、各 MongoDB データベースから孤立ドキュメントを削除する必要があります。
ApsaraDB for MongoDB インスタンス
メジャーバージョンが 4.2 より前の ApsaraDB for MongoDB インスタンス、またはマイナーバージョンが 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("コレクション: " + fullCollectionName + "、シャード: " + shardName + " の cleanupOrphaned が完了しました") } var shardNames = ["shardName1", "shardName2", "shardName3"] var fullCollectionName = "database.collection" // 現時点では完了できません。失敗またはタイムアウトです。 // コレクション:+fullCollectionName+、シャード:+shardName+のcleanupOrphanedが完了しました。 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詳細については、「WordPress REST API」をご参照ください。
自主管理 MongoDB データベース
cleanupOrphaned.js スクリプトファイルを、自主管理 MongoDB データベースに接続できるサーバーにダウンロードします。
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.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
トラブルシューティング
孤立ドキュメントの名前空間にアイドルカーソルが存在する場合、削除は失敗し、対応する孤立ドキュメントに対して次の mongod ログが記録されます。
Deletion of DATABASE.COLLECTION range [{ KEY: VALUE1 }, { KEY: VALUE2 }) will be scheduled after all possibly dependent queries finish // 依存関係のあるすべてのクエリが完了した後、DATABASE.COLLECTION 範囲 [{ KEY: VALUE1 }, { KEY: VALUE2 }) の削除がスケジュールされます。 mongo シェルを使用して mongod プロセスに接続し、次のコマンドを実行して、現在のシャードにアイドルカーソルが存在するかどうかを確認できます。アイドルカーソルが存在する場合は、restart mongod または killCursors コマンドを実行して、すべてのアイドルカーソルをクリアします。その後、孤立ドキュメントを再度削除します。詳細については、「開いているカーソルが孤立ドキュメントのクリーンアップをブロックする可能性がある」をご参照ください。
db.getSiblingDB("admin").aggregate( [{ $currentOp : { allUsers: true, idleCursors: true } },{ $match : { type: "idleCursor" } }] ) // すべてのユーザーとアイドルカーソルを含む現在の操作を取得し、タイプが "idleCursor" である操作と一致させる集約を実行します。MongoDB データベースがシャードクラスターアーキテクチャにデプロイされている場合、データが均等に分散されていない場合はどうすればよいですか?
バランサーを有効にして、事前シャーディングを実行することで、ほとんどのデータが単一のシャードに書き込まれるという問題を効果的に解決できます。
バランサーを有効にする
バランサーが無効になっているか、バランサーの指定されたアクティブタイムウィンドウに達していない場合は、バランサーを有効にするか、バランサーのタイムウィンドウを一時的にキャンセルできます。 これにより、データ分散のバランスをすぐに取ることができます。
シャードクラスターアーキテクチャにデプロイされている MongoDB データベースに接続します。
mongos ノードに接続した後、mongo シェルで次のコマンドを実行して、config データベースに切り替えます。
use configビジネス要件に基づいて、次の操作を実行します。
次のコマンドを実行して、バランサーを有効にします。
sh.setBalancerState(true)次のコマンドを実行して、バランサーのタイムウィンドウを一時的にキャンセルします。
db.settings.updateOne( { _id : "balancer" }, { $unset : { activeWindow : true } } )
事前シャーディングを実行する
MongoDB では、レンジシャーディングまたはハッシュシャーディングを設定できます。 事前シャーディングを実行して、チャンクの値をできるだけ多くのシャードノードに分散できます。 これにより、データ同期または移行中にデータを均等に分散できます。
ハッシュシャーディングを実行する
numInitialChunks パラメーターを指定することで、より効率的に事前シャーディングを実行できます。 デフォルト値は、シャードの数に 2 を掛けた結果です。 最大値は、シャードの数に 8,192 を掛けた結果です。 詳細については、「sh.shardCollection()」をご参照ください。
sh.shardCollection("phonebook.contacts", { last_name: "hashed" }, false, {numInitialChunks: 16384})レンジシャーディングを実行する
ソースデータベースが MongoDB シャードクラスターインスタンスの場合、
config.chunksのデータを使用して、ソース MongoDB インスタンス内のシャーディングテーブルのチャンク範囲を取得できます。 チャンク範囲は、後続の事前シャーディングにおける<split_value>の値を決定するためのリファレンスとして使用できます。ソースデータベースが MongoDB レプリカセットインスタンスの場合、
findコマンドを実行して、シャーディングキーの値の範囲を指定する必要があります。 その後、適切なシャードポイントを指定できます。# シャーディングキーの最小値を取得します。 db.<coll>.find().sort({<shardKey>:1}).limit(1) # シャーディングキーの最大値を取得します。 db.<coll>.find().sort({<shardKey>:-1).limit(1)
コマンド構文
この例では、splitAt コマンドの構文について説明します。 詳細については、「sh.splitAt()」、「sh.splitFind()」、および「Split Chunks in a Sharded Cluster」をご参照ください。
sh.splitAt("<db>.<coll>", {"<shardKey>":<split_value>})例
sh.splitAt("test.test", {"id":0})
sh.splitAt("test.test", {"id":50000})
sh.splitAt("test.test", {"id":75000})事前シャーディングが実行された後、mongos ノードで sh.status() コマンドを実行して、事前シャーディングの結果を確認できます。
コンソールでタスクページの 1 ページあたりのエントリ数を指定する方法
この例では、データ同期インスタンスを使用して、1 ページあたりのエントリ数を指定する方法を示します。
次のいずれかの方法を使用して データ同期 ページに移動し、データ同期インスタンスが存在するリージョンを選択します。
DTS コンソール
DTS コンソール にログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、データ同期タスクが存在するリージョンを選択します。
DMS コンソール
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソール にログインします。
上部のナビゲーションバーで、ポインターを [データ + AI] に移動し、 を選択します。
データ同期タスク の右側のドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。
ページの右側にあるスクロールバーをページの下部にドラッグします。
[1 ページあたりのアイテム数] の横にある数値を選択します。
説明[1 ページあたりのアイテム数] の有効な値: [10]、[20] または [50]。
DTS インスタンスで「ZooKeeper 接続 タイムアウト」というメッセージが表示された場合はどうすればよいですか?
インスタンスを再起動して 回復 します。詳細については、「DTS タスクを開始する」をご参照ください。
Cloud Enterprise Network(CEN)インスタンスで CIDR ブロックを削除した後、DTS サーバーの CIDR ブロックが自動的に再追加されるのはなぜですか?
これは、CEN で Enterprise Edition 転送ルータを作成し、データベースインスタンスを CEN 経由で DTS に接続したためです。この場合、CEN で CIDR ブロックを削除しても、DTS は DTS サーバーの CIDR ブロックをルータに自動的に再追加します。
DTS タスクをエクスポートできますか?
いいえ。
Java プログラミング言語を使用して API 操作を呼び出す方法
このメソッドは、Python 用 Alibaba Cloud SDK を使用して API 操作を呼び出す方法と似ています。詳細については、「API 使用例」をご参照ください。 SDK センター/データ伝送 ページに移動し、[すべての言語] の下にあるプログラミング言語を選択し、サンプルコードを表示します。
データ同期または移行タスクで抽出・変換・書き出し (ETL) 機能を設定するために API 操作を呼び出すにはどうすればよいですか?
API 操作の Reserve パラメーターで、etlOperatorCtl や etlOperatorSetting などの共通パラメーターを使用できます。詳細については、「Configure DTS migration or synchronization task」および「Reserve パラメーター」をご参照ください。
DTS は Azure SQL Database をサポートしていますか?
はい。ソースデータベースが Azure SQL Database の場合、SQL Server 増分同期モード パラメーターを 増分同期のための CDC インスタンスのポーリングとクエリ に設定する必要があります。
データ同期または移行タスクが完了した後、ソースデータベースのデータは保持されますか?
はい、DTS はソースデータベースのデータを削除しません。ソースデータベースのデータを保持したくない場合は、データを削除できます。
データ同期または移行インスタンスの開始後に速度制限を有効にできますか?
はい。詳細については、「データ移行の速度制限を有効にする」をご参照ください。
DTS は期間ごとに同期または移行されるデータをサンプリングすることをサポートしていますか?
いいえ。
データ同期またはデータ移行インスタンス中に、ターゲットデータベースに手動でテーブルを作成する必要がありますか?
スキーマ同期またはスキーマ移行タスク ( [同期タイプ] パラメーターには [スキーマ同期] を選択、[移行タイプ] パラメーターには [スキーマ移行] を選択) を サポートされているデータベース でスキーマ同期またはスキーマ移行をサポートする DTS タスクに対して構成する場合、ターゲットデータベースに手動でテーブルを作成する必要はありません。
データ同期またはデータ移行インスタンス中に、ソースとターゲットデータベースのネットワーク接続を有効にする必要がありますか?
いいえ。