すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:よくある質問

最終更新日:Jan 22, 2025

このトピックでは、データ伝送サービス (DTS) に関するよくある質問 (FAQ) に対する回答を提供します。 DTSからエラーメッセージが返された場合は、[一般的なエラーとトラブルシューティング] トピックを参照してエラーのトラブルシューティングを行うことができます。 エラーメッセージが表示されない場合は、エラーの原因を特定し、このトピックのFAQに基づいてエラーを修正できます。

FAQタイプ

FAQは次のタイプに分類されます。

課金に関するよくある質問

DTSはどのように課金されますか?

サブスクリプションと従量課金の課金方法に基づいてDTSの料金が請求されます。 課金方法についての詳細は、「課金の概要」をご参照ください。

DTSの請求書を表示するにはどうすればよいですか?

DTSの請求書を表示する方法の詳細については、「請求書の表示」をご参照ください。

DTSインスタンスが一時停止されている期間中、まだ課金されていますか?

データ移行インスタンスが一時停止されている期間中は、課金されません。 データ同期タスクの設定時に増分データ同期が選択されている場合、データ同期インスタンスが一時停止されている期間中も課金されます。 これは、DTSがターゲットデータベースへのデータの書き込みを停止するだけで、ソースデータベースの増分変更時にデータを収集し続けるためです。

データ同期の価格がデータ移行の価格よりも高いのはなぜですか?

データ同期には、より高度な機能があります。 たとえば、同期するオブジェクトを再選択し、MySQLデータベース間の双方向同期を設定できます。 さらに、データ同期は、内部ネットワークを介してデータを送信することにより、低いネットワーク遅延を保証する。

延滞支払いの影響は何ですか?

延滞支払いの影響の詳細については、「有効期限と延滞支払い」をご参照ください。

有効期限が切れる前にサブスクリプションインスタンスをリリースするにはどうすればよいですか。

インスタンスの課金方法をサブスクリプションから従量課金に変更した後、サブスクリプションインスタンスをリリースできます。 課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。

タスクの課金方法をサブスクリプションから従量課金に変更できますか?

はい。タスクの課金方法をサブスクリプションから従量課金に変更できます。 課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。

タスクの課金方法を従量課金からサブスクリプションに変更できますか?

はい。データ同期タスクまたは変更追跡タスクの課金方法を従量課金からサブスクリプションに変更できます。 課金方法の変更方法の詳細については、「課金方法の変更」をご参照ください。

説明

データ移行タスクの課金方法は、従量課金のみです。

以前は無料だったDTSインスタンスに対して課金されるのはなぜですか?

これは、DTSインスタンスの無料試用期間が経過したためです。 DTSは、ターゲットデータベースがApsaraDBデータベースであるタスクの無料試用期間を提供します。 無料トライアル期間が経過した後、タスクに対して課金されます。

リリースされたDTSインスタンスに対してまだ課金されるのはなぜですか?

DTSは、従量課金DTSインスタンスの請求書を毎日生成します。 DTSはその日に使用されるため、インスタンスがリリースされた日にDTSインスタンスに対して課金されます。

従量課金DTSインスタンスの課金方法を教えてください。

従量課金DTSインスタンスの料金は、増分データ同期が一時停止されている期間を含め、増分データ移行が一時停止されている期間を除き、増分タスクが進行中の場合にのみ請求されます。 詳細については、「課金方法」をご参照ください。

パフォーマンスとインスタンスタイプに関するFAQ

インスタンスタイプの違いは何ですか?

インスタンスタイプの違いの詳細については、「データ移行インスタンスのインスタンスクラス」および「データ同期インスタンスのインスタンスクラス」をご参照ください。

DTSインスタンスをアップグレードできますか?

はい、DTSインスタンスをアップグレードできます。 DTSインスタンスをアップグレードするには、次の操作を実行します。 アップグレードするインスタンスを見つけ、[操作] 列の...アイコンをクリックし、[アップグレード] を選択します。

重要

DTSインスタンスをアップグレードした後、DTSインスタンスをダウングレードすることはできません。

DTSインスタンスをダウングレードできますか?

いいえ、DTSではDTSインスタンスをダウングレードできません。

データの同期または移行にはどのくらい時間がかかりますか?

DTSタスクに必要な時間は推定できません。 これは、DTSの伝送性能が、DTSの内部ペイロード、ソースおよび宛先データベースのペイロード、伝送されるデータ量、増分データ移行または同期がDTSタスクに関与するかどうか、およびネットワーク条件などのさまざまな要因によって影響を受けるためです。 高いパフォーマンスが必要な場合は、パフォーマンスが向上するインスタンスタイプを選択することを推奨します。 インスタンスタイプの詳細については、「データ移行インスタンスのインスタンスクラス」および「データ同期インスタンスのインスタンスクラス」をご参照ください。

データ移行またはデータ同期インスタンスのパフォーマンス情報を表示するにはどうすればよいですか。

インスタンスのパフォーマンス情報を表示する方法の詳細については、「接続ステータスと増分データ移行のパフォーマンスの表示」または「接続ステータスとデータ同期のパフォーマンスの表示」をご参照ください。

DTSコンソールで特定のDTSインスタンスが見つからないのはなぜですか?

DTSインスタンスがサブスクリプションインスタンスの場合、インスタンスは有効期限が切れたためにリリースされている可能性があります。

  • リソースグループが無効です。 [すべてのリソース] を選択することを推奨します。

  • リージョンが無効です。 選択したリージョンがDTSインスタンスが存在するリージョンであるかどうかを確認します。

  • タスクタイプが無効です。 必要なタスクタイプのインスタンスを表示するインスタンスリストページにアクセスしているかどうかを確認します。 たとえば、同期インスタンスは データ同期タスク ページにのみ表示されます。

  • インスタンスは、有効期限または料金滞納によりリリースされます。 サブスクリプションインスタンスの有効期限が切れた場合、または料金滞納が発生した場合、インスタンスは停止します。 サービスが停止してから7日以内に料金滞納を決済しない場合、システムはインスタンスをリリースして削除します。 詳細については、「有効期限と料金滞納」をご参照ください。

事前チェックに関するFAQ

ApsaraDB for Redisのデータ削除ポリシーに関連するチェック項目に対してアラートが生成されるのはなぜですか。

ターゲットデータベースのデータ削除ポリシー (maxmemory-policy) がnoevictionに設定されていない場合、ソースデータベースとターゲットデータベースの間でデータの不整合が発生する可能性があります。 データ削除ポリシーの詳細については、ApsaraDB for Redisのデフォルトの削除ポリシーは何ですか?

バイナリログに関連する項目が増分データ移行タスクの事前チェックに合格しない場合はどうすればよいですか?

ソースデータベースのバイナリログが正常かどうかを確認します。 詳細については、「ソースデータベースのバイナリログの事前チェック」をご参照ください。

データベース接続に関するFAQ

ソースデータベースへの接続が失敗した場合はどうすればよいですか。

ソースデータベースの情報と設定が正常かどうかを確認します。 詳細については、「ソースデータベースの接続」をご参照ください。

ターゲットデータベースへの接続が失敗した場合はどうすればよいですか。

ターゲットデータベースの情報と設定が正常かどうかを確認します。 詳細については、「宛先データベース接続」をご参照ください。

DTSでサポートされていないリージョンにあるデータベースインスタンスからデータを移行または同期するにはどうすればよいですか。

  • データ移行タスクの場合、ApsaraDB RDS For MySQLインスタンスなどのデータベースインスタンスのパブリックエンドポイントを申請できます。 これにより、データベースインスタンスはパブリックIPアドレスを使用して接続できます。 次に、DTSでサポートされているリージョンにあるDTSサーバーのCIDRブロックをデータベースインスタンスのホワイトリストに追加します。 データベースインスタンスのホワイトリストに追加する必要があるDTSサーバーのCIDRブロックの詳細については、「DTSサーバーのCIDRブロックの追加」をご参照ください。

  • データ同期タスクの場合、DTSでサポートされていないリージョンのデータベースインスタンスとの間でデータを同期することはできません。これは、データ同期中にデータベースインスタンスをパブリックIPアドレスを使用して接続できないためです。

データ同期に関するFAQ

DTSがデータ同期をサポートするデータベースの種類?

DTSは、リレーショナルデータベース管理システム (RDBMS) データベース、NoSQLデータベース、オンライン分析処理 (OLAP) データベースなど、さまざまなデータソース間のデータ同期をサポートします。 DTSがデータ同期にサポートするデータベースインスタンスの詳細については、「データ同期シナリオの概要」をご参照ください。

データ移行とデータ同期の違いは何ですか?

次の表に、データ移行とデータ同期の違いを示します。

項目

データ移行

データ同期

利用シナリオ

データ移行機能は、オンプレミスデータベース、Elastic Compute Service (ECS) インスタンスでホストされている自己管理型データベース、およびサードパーティクラウド上のデータベースからAlibaba Cloudにデータを移行するために使用されます。

データ同期機能は、2つのデータソース間のデータをリアルタイムで同期するために使用されます。 この機能は、アクティブな地理的冗長性、ディザスタリカバリ、国境を越えたデータ同期、クエリ負荷分散、クラウドビジネスインテリジェンス (BI) システム、リアルタイムデータウェアハウジングなどのシナリオに適しています。

サポートされているデータベースサービス

詳細については、「データ移行シナリオの概要」をご参照ください。

詳細については、「データ同期シナリオの概要」をご参照ください。

サポートされているデータベースの展開環境

  • Alibaba Cloudデータベースインスタンス

  • パブリックIPアドレスを持つ自己管理型データベース

  • database Gateway (DG) 経由で接続されている自己管理型データベース

  • Cloud Enterprise Network (CEN) 経由で接続されている自己管理型データベース

  • ECSインスタンスでホストされている自己管理型データベース

  • Express Connect、VPN Gateway、またはSmart Access Gatewayを介して接続されている自己管理型データベース

  • Alibaba Cloudデータベースインスタンス

  • DGを介して接続されている自己管理データベース

  • CEN経由で接続されている自己管理データベース

  • ECSインスタンスでホストされている自己管理型データベース

  • Express Connect、VPN Gateway、またはSmart Access Gatewayを介して接続されている自己管理型データベース

説明

データ同期機能により、内部ネットワーク経由でデータを送信することで、ネットワークの待ち時間を短縮できます。

特徴

  • 列、テーブル、およびデータベースのオブジェクト名マッピング機能を有効にできます。

  • 移行するデータをフィルタリングできます。

  • 移行するSQL操作の種類を選択できます。 たとえば、INSERT操作のみを移行できます。

  • さまざまなAlibaba Cloudアカウントが所有する仮想プライベートクラウド (VPC) にデプロイされている自己管理データベース間でデータを読み取り、移行できます。

  • 列、テーブル、およびデータベースのオブジェクト名マッピング機能を有効にできます。

  • 同期するデータをフィルタリングできます。

  • 同期するオブジェクトを変更できます。

  • MySQLデータベースなどのデータベース間の双方向同期を設定できます。

  • 同期するSQL操作のタイプを選択できます。 たとえば、INSERT操作のみを同期できます。

課金方法

従量課金方式のみサポートされています。

従量課金およびサブスクリプション課金方法がサポートされています。

課金ルール

増分データ移行が一時停止されている期間を除き、増分データ移行が進行中の場合にのみ課金されます。 スキーマ移行または完全データ移行に対しては課金されません。

  • 従量課金方法を使用する場合、増分データ同期が一時停止されている期間を含め、増分データ同期が進行中の場合にのみ課金されます。 スキーマ同期または完全データ同期に対しては課金されません。

  • サブスクリプションの課金方法を使用する場合、料金は、指定した数量と設定に基づいて購入時に差し引かれます。

説明

ApsaraDB For MongoDBインスタンスのデータベースなど、データ同期機能でサポートされていないデータベースの場合、増分データ移行を実行して、データベースとの間でデータを同期できます。

DTSはデータ同期モードでどのように機能しますか?

データ同期モードでのDTSの動作の詳細については、「アーキテクチャ」をご参照ください。

同期レイテンシを計算するにはどうすればよいですか?

同期レイテンシは、宛先データベースに同期された最新のデータレコードのタイムスタンプと、ソースデータベースの現在のタイムスタンプとの差です。 単位:ミリ秒。

説明

ほとんどの場合、レイテンシは1,000ミリ秒未満です。

データ同期タスクで同期するオブジェクトを変更できますか?

はい。データ同期タスクで同期するオブジェクトを変更できます。 同期するオブジェクトを変更する方法の詳細については、「データ同期タスクにオブジェクトを追加する」および「データ同期タスクからオブジェクトを削除する」をご参照ください。

データ同期タスクにテーブルを追加できますか?

はい、データ同期タスクにテーブルを追加できます。 データ同期タスクにテーブルを追加する方法の詳細については、「データ同期タスクにオブジェクトを追加する」をご参照ください。

実行中状態のデータ同期タスクのテーブルやフィールドなどのオブジェクトを変更するにはどうすればよいですか。

データ同期タスクの完全データ同期フェーズが終了したら、増分データ同期フェーズで同期するオブジェクトを変更できます。 実行中状態のデータ同期タスクで同期するオブジェクトを変更する方法の詳細については、「データ同期タスクにオブジェクトを追加する」および「データ同期タスクからオブジェクトを削除する」をご参照ください。

データ同期タスクが一定期間一時停止された後に再開されると、データの不整合が発生しますか?

データ同期タスクの一時停止中にソースデータベースが変更されると、ソースデータベースとターゲットデータベースのデータが矛盾する可能性があります。 データ同期タスクを再開し、増分データをターゲットデータベースに同期すると、ソースデータベースとターゲットデータベースのデータが一致します。

増分データ同期タスクのソースデータベースのデータが削除された場合、ターゲットデータベースの同期データは削除されますか?

増分データ同期タスクで同期するDML操作に対してdeleteを選択しない場合、ターゲットデータベースのデータは削除されません。 それ以外の場合、ターゲットデータベースの同期データは削除されます。

Redisインスタンス間の同期中に、ターゲットRedisインスタンスのデータが上書きされますか。

同じキーのデータが上書きされます。 宛先データベースは事前チェックフェーズでチェックされます。 ターゲットデータベースが空でない場合、エラーメッセージが返されます。

データ同期タスクでフィールドまたはデータをフィルタリングできますか?

はい。データ同期タスクでフィールドまたはデータをフィルタリングできます。 SQL WHERE条件を指定して、同期するデータをフィルタリングできます。 フィールドまたはデータをフィルタリングする方法の詳細については、「フィルタ条件の設定」をご参照ください。

データ同期タスクをデータ移行タスクに変換できますか?

いいえ、さまざまな種類のタスクを相互に変換することはできません。

スキーマを同期せずにデータのみを同期できますか?

はい、スキーマを同期せずにデータのみを同期できます。 これを行うには、データ同期タスクを設定するときに [スキーマ同期] を選択しないでください。

データ同期タスクでソースデータベースとターゲットデータベース間のデータの不一致が発生する原因は何ですか?

次の原因でデータの不整合が発生する可能性があります。

  1. タスクを構成するときに、ターゲットデータベースのデータをクリアしないと、ターゲットデータベースに履歴データが格納されます。

  2. タスクの設定時に増分データ同期モジュールのみを選択し、フルデータ同期モジュールは選択しません。

  3. タスクを設定するときに、フルデータ同期モジュールのみを選択し、増分データ同期モジュールは選択しません。 タスクが完了すると、ソースデータベースのデータが変更されます。

  4. DTS以外のツールを使用して、ターゲットデータベースにデータを書き込みます。

  5. 増分データは、増分書き込みレイテンシのため、ターゲットデータベースに書き込まれていません。

データ同期タスクでターゲットデータベースの同期オブジェクトの名前を変更できますか?

はい。データ同期タスクを設定するときに、ターゲットデータベース内の同期オブジェクトの名前を変更できます。 同期先データベース内の同期オブジェクトの名前を変更する方法の詳細については、「同期するオブジェクトの名前変更」をご参照ください。

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クラスターに同期できます。 これにより、複数のテーブルをマージできます。

データ同期が完了した後、ターゲットデータベースのデータサイズがソースデータベースのデータサイズよりも小さいのはなぜですか。

同期するデータがフィルタリングされている場合、またはソースデータベースに多くのテーブルパーティションがある場合、データ同期が完了した後、ターゲットデータベースのデータのサイズがソースデータベースのデータのサイズよりも小さくなる可能性があります。

アカウント間データ同期タスクで双方向同期がサポートされていますか?

ApsaraDB RDS for MySQLインスタンス間でのみ、Alibaba Cloudアカウント間で双方向同期タスクを設定できます。

クロスボーダー双方向同期タスクを設定できますか?

いいえ、クロスボーダー双方向同期タスクを設定することはできません。

双方向同期タスクで一方のデータベースにレコードが追加されると、これらのレコードはもう一方のデータベースには追加されません。 なぜこれが起こるのですか?

これは、データ同期タスクを逆方向に設定しない場合に発生する可能性があります。 データ同期タスクを逆方向に設定する方法の詳細については、ApsaraDB RDS For MySQLインスタンス間の双方向データ同期の設定トピックのステップ12ステップ16をご参照ください。

増分データ同期タスクの進行状況が100% に達しないのはなぜですか?

増分データ同期タスクの進行状況は100% に達しません。 DTSが増分データ同期を実行する場合、DTSはソースデータベースからターゲットデータベースへの変更をリアルタイムで継続的に同期し、手動でのみ停止できます。 リアルタイムの増分同期が不要になった場合は、DTSコンソールで同期タスクを停止できます。

増分同期タスクで一部のデータの同期が失敗するのはなぜですか?

DTSインスタンスに増分同期タスクのみを設定した場合、DTSはタスクの開始後に増分データのみを同期します。 タスクが開始される前にソースデータベースに格納されているデータは、ターゲットデータベースと同期されません。 データ同期タスクを設定するときは、[増分データ同期][スキーマ同期] 、および [フルデータ同期] を選択することを推奨します。 これによりデータの整合性が保証されます。

ソースデータベースのフルデータを同期すると、ソースApsaraDB RDSデータベースのパフォーマンスが影響を受けますか。

はい。ソースデータベースの完全なデータを同期すると、ソースApsaraDB RDSデータベースのクエリパフォーマンスが影響を受けます。 ソースデータベースのパフォーマンスへの影響を軽減するには、次のいずれかの方法を使用します。

  1. ソースインスタンスの仕様をアップグレードします。

  2. 最初にDTSタスクを一時停止し、ソースデータベースの負荷が減少した後にタスクを再開します。

  3. 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操作を実行し、タスクを再起動できます。 データ同期中にオブジェクトに対してDDL操作を実行するためにpt-online-schema-changeなどのツールを使用しないことを推奨します。 そうしないと、データ同期が失敗する可能性があります。 DTSのみを使用してターゲットデータベースにデータを書き込む場合、データ同期中にdata Management (DMS) を使用してソーステーブルに対してオンラインDDL操作を実行できます。 または、DDL操作の影響を受けるテーブルを削除することもできます。 同期するオブジェクトを削除する方法の詳細については、「データ同期タスクからオブジェクトを削除する」をご参照ください。

DDL操作がターゲットデータベースで実行されているためにデータ同期タスクが失敗した場合はどうすればよいですか。

増分データ同期中にターゲットデータベースまたはターゲットデータベースのテーブルが削除されると、データ同期タスクは失敗します。 この場合、次のいずれかの方法を使用してタスクを再開できます。

  • 方法1: タスクを再構成します。 タスクの失敗の原因となるデータベースまたはテーブルを同期するオブジェクトとして選択しないでください。

  • 方法2: 同期するオブジェクトを変更します。 データ同期タスクからタスクエラーの原因となったデータベースまたはテーブルを削除します。 詳細については、「データ同期タスクからのオブジェクトの削除」をご参照ください。

リリース後にデータ同期タスクを再開できますか? タスクを再設定すると、データの一貫性を確保できますか?

データ同期タスクは、リリース後は再開できません。 データ同期タスクを再設定するときに、[フルデータ同期] を選択しないと、タスクのリリース後、新しいタスクの開始前に生成された増分データをターゲットデータベースに同期できません。 この場合、データの整合性を確保することができない。 ビジネスで高い精度が必要な場合は、同期されたデータをターゲットデータベースから削除し、データ同期タスクを再構成できます。 タスクを再設定するときに、[タスクステージ] パラメーターに [スキーマ同期] および [フルデータ同期] を選択します。 デフォルトでは、増分データ同期が選択されています。

フルデータ同期タスクの進行状況が長期間変わらない場合はどうすればよいですか?

同期するテーブルにプライマリキーが含まれていない場合、完全なデータの同期は非常に遅くなります。 データ同期タスクを開始する前に、ソースデータベースから同期する各テーブルのプライマリキーを定義することをお勧めします。

同じ名前のソーステーブルから、宛先テーブルに存在しないデータのみを同期できますか?

はい。同じ名前のソーステーブルから、ターゲットテーブルに存在しないデータのみを同期できます。 DTSタスクを設定するときに、[競合テーブルの処理モード] パラメーターを [エラーを無視して続行] に設定できます。 完全データ同期中に、ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードの主キー値がターゲットデータベースの既存のデータレコードと同じである場合、このレコードはターゲットデータベースに同期されません。

Alibaba Cloudアカウント間でデータ同期タスクを設定するにはどうすればよいですか。

ソースインスタンスが属するAlibaba Cloudアカウントを使用してResource Access Management (RAM) 権限付与を設定し、次にターゲットインスタンスが属するAlibaba Cloudアカウントを使用してDTSタスクを設定する必要があります。 詳細については、「Alibaba Cloudアカウント全体でDTSタスクを設定する」をご参照ください。

DMS論理データベースインスタンスを選択できない場合はどうすればよいですか?

論理データベースインスタンスが存在するリージョンを選択してください。 問題が解決しない場合は、インスタンスが1つだけ存在し、デフォルトでインスタンスが選択されます。 この場合、他のパラメーターの設定を続けます。

ソースデータベースがSQL Serverデータベースの場合、データ同期タスクで関数を同期できますか?

ソースデータベースがSQL Serverデータベースの場合、データ同期タスクで関数を同期できません。 同期するオブジェクトとしてテーブルを選択した場合、DTSは、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトも同期先データベースに同期しません。

データ同期タスクでエラーが報告された場合はどうすればよいですか?

エラーメッセージに基づいて詳細なソリューションを表示するには、一般的なエラーとトラブルシューティングを参照してください。

データ同期タスクのホットスポットテーブルマージ機能を有効にする場合はどうすればよいですか?

trans.hot.merge.enableパラメーターをtrueに設定できます。 詳細については、「DTSインスタンスのパラメーターの変更」をご参照ください。

トリガーを含むソースデータベースのデータ同期タスクを構成するにはどうすればよいですか。

同期するオブジェクトとしてデータベースを選択し、そのデータベースにテーブルを更新するトリガーが含まれている場合、データの不整合が発生する可能性があります。 トリガーを含むソースデータベースのデータ同期タスクを構成する方法の詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクの構成」をご参照ください。

sysデータベースなどのシステムデータベースを同期できますか?

いいえ、sysデータベースなどのシステムデータベースを同期することはできません。

MongoDBインスタンスの管理者またはローカルデータベースとの間でデータを同期できますか?

いいえ。MongoDBインスタンスのadminまたはローカルデータベースとの間でデータを同期することはできません。

双方向同期タスクを逆方向に設定できるのはいつですか?

順方向の増分同期タスクが遅延しない場合にのみ、逆方向の双方向同期タスクを設定できます。

データ同期タスクでソース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クラスターへのデータの同期」をご参照ください。

ApsaraDB for Redisインスタンス間でデータを同期するときにフルデータ同期が表示されないのはなぜですか。

増分データ同期が表示されます。 ApsaraDB for Redisインスタンス間のデータ同期にこのオプションを選択した場合、完全データ同期と増分データ同期の両方が実行されます。

完全なデータ同期をスキップできますか?

はい、完全なデータ同期をスキップできます。 完全データ同期をスキップすると、増分データ同期が続行されます。 ただし、エラーが発生する場合があります。 完全なデータ同期をスキップしないことを推奨します。

指定された時点で自動的に開始されるデータ同期タスクを設定できますか?

いいえ、指定した時点で自動的に開始するデータ同期タスクを設定することはできません。

テーブル内の断片化されたスペースは同期中に同期されますか?

いいえ、テーブル内の断片化されたスペースは同期されません。

MySQL 8.0インスタンスからMySQL 5.6インスタンスにデータを同期するときに注意する必要がある項目は何ですか?

データ同期タスクを開始する前に、MySQL 5.6インスタンスにデータベースを作成する必要があります。 互換性を確保するには、ターゲットインスタンスのバージョンがソースデータベースのバージョンと同じかそれ以降である必要があります。 ターゲットインスタンスのバージョンがソースデータベースのバージョンよりも前の場合、データベースの互換性の問題が発生する可能性があります。

ソースデータベースからターゲットデータベースにアカウントを同期できますか?

アカウントは、ApsaraDB RDS for MySQLインスタンス間でのみ同期できます。

Alibaba Cloudアカウント間で双方向同期タスクを設定できますか?

ApsaraDB RDS for MySQLインスタンス間でのみ、Alibaba Cloudアカウント間で双方向同期タスクを設定できます。

説明

Alibaba Cloud アカウント間でデータを複製 設定項目がないタスクの場合、CENを使用して双方向同期を実装できます。 詳細については、「CENを使用してオンプレミスデータベースをDTSに接続する」トピックの「Alibaba Cloudアカウントまたはリージョン全体でデータベースをDTSに接続する」をご参照ください。

ターゲットデータベースがApsaraMQ for Kafkaインスタンスの場合、パラメーターを設定するにはどうすればよいですか。

ビジネス要件に基づいてパラメーターを設定します。 いくつかの特別なパラメーターを設定する方法の詳細については、「DTSタスクのターゲットインスタンスがApsaraMQ For Kafkaインスタンスの場合のパラメーターの設定」をご参照ください。

データ移行に関するFAQ

データ移行タスクが完了した後、移行されたデータはソースデータベースに存在しますか。

はい。データ移行タスクが完了した後、移行されたデータはソースデータベースに存在します。 DTSは、データの移行および同期中に、ソースデータベースからターゲットデータベースにデータをコピーします。 ソースデータベースのデータは影響を受けません。

DTSはデータ移行をサポートするデータベースの種類を教えてください。

DTSは、RDBMSデータベース、NoSQLデータベース、OLAPデータベースなど、さまざまなデータソース間のデータ移行をサポートしています。 詳細については、「データ移行シナリオの概要」をご参照ください。

DTSはデータ移行モードでどのように機能しますか?

データ移行モードでのDTSの動作の詳細については、「アーキテクチャ」をご参照ください。

データ移行タスクで移行するオブジェクトを変更できますか?

いいえ、データ移行タスクで移行するオブジェクトを変更することはできません。

データ移行タスクにテーブルを追加できますか?

いいえ、データ移行タスクにテーブルを追加することはできません。

実行中状態のデータ移行タスクのテーブルやフィールドなどのオブジェクトを変更するにはどうすればよいですか。

DTSでは、データ移行タスクで移行するオブジェクトを変更することはできません。

データ移行タスクが一定期間一時停止された後に再起動されると、データの不整合が発生しますか?

データ移行タスクの一時停止中にソースデータベースが変更された場合、ソースデータベースとターゲットデータベースのデータに矛盾が生じる可能性があります。 データ移行タスクを再起動し、増分データを移行先データベースに移行した後、移行元データベースと移行先データベースのデータは一貫しています。

データ移行タスクをデータ同期タスクに変換できますか?

いいえ、さまざまな種類のタスクを相互に変換することはできません。

スキーマを移行せずにデータのみを移行できますか?

はい、スキーマを移行せずにデータのみを移行できます。 これを行うには、データ移行タスクを設定するときに [スキーマ移行] を選択しないでください。

データ移行タスクでソースデータベースとターゲットデータベース間のデータの不一致が発生する原因は何ですか?

次の原因でデータの不整合が発生する可能性があります。

  1. タスクを構成するときに、ターゲットデータベースのデータをクリアしないと、ターゲットデータベースに履歴データが格納されます。

  2. タスクを設定するときに、増分データ移行モジュールのみを選択し、フルデータ移行モジュールは選択しません。

  3. タスクを設定するときに、フルデータ移行モジュールのみを選択し、増分データ移行モジュールは選択しません。 タスクが完了すると、ソースデータベースのデータが変更されます。

  4. DTS以外のツールを使用して、ターゲットデータベースにデータを書き込みます。

  5. 増分データは、増分書き込みレイテンシのため、ターゲットデータベースに書き込まれていません。

データ移行タスクで移行先データベースの移行オブジェクトの名前を変更できますか?

はい。データ移行タスクを設定するときに、移行先データベース内の移行オブジェクトの名前を変更できます。 移行先データベース内の移行オブジェクトの名前を変更する方法の詳細については、「オブジェクト名マッピング」をご参照ください。

単一のデータベースインスタンス内でデータを移行できますか?

はい、単一のデータベースインスタンス内でデータを移行できます。 詳細については、「異なる名前のデータベース間でデータを同期または移行する」をご参照ください。

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 (Compatible with Oracle) クラスターへのデータの移行」をご参照ください。

タスクが完了する前に、完全なデータ移行フェーズでデータ移行タスクを一時停止できますか?

はい。タスクが完了する前に、完全データ移行フェーズでデータ移行タスクを一時停止できます。

ApsaraDB RDS for MySQLインスタンスから自己管理型MySQLデータベースに部分的なデータを移行するにはどうすればよいですか。

データ移行タスクを設定する場合、ビジネス要件に基づいて、ソースオブジェクト セクションで移行するオブジェクトを選択するか、[選択済みオブジェクト] セクションでオブジェクトをフィルタリングできます。 MySQLデータベース間でデータを移行する操作も同様です。 詳細については、「自己管理型MySQLデータベースからApsaraDB RDS For MySQLインスタンスへのデータの移行」をご参照ください。

同じAlibaba Cloudアカウント内のApsaraDB RDSインスタンス間でデータを移行するにはどうすればよいですか。

DTSは、ApsaraDB RDSインスタンス間のデータ移行と同期をサポートします。 詳細については、「データ移行シナリオの概要」をご参照ください。

データ移行タスクが開始されると、ソースデータベースのIOPSアラートが報告されます。 この場合、ソースデータベースの安定性を確保するにはどうすればよいですか?

DTSタスクが進行中の場合、次のいずれかの方法を使用して、ソースデータベースの負荷が高い場合にDTSタスクがソースデータベースに与える影響を軽減できます。

  1. ソースインスタンスの仕様をアップグレードします。

  2. 最初にDTSタスクを一時停止し、ソースデータベースの負荷が減少した後にタスクを再開します。

  3. DTSタスクの同期または移行率を下げます。 移行率を調整する方法の詳細については、「完全データ移行の調整の有効化」をご参照ください。

データ移行タスクにtestという名前のデータベースを選択できないのはなぜですか?

システムデータベースは移行できません。 移行用の自己管理データベースを選択できます。

ソースデータベースがPolarDB-X 1.0データベースであるデータ移行インスタンスのレイテンシが表示されないのはなぜですか。

ソースデータベースがPolarDB-X 1.0データベースであるDTSタスクは、分散タスクです。 DTSによって監視されるメトリックは、サブタスクにのみ存在します。 したがって、ソースデータベースがPolarDB-X 1.0データベースであるDTSインスタンスには、レイテンシは表示されません。 インスタンスIDをクリックしてインスタンスの詳細ページに移動し、[タスク管理] ページの [サブタスクの詳細] タブでインスタンスのレイテンシを表示できます。

MongoDBインスタンスからデータを移行できないのはなぜですか。

これは、移行するデータベースがローカルデータベースまたはadminデータベースであるためです。 MongoDBインスタンスのローカルデータベースまたはadminデータベースからデータを移行することはできません。

マルチテーブル結合タスクでエラーDTS-071001が報告されるのはなぜですか?

このエラーは、マルチテーブル結合タスクの進行中に、ソースデータベースに対してオンラインDDL操作を実行するために発生します。 ソースデータベースのテーブルスキーマなどのオブジェクトは変更しますが、ターゲットデータベースの対応するオブジェクトは変更しません。

以前のバージョンのDTSコンソールでタスクを設定するときにホワイトリストを設定できない場合はどうすればよいですか?

新しいバージョンのDTSコンソールでタスクを設定できます。

ソースデータベースでDDL操作が実行されているためにデータ移行タスクが失敗した場合はどうすればよいですか。

ターゲットデータベースで同じDDL操作を実行し、タスクを再起動できます。 データ移行中にオブジェクトに対してオンラインDDL操作を実行するために、pt-online-schema-changeなどのツールを使用しないことを推奨します。 そうしないと、データ移行が失敗する可能性があります。 DTSのみを使用してターゲットデータベースにデータを書き込む場合、DMSを使用して、データ移行中にオンラインDDL操作を実行できます。

DDL操作がターゲットデータベースで実行されているためにデータ移行タスクが失敗した場合はどうすればよいですか。

増分データ移行中に、移行先データベースまたは移行先データベースのテーブルが削除された場合、データ移行タスクは失敗します。 タスクを再構成することができ、タスクの失敗の原因となるデータベースまたはテーブルを移行するオブジェクトとして選択しないでください。

リリース後にデータ移行タスクを再開できますか? タスクを再設定すると、データの一貫性を確保できますか?

データ移行タスクは、リリース後に再開できません。 データ移行タスクを再設定するときに、[フルデータ移行] を選択しないと、タスクのリリース後、新しいタスクの開始前に生成された増分データをターゲットデータベースに移行できません。 この場合、データの整合性を確保することができない。 ビジネスで高い精度が必要な場合は、移行先データベースから移行したデータを削除し、データ移行タスクを再構成できます。 タスクを再設定するときに、[タスクステージ] パラメーターに [スキーマ移行][増分データ移行] 、および [フルデータ移行] を選択します。

フルデータ移行タスクの進行状況が長期間変わらない場合はどうすればよいですか?

移行するテーブルにプライマリキーが含まれていない場合、完全なデータ移行は非常に遅くなります。 データ移行タスクを開始する前に、ソースデータベースから移行する各テーブルのプライマリキーを定義することをお勧めします。

同じ名前のソーステーブルから、ターゲットテーブルに存在しないデータだけを移行できますか?

はい。同じ名前のソーステーブルから、ターゲットテーブルに存在しないデータのみを移行できます。 DTSタスクを設定するときに、[競合テーブルの処理モード] パラメーターを [エラーを無視して続行] に設定できます。 完全データ移行中に、ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードの主キー値がターゲットデータベースの既存のデータレコードと同じである場合、このレコードはターゲットデータベースに移行されません。

Alibaba Cloudアカウント間でデータ移行タスクを設定するにはどうすればよいですか。

ソースインスタンスが属するAlibaba Cloudアカウントを使用してResource Access Management (RAM) 権限付与を設定し、次にターゲットインスタンスが属する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をクリックしてインスタンスの詳細ページに移動します。 [タスク管理] ページで、[スキーマ移行] タブをクリックして、詳細なエラーメッセージを表示し、エラーのトラブルシューティングを行います。 一般的なエラーのトラブルシューティングの詳細については、「一般的なエラーとトラブルシューティング」をご参照ください。

スキーマ移行または完全データ移行に対して課金されますか?

スキーマ移行または完全データ移行に対しては課金されません。 詳細については、「課金項目」をご参照ください。

ApsaraDB for Redisインスタンス間でデータを移行すると、ターゲットインスタンスでZSETタイプのデータが上書きされますか。

はい。ApsaraDB for 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インスタンスからデータを移行する場合、DTSはプライマリまたはセカンダリ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はソースデータベースのデータをターゲットデータベースにコピーします。 これは、ソースデータベースのデータには影響しません。

DTSを使用してRDSインスタンス間でデータを移行するときに、移行先データベースの名前を指定できますか。

はい、完全なデータ移行をスキップできます。 移行中に、DTSが提供するデータベース名マッピング機能を使用して、移行先データベースの名前を指定できます。 詳細については、「異なる名前のデータベース間でデータを同期または移行する」をご参照ください。

データ移行タスクでDTSがソースECSインスタンスに接続できない場合はどうすればよいですか。

ECSインスタンスのパブリックIPアドレスが利用できない場合があります。 elastic IPアドレス (EIP) をECSインスタンスに関連付け、再試行します。 EIPの関連付けの詳細については、「EIPの関連付けまたは関連付けの解除」をご参照ください。

DTSがApsaraDB for Redisインスタンス間でデータを移行するときにフルデータ同期が表示されないのはなぜですか。

増分データ移行が表示されます。 ApsaraDB for Redisインスタンス間のデータ移行でこのオプションを選択した場合、完全データ移行と増分データ移行の両方が実行されます。

完全なデータ移行をスキップできますか?

はい、完全なデータ移行をスキップできます。 完全データ移行をスキップすると、増分データ移行が続行されます。 ただし、エラーが発生する場合があります。 完全なデータ移行をスキップしないことを推奨します。

クラスターエディションのApsaraDB for RedisインスタンスをパブリックIPアドレス経由でDTSに接続できますか。

いいえ。スタンドアロンエディションのApsaraDB for Redisインスタンスは、パブリックIPアドレスを使用してDTSにのみ接続できます。

MySQL 8.0インスタンスからMySQL 5.6インスタンスにデータを移行する際に注意する必要がある項目は何ですか。

データ移行タスクを開始する前に、MySQL 5.6インスタンスにデータベースを作成する必要があります。 互換性を確保するために、ターゲットデータベースのバージョンがソースデータベースのバージョンと同じかそれ以降であることを確認してください。 ターゲットデータベースのバージョンがソースデータベースのバージョンよりも前の場合、データベースの互換性の問題が発生する可能性があります。

ソースデータベースからターゲットデータベースにアカウントを移行できますか?

アカウントは、ApsaraDB RDS for MySQLインスタンス間でのみ移行できます。

ターゲットデータベースがApsaraMQ for Kafkaインスタンスの場合、パラメーターを設定するにはどうすればよいですか。

ビジネス要件に基づいてパラメーターを設定します。 いくつかの特別なパラメーターを設定する方法の詳細については、「DTSタスクのターゲットインスタンスがApsaraMQ For Kafkaインスタンスの場合のパラメーターの設定」をご参照ください。

変更の追跡に関するFAQ

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デモを使用して追跡データを消費する」をご参照ください。

変更追跡タスクの数が制限を超えた場合に消費者オフセットをリセットするにはどうすればよいですか?

  1. SDKクライアントを使用するモードに基づいて、対応するコードファイル (DTConsumerAssignDemo. javaまたはDTConsumerSubscribeDemo. javaファイルなど) を開きます。

    説明

    詳細については、「SDKデモを使用して追跡データを消費する」をご参照ください。

  2. [変更トラッキング] ページの データ範囲 列で、変更トラッキングインスタンスのコンシューマオフセットをリセットできるデータ範囲を確認します。

  3. ビジネス要件に基づいて新しいコンシューマーオフセットを選択し、コンシューマーオフセットをUNIXタイムスタンプに変換します。

  4. 元のコンシューマーオフセットを新しいUNIXタイムスタンプに置き換えるには、コードファイルでinitCheckpointパラメーターを指定します。

  5. SDKクライアントを再起動します。

クライアントを使用してVPC経由で変更追跡タスクにアクセスできない場合はどうすればよいですか。

これは、クライアントがホストされているサーバーが、変更追跡タスクを設定したときに指定したVPCにない場合に発生する可能性があります。 たとえば、クライアントのVPCが変更されます。 この場合、変更追跡タスクを再構成する必要があります。

コンソールのコンシューマーオフセットの値がデータ範囲の最大値よりも大きいのはなぜですか?

変更追跡タスクのデータ範囲は1分ごとに更新されますが、コンシューマオフセットは10秒ごとに更新されます。 したがって、データをリアルタイムで消費する場合、消費者オフセットの値は、変更追跡タスクのデータ範囲の最大値よりも大きくなる可能性があります。

DTSは、SDKを使用して追跡されるデータが完全なトランザクションであることをどのように保証しますか?

DTSは、提供された消費者オフセットに基づいて、消費者オフセットに対応する完全なトランザクションを検索し、トランザクション全体のBEGINステートメントから下流にデータを配信します。 したがって、完全なトランザクションを受け取ることができます。

追跡されたデータが適切に消費されているかどうかを確認する方法

データが適切に消費されると、DTSコンソールに表示されるコンシューマーオフセットが前方に移動します。

変更追跡SDKコードでusePublicIp=trueは何を示しますか?

usePublicIpパラメーターをtrueに設定すると、SDKはインターネット経由でDTS変更追跡タスクにアクセスします。

変更追跡タスク用に設定されているソースRDSインスタンスのプライマリデータベースとセカンダリデータベースが切り替えられた場合、またはプライマリデータベースが再起動された場合、サービスは影響を受けますか。

いいえ、あなたのサービスは影響を受けません。 DTSは、プライマリデータベースとセカンダリデータベースを切り替えるか、ApsaraDB RDS for MySQLインスタンス、ApsaraDB RDS for PostgreSQLインスタンス、PolarDB for MySQLインスタンス、PolarDB for PostgreSQLインスタンス、またはストレージタイプがApsaraDB RDS for MySQLのPolarDB-X 1.0インスタンスでプライマリデータベースを再起動する場合に、変更に適応します。

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というエラーメッセージが表示される場合は、コンシューマーオフセットが増分データ収集モジュールのオフセット範囲内にあり、コンシューマークライアントが期待どおりに実行されていることを確認します。

トピックに複数のパーティションを作成できますか?

いいえ、トピックに複数のパーティションを作成することはできません。 メッセージのグローバルな順序を確保するために、DTSでは各トピックに対して1つのパーティションのみを作成できます。 トピックはパーティション0に割り当てられます。

その他

データ同期または移行タスクが進行中の場合に、ターゲットデータベースのデータを変更する場合の影響は何ですか。

  • データの同期または移行タスクが失敗する場合があります。 データの同期または移行中にターゲットデータベース内のオブジェクトに対して操作を実行すると、例外が発生する可能性があります。 たとえば、主キーの競合が発生したり、データレコードが更新されない場合があります。 この場合、データ同期または移行タスクが失敗する可能性があります。 データの同期や移行を中断しない操作を実行しても、タスクは影響を受けません。 たとえば、ターゲットデータベースにテーブルを作成し、そのテーブルにデータを書き込んだ場合、そのテーブルは移行または同期されるオブジェクトではないため、タスクは影響を受けません。

  • DTSは、ソースデータベースに関する情報を読み取り、完全データ、スキーマデータ、および増分データをターゲットデータベースに移行または同期します。 したがって、移行先データベース内のデータの変更は、移行または同期されたデータによって上書きされる可能性があります。

DTSインスタンスの使用中にソースデータベースまたはターゲットデータベースのパスワードを変更するとどうなりますか?

DTSはエラーを返し、インスタンスを停止します。 DTSコンソールにログインし、インスタンスIDをクリックしてインスタンスの詳細ページに移動します。 [基本情報] ページで、ソースまたはターゲットデータベースのアカウントとパスワードを変更できます。 次に、[タスク管理] ページに移動します。 [タスク管理] ページで、エラーが報告されたモジュールを見つけて、モジュールを再起動します。

パブリックIPアドレスを使用して一部のソースまたは宛先データベースに接続できないのはなぜですか。

接続タイプは、タスクタイプと、ソースデータベースまたはターゲットデータベースのタイプによって異なります。 たとえば、ソースデータベースとしてMySQLデータベースを選択した場合、データ同期タスクではなく、データ移行または変更追跡タスクのパブリックIPアドレスを使用してソースデータベースに接続できます。

DTSはクロスアカウントのデータ移行または同期をサポートしていますか?

はい。DTSは、アカウント間のデータ移行または同期をサポートしています。 詳細については、「Alibaba Cloudアカウント全体でDTSタスクを設定する」をご参照ください。

ターゲットデータベースがApsaraDB for RedisインスタンスにあるDTSタスクについて、次のエラーが報告されました。使用済みメモリ> 'maxmemory' の場合、OOMコマンドは許可されません。 なぜこれが起こるのですか?

このエラーは、ターゲットApsaraDB for Redisインスタンスのストレージ容量が不足していることが原因で発生する可能性があります。 ターゲットApsaraDB for Redisインスタンスがクラスターアーキテクチャを使用している場合、このエラーは、シャードのメモリ使用量が上限に達したために発生する可能性があります。 この場合、ApsaraDB for 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サフィックスで終わるのはなぜですか?

  1. 初期スキーマ同期。

    DTSは、ソースデータベースからMaxComputeに必要なオブジェクトのスキーマを同期します。 初期スキーマ同期中に、DTSはソーステーブル名の末尾に_baseサフィックスを追加します。 たとえば、ソーステーブルの名前がcustomerの場合、MaxComputeのテーブルの名前はcustomer_baseです。

  2. 初期の完全データ同期。

    DTSは、ソースデータベースのテーブルの履歴データをMaxComputeのターゲットテーブルに同期します。 たとえば、ソースデータベースの顧客テーブルは、MaxComputeのcustomer_baseテーブルに同期されます。 データは、その後の増分同期の基礎となる。

    説明

    _baseで接尾辞が付けられた宛先テーブルは、フルベースラインテーブルと呼ばれます。

  3. 増分データ同期。

    DTSは、MaxComputeに増分データテーブルを作成します。 増分データテーブルの名前には、customer_logなどの_logが付いています。 次に、DTSは、ソースデータベースで生成された増分データを増分データテーブルに同期します。

    説明

    詳細については、「増分データテーブルのスキーマ」をご参照ください。

Kafkaトピックに関する情報を入手できない場合はどうすればよいですか?

これは、Kafkaブローカーにトピック情報が存在しないためです。 次のコマンドを実行して、Kafkaブローカー間のトピックの分布を確認できます。

. /bin/kafka-topics.sh-説明-zookeeper zk01:2181/kafka-トピックtopic_name

RDSインスタンスのセカンダリデータベースとしてローカルMySQLインスタンスを作成できますか?

はい。DTSのデータ移行機能を使用して、RDSインスタンスからローカルMySQLインスタンスにリアルタイムでデータを移行できます。 MySQLインスタンスをRDSインスタンスのセカンダリデータベースとして使用できます。

RDSインスタンスから新しく作成されたRDSインスタンスにデータをレプリケートするにはどうすればよいですか。

DTSのデータ移行機能を使用できます。 データ移行タスクを設定するときは、移行タイプとして、スキーマ移行、フルデータ移行、および増分データ移行を選択します。 詳細については、「ApsaraDB RDSインスタンス間のデータ移行」をご参照ください。

RDSインスタンスのデータベース名を除いて、別のデータベースと同じデータベースをレプリケートできますか?

はい。DTSでは、オブジェクト名マッピング機能を使用して、RDSインスタンスのデータベース名を除いて別のデータベースと同じデータベースを複製できます。

DTSインスタンスで常にレイテンシが発生する場合はどうすればよいですか。

以下の原因により、DTSインスタンスで常にレイテンシが発生する場合があります。

  • 異なるアカウントを使用して、ソースインスタンスに複数のDTSタスクを作成しました。 その結果、ソースインスタンスの負荷が高くなります。 同じアカウントを使用してDTSタスクを作成することを推奨します。

  • 移行先インスタンスのメモリが不足している可能性があります。 ビジネスを整理し、ターゲットインスタンスを再起動します。 問題が解決しない場合は、移行先インスタンスをアップグレードするか、プライマリ-セカンダリの切り替えを実行します。

    説明

    切り替え中に、ネットワーク接続が中断される可能性があります。 アプリケーションがインスタンスに自動的に再接続できることを確認します。

以前のバージョンのDTSコンソールでデータを同期先データベースに同期または移行した後、フィールドが小文字の場合はどうすればよいですか。

新しいバージョンのDTSコンソールでタスクを設定し、ターゲットデータベースのオブジェクト名の大文字化を指定します。 詳細については、「ターゲットインスタンスのオブジェクト名の大文字化の指定」をご参照ください。

タスクが一時停止された後、DTSタスクを再開できますか?

ほとんどの場合、24時間以内に一時停止されたDTSタスクを適切に再開できます。 データ量が少ない場合、7日以内に一時停止されたDTSタスクを再開できます。 6時間以上タスクを一時停止しないことをお勧めします。

タスクを一時停止してから再起動した後、タスクの進行状況が0から始まるのはなぜですか。

タスクが再起動された後、DTSは再び送信されたデータを照会し、残りのデータの処理を続行します。 このプロセス中、タスクの進行状況は、レイテンシのために実際の状況と異なる場合があります。

ロックフリーDDLの原理は何ですか?

ロックフリーDDL操作の原理の詳細については、「概要」トピックの「ロックフリースキーマ変更プロセス」を参照してください。

テーブルのデータ同期または移行を一時停止できますか?

いいえ、テーブルのデータ同期または移行を一時停止することはできません。

DTSはRedis 7.0をサポートしていますか?

ApsaraDB for Redis V7.0のインスタンスは、ターゲットインスタンスとしてのみサポートされます。

タスクが失敗した場合、タスクを再度購入する必要がありますか?

いいえ、タスクを再設定できます。

複数のタスクが同じターゲットデータベースにデータを書き込むとどうなりますか?

これにより、データの不一致が発生する可能性があります。

インスタンスの更新後も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コンソールの右下隅にあるjiqirenイメージの上にポインターを移動し、返回旧版アイコンをクリックすると、以前のバージョンのDTSコンソールに移動できます。

DTSは暗号化をサポートしていますか?

いいえ、DTSは暗号化をサポートしていません。

ApsaraDB for ClickHouseインスタンスをソースまたはターゲットインスタンスとして設定できますか?

いいえ。ApsaraDB for ClickHouseインスタンスをソースまたはターゲットインスタンスとして設定することはできません。

AnalyticDB for MySQL V2.0クラスターをソースまたはターゲットインスタンスとして設定できますか?

AnalyticDB for MySQL V2.0クラスターは、ターゲットインスタンスとしてのみ設定できます。 操作は、以前のバージョンのDTSコンソールでのみ実行できますが、新しいバージョンのDTSコンソールでは実行できません。AnalyticDB for MySQL

DTSコンソールで新しく作成したタスクを表示できないのはなぜですか。

誤ったリソースグループを選択したり、タスクのフィルタ条件を設定したりすることがあります。 タスクの正しいフィルター条件を設定します。 たとえば、上部のナビゲーションバーで正しいリージョンとリソースグループを選択します。资源组

データ検証タスクでデータの不整合が発生するのはなぜですか。

次の原因により、データ検証タスクでデータの不整合が発生することがあります。

  1. データ移行または同期タスクで遅延が発生します。

  2. 既定値の列がソースデータベースに追加され、タスクでレイテンシが発生します。

  3. DTS以外のツールを使用して、ターゲットデータベースにデータを書き込みます。

  4. DDL操作は、マルチテーブルマージ機能が有効になっているタスクのソースデータベースで実行されます。

  5. データ移行またはデータ同期タスクでは、オブジェクト名マッピング機能が有効になります。

作成したタスクのグレーの設定項目を変更できますか?

いいえ、作成したタスクのグレー設定項目を変更することはできません。

レイテンシーのアラートとしきい値を設定するにはどうすればよいですか。

DTSは、DTSタスクのモニタリングおよびアラート機能を提供します。 DTSコンソールで重要なメトリックのアラートルールを設定して、DTSタスクをリアルタイムで監視できます。 詳細については、「モニタリングとアラートの設定」をご参照ください。

長期間前に発生したタスクの失敗の原因を確認できますか?

いいえ、長期間前に発生したタスクの失敗の原因を確認することはできませんか? タスクが7日前などの長期間前に失敗した場合、関連するログは消去されます。 この場合、失敗の原因を確認することはできません。

長期間前に失敗したタスクを再開できますか?

いいえ、長期間前に失敗したタスクを再開することはできません。 タスクが7日前などの長期間前に失敗した場合、関連するログは消去されます。 この場合、タスクを再設定する必要があります。

rdsdt_dtsacctアカウントとは何ですか?

rdsdt_dtsacctアカウントを作成しない場合、アカウントはDTSによって作成される可能性があります。 DTSは、一部のデータベースインスタンスにrdsdt_dtsacctという名前の組み込みデータベースアカウントを作成して、ソースおよびターゲットデータベースインスタンスに接続します。

ヒープテーブル、主キーのないテーブル、圧縮テーブル、およびSQL Serverデータベースの計算列を含むテーブルに関する情報を表示するにはどうすればよいですか。

次のSQL文を実行して、ソースデータベースにこれらの種類のテーブルが含まれているかどうかを確認できます。

  1. 次のSQL文を実行してヒープテーブルをチェックします。

    SELEC T 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'AN D s.name NOT IN ('cdc', 'sys') AND t.object_id IN IN ('systranschemas'=FROM; WHERE indexes) 。
  2. 次のSQL文を実行して、主キーのないテーブルをチェックします。

    SELEC T 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'AN D s.name NOT IN ('cdc', 'sys') AN D t.name NOT IN ('systranschemas') AND t. object_IN (SELEstr_PKid_PK'PAject_RE_type ') オブジェクト'); Wobject_type 'オブジェクトの' オブジェクト。
  3. 次のSQL文を実行して、クラスター化インデックス列に含まれていない主キー列をチェックします。

    SELEC T 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 WHERE t.type='U'AN D s.name NOT IN('cdc', 'sys') AN NOT_IN ('FROM CT. object_csic. iscic. object_id列) IN (SELECT. object_sic. select.) sys.indexes sis WHERE sic.object_id= sis.object_id AND sic.index_id= sis.index_id AND sis.is_primary_key= 'true') pk_columns LEFT JOIN (SELECT sic.object_id、sic.column_id FROM sys.index_columns sic、sys.index sis WHERE sic.object_id= sis.object_id AND sic.index_id= sis.index_id AND. index_id= sis.index_id AND. index_id= 1) cluster_colums ON pk_columns.object_id= cluster_colums.object_id WHERE pk_columns.column_id != cluster_colums.column_id);
  4. 次のSQL文を実行して、圧縮テーブルをチェックします。

    SELEC 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' A D s.name NOT IN ('cdc', 'sys') A D t.name NOT IN ('systranschemas') AND t.object_id! =0;
  5. 次のSQL文を実行して、計算列を持つテーブルをチェックします。

    SELEC T 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'AN D s.name NOT IN ('cdc' 、'sys') AN D t.name NOT IN ('systranschemas') AND t.object_id IN (SELE_RE=FROM) 列) 。

ソースデータベースとターゲットデータベースのスキーマに矛盾がある場合はどうすればよいですか。

オブジェクト名マッピング機能を使用して、ソースデータベースの列をターゲットデータベースの列にマッピングできます。 詳細については、「マップオブジェクト名」をご参照ください。

説明

列のタイプは変更できません。

オブジェクト名マッピング機能を使用して列のタイプを変更できますか?

いいえ、オブジェクト名マッピング機能を使用して列の型を変更することはできません。

ソースデータベースの読み取り速度を制限できますか?

いいえ、ソースデータベースの読み取り速度を制限することはできません。 タスクを開始する前に、IOPSとネットワーク帯域幅がソースデータベースの要件を満たしているかどうかなど、ソースデータベースのパフォーマンスを評価する必要があります。 オフピーク時にタスクを実行することを推奨します。

シャードクラスタアーキテクチャにデプロイされたMongoDBデータベースの孤立したドキュメントを削除するにはどうすればよいですか。

孤立したドキュメントが存在するかどうかを確認する

  1. mongoシェルを使用して、シャードクラスターアーキテクチャにデプロイされたMongoDBデータベースに接続します。

    ApsaraDB For MongoDBシャードクラスターインスタンスへの接続方法の詳細については、「mongo shellを使用したApsaraDB for MongoDBシャードクラスターインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、ターゲットMongoDBデータベースに切り替えます。

    <db_name>
    の使用
  3. 次のコマンドを実行して、孤立したドキュメントに関する情報を表示します。

    db.<coll_name>.find().explain("executionStats")
    説明

    各シャードのexecutionStatsSHARDING_FILTERステージのchunkSkipsフィールドの値を表示します。 値が0でない場合、孤立したドキュメントは対応するシャードに存在します。

    次の応答は、FETCHステージで102のドキュメントが返されることを示します。 次に、2つの孤立したドキュメントがSHARDING_FILTERステージでフィルタリングされ、100のドキュメントが返されます。

    "stage" : "SHARDING_FILTER" 、"nReturned" : 100、......
    "chunkSkips" : 2、"inputStage" : {
        "stage" : "FETCH" 、
        "nReturned" : 102、

    SHARDING_FILTERステージの詳細については、「MongoDBマニュアル」をご参照ください。

孤立したドキュメントの削除

重要

複数のMongoDBデータベースがある場合は、各MongoDBデータベースから孤立したドキュメントを削除する必要があります。

ApsaraDB for MongoDB インスタンス
説明

クリーンアップスクリプトを実行して、メジャーバージョンが4.0.6より前のApsaraDB for MongoDBインスタンス、またはマイナーバージョンが4.2より前のApsaraDB for MongoDBインスタンスから孤立したドキュメントを削除すると、エラーが発生します。 ApsaraDB For MongoDBインスタンスの現在のバージョンを表示する方法については、「ApsaraDB for MongoDBのマイナーバージョンのリリースノート」をご参照ください。 ApsaraDB For MongoDBインスタンスのマイナーバージョンまたはメジャーバージョンを更新する方法については、「ApsaraDB for MongoDBインスタンスのメジャーバージョンのアップグレード」および「ApsaraDB for MongoDBインスタンスのマイナーバージョンの更新」をご参照ください。

孤立したドキュメントを削除するには、cleanupOrphanedコマンドが必要です。 このコマンドの実行方法は、MongoDBデータベースのバージョンによって異なります。

MongoDB 4.4以降
  1. シャードクラスターインスタンスに接続できるサーバー上に、cleanupOrphaned.jsという名前のJavaScriptスクリプトファイルを作成します。

    説明

    このスクリプトは、複数のシャード内の複数のデータベース内のすべてのコレクションから孤立したドキュメントを削除するために使用されます。 特定のコレクションから孤立したドキュメントを削除する場合は、スクリプトファイルの一部のパラメーターを変更できます。

    // シャードの名前。
    var shardNames = ["shardName1", "shardName2"];
    // 孤立したドキュメントを削除するデータベース。
    var databasesToProcess = ["database1", "database2", "database3"];
    
    shardNames.forEach (関数 (shardName) {
        // 指定されたデータベースをトラバースします。
        databasesToProcess.forEach(function(dbName) {
            var dbInstance = db.getSiblingDB(dbName);
            // 指定されたデータベースのすべてのコレクションの名前を取得します。
            var collectionNames = dbInstance.getCollectionNames();
            
            // すべてのコレクションを横断します。
            collectionNames.forEach (関数 (collectionName) {
                // 完全なコレクション名。
                var fullCollectionName = dbName + "." + collectionName;
                // cleanupOrphanedコマンドをビルドします。
                varコマンド={
                    runCommandOnShard: shardName、
                    コマンド: { cleanupOrphaned: fullCollectionName}
                };
    
                // cleanupOrphanedコマンドを実行します。
                var result = db.adminCommand (コマンド); 
                if (result.ok) {
                    印刷 ("コレクションのクリーンアップされた孤立したドキュメント" + fullCollectionName + "on shard" + shardName);
                    printjson(result);
                } else {
                    print("コレクションの孤立したドキュメントのクリーンアップに失敗しました" + fullCollectionName + "on shard" + shardName);
                }
            });
        });
    });

    スクリプトファイルのshardNamesおよびdatabasesToProcessパラメーターを変更する必要があります。 次の内容は、2つのパラメータについて説明します。

    • shardNames: 孤立したドキュメントを削除するシャードのID。 IDは、シャードクラスターインスタンスの [基本情報] ページの [シャードリスト] セクションで表示できます。 例: d-bp15a3796d3a ****

    • databasesToProcess: 孤立したドキュメントを削除するデータベースの名前。

  2. cleanupOrphaned.jsスクリプトファイルが格納されているディレクトリで次のコマンドを実行します。

    mongo -- host <Mongoshost> -- port <Primaryport> -- authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js > output.txt

    次の表に、構成可能なパラメーターを示します。

    パラメーター

    説明

    <モンゴショスト>

    シャードクラスターインスタンスのmongosノードのエンドポイント。 形式: s-bp14423a2a51 **** .mongodb.rds.aliyuncs.com

    <Primaryport>

    シャードクラスターインスタンスのmongosノードのポート番号。 デフォルト値: 3717

    <データベース>

    データベースアカウントが属するデータベースの名前。

    <username>

    データベースアカウント。

    <パスワード>

    データベースアカウントのパスワードを設定します。

    output.txt

    実行結果を格納するために使用されるoutput.txtファイル。

MongoDB 4.2およびそれ以前
  1. シャードクラスターインスタンスに接続できるサーバー上に、cleanupOrphaned.jsという名前のJavaScriptスクリプトファイルを作成します。

    説明

    このスクリプトは、複数のシャード内の孤立したドキュメントをデータベース内の特定のコレクションから削除するために使用されます。 複数のコレクションから孤立したドキュメントを削除する場合は、スクリプトファイルのfullCollectionNameパラメーターを変更して、スクリプトを複数回実行できます。 または、すべてのコレクションをトラバースするようにスクリプトファイルを変更できます。

    関数cleanupOrphanedOnShard(shardName, fullCollectionName) {
        var nextKey = { };
        var result;
    
        while ( nextKey != null ) {
            varコマンド={
                runCommandOnShard: shardName、
                コマンド: { cleanupOrphaned: fullCollectionName, startingFromKey: nextKey}
            };
    
            result = db.adminCommand (コマンド);
            printjson(result);
    
            if (result.ok != 1 | | !(result.results.hasOwnProperty(shardName)) | | | result.results[shardName].ok! =1 ) {
                print("Unable to complete at this time: failure or timeout.")
                break
            }
    
            nextKey = result.results[shardName].stoppedAtKey;
        }
    
        print("cleanupOrphaned done for coll: " fullCollectionName "on shard: " shardName)
    }
    
    var shardNames = ["shardName1", "shardName2", "shardName3"]
    var fullCollectionName = "database.collection"
    
    shardNames.forEach (関数 (shardName) {
        cleanupOrphanedOnShard(shardName、fullCollectionName);
    }); 

    スクリプトファイルのshardNamesパラメーターとfullCollectionNameパラメーターを変更する必要があります。 次の内容は、2つのパラメータについて説明します。

    • shardNames: 孤立したドキュメントを削除するシャードのID。 IDは、シャードクラスターインスタンスの [基本情報] ページの [シャードリスト] セクションで表示できます。 例: d-bp15a3796d3a ****

    • fullCollectionName: このパラメーターは、孤立したドキュメントを削除するコレクションの名前に置き換える必要があります。 形式: database name.collection name

  2. cleanupOrphaned.jsスクリプトファイルが格納されているディレクトリで次のコマンドを実行します。

    mongo -- host <Mongoshost> -- port <Primaryport> -- authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.js > output.txt

    次の表に、構成可能なパラメーターを示します。

    パラメーター

    説明

    <モンゴショスト>

    シャードクラスターインスタンスのmongosノードのエンドポイント。 形式: s-bp14423a2a51 **** .mongodb.rds.aliyuncs.com

    <Primaryport>

    シャードクラスターインスタンスのmongosノードのポート番号。 デフォルト値: 3717

    <データベース>

    データベースアカウントが属するデータベースの名前。

    <username>

    データベースアカウント。

    <パスワード>

    データベースアカウントのパスワードを設定します。

    output.txt

    実行結果を格納するために使用されるoutput.txtファイル。

自己管理型 MongoDB データベース
  1. 自己管理型MongoDBデータベースに接続できるサーバーにcleanupOrphaned.jsスクリプトファイルをダウンロードします。

    wget " https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120562/cn_zh/1564451237979/cleanupOrphaned.js "
  2. cleanupOrphaned.jsファイルのtestを、孤立したドキュメントを削除するデータベースの名前に置き換えます。

    重要

    複数のデータベースから孤立したドキュメントを削除する場合は、手順2と手順3を繰り返します。

  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 -- ポート27018 -- authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
    mongo -- host 172.16.1.11 -- ポート27021 -- authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
    mongo -- host 172.16.1.12 -- ポート27024 -- authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js

トラブルシューティング

孤立したドキュメントの名前空間にアイドルカーソルが存在する場合、削除は失敗する可能性があり、対応する孤立したドキュメントに対して次のmongodログが記録されます。

DATABASE.COLLECTION範囲 [{ KEY: VALUE1 }, { KEY: VALUE2 }) の削除は、依存する可能性のあるすべてのクエリが終了した後にスケジュールされます

mongoシェルを使用してmongodプロセスに接続し、次のコマンドを実行して、現在のシャードにアイドルカーソルが存在するかどうかを確認できます。 アイドルカーソルが存在する場合は、restart mongodまたはkillCursorsコマンドを実行して、すべてのアイドルカーソルをクリアします。 次に、孤立したドキュメントをもう一度削除します。 詳細については、「Open cursors can block cleanupOrphaned」をご参照ください。

db.getSiblingDB("admin").aggregate( [{ $currentOp : { allUsers: true, idleCursors: true } } }{ $match : { type: "idleCursor" } }] )

シャードクラスタアーキテクチャにデプロイされたMongoDBデータベースのデータが均等に分散されていない場合はどうすればよいですか。

バランサーを有効にして事前シャーディングを実行すると、ほとんどのデータが単一のシャードに書き込まれる問題を効果的に解決できます。

balancerの有効化

balancerが無効になっている場合、またはbalancerの指定されたアクティブな時間ウィンドウに達していない場合は、balancerを有効にするか、balancerの時間ウィンドウを一時的にキャンセルできます。 このようにして、データ配布のバランスをすぐに取ることができます。

  1. シャードクラスタアーキテクチャにデプロイされたMongoDBデータベースに接続します。

  2. mongosノードに接続した後、mongoシェルで次のコマンドを実行して、configデータベースに切り替えます。

    設定の使用
  3. ビジネス要件に基づいて次の操作を実行します。

    • 次のコマンドを実行して、balancer を有効にします。

      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() 」、および「シャードクラスターのチャンクの分割」をご参照ください。

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() コマンドを実行して、事前シャーディングの結果を確認できます。