📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiCDCとの互換性



このセクションでは、TiCDCに関連する互換性の問題と、それらの対処方法について説明します。

TiCDCの新アーキテクチャとTiDBクラスタ間の互換性

TiCDCの新しいアーキテクチャは、TiDBクラスタv7.5.0以降をサポートしています。 互換性に関する特別な注意事項については、を参照してください。 。

TiDB Lightningとの互換性

TiDB Lightning 論理インポートモード物理輸入モードモードという 2 つのデータ インポート モードを提供します。このセクションでは、これらのモードと TiCDC の互換性、およびクラスター内でTiDB Lightningと TiCDC を一緒に使用する手順について説明します。

論理インポートモードでは、 TiDB Lightning はSQL ステートメントを実行してデータをインポートします。このモードは TiCDC と互換性があります。TiDB Lightning の論理インポートモードを TiCDC でデータレプリケーションに使用するには、次の手順を実行します。

  1. チェンジフィードを作成します。詳細については、 レプリケーションタスクを作成する参照してください。
  2. TiDB Lightningを起動し、論理インポート モードを使用してデータをインポートします。詳細については、 論理インポートモードを使用する参照してください。

物理インポートモードでは、 TiDB Lightning はSST ファイルを TiKV に挿入することでデータをインポートします。TiCDC はこのモードと互換性がなく、物理インポートモードでインポートされたデータの複製をサポートしていません。TiDB Lightning の物理インポートモードと TiCDC の両方を使用する必要がある場合は、ダウンストリームシステムに基づいて、以下のいずれかのソリューションを選択してください。

  • ダウンストリームがTiDBクラスタである場合は、以下の手順を実行してください。

    1. データの一貫性を確保するため、 TiDB Lightningを使用してデータをアップストリームとダウンストリームの両方のTiDBクラスタにインポートしてください。
    2. 変更フィードを作成して、SQL を通じて書き込まれた後続の増分データをレプリケートします。詳細については、 レプリケーションタスクを作成する参照してください。
  • ダウンストリームがTiDBクラスタでない場合は、以下の手順を実行してください。

    1. TiDB Lightningの入力ファイルをインポートするには、ダウンストリームシステムが提供するオフラインインポートツールを使用してください。
    2. 変更フィードを作成して、SQL を通じて書き込まれた後続の増分データをレプリケートします。詳細については、 レプリケーションタスクを作成する参照してください。

TiFlashとの互換性

現在、TiCDC を使用してテーブルを下流の TiDB クラスタにレプリケートする場合、テーブルのTiFlashレプリカを作成することはサポートされていません。つまり、TiCDC は、次のようなTiFlash関連の DDL ステートメントのレプリケートをサポートしていません。

  • ALTER TABLE table_name SET TIFLASH REPLICA count;
  • ALTER DATABASE db_name SET TIFLASH REPLICA count;

以前のバージョンからのアップグレードに関する互換性に関する注意事項

TiCDCは、上流の変更データおよび関連インターフェースを提供するために、TiDB、TiKV、およびPDに依存しています。TiDBおよび関連コンポーネントは進化を続けており、これらのデータ形式やインターフェースも変更される可能性があります。例えば、TiDBの並列DDLや高速テーブル作成などの機能は、関連するロジックやデータ処理ワークフローを変更する可能性があり、TiCDCはそれに応じた対応が必要となります。そのため、従来のTiCDCアーキテクチャでは、バージョンをまたいだTiDB/TiKV/PD混在環境における公式な前方互換性または後方互換性は保証されません。TiCDCの新しいアーキテクチャでは、v7.5.0以降のTiDBクラスタとの後方互換性が提供されます。

TiCDCクラシックアーキテクチャのアップグレードに関する推奨事項

TiCDC をクラシックアーキテクチャから新しいアーキテクチャにアップグレードする前に、すべての変更フィードを一時停止します。詳細については、 TiCDC新アーキテクチャアップグレードガイドを参照してください。

アップグレードが、両方ともクラシックアーキテクチャを使用する TiCDC デプロイメント間で行われる場合、マイナーバージョン間のローリングアップグレードがサポートされます。ただし、メジャーバージョン間のアップグレード (たとえば、v8.5.0 -> v8.5.3 はマイナーバージョンアップグレード、v8.1.x -> v8.5.x はメジャーバージョンアップグレード) の場合、 TiDB クラスタのローリングアップグレード中にチェンジフィードを実行し続けることは推奨されません。メジャーバージョンアップグレードの場合は、次の手順を順番に実行してください。

  1. すべての変更フィードを一時停止します。
  2. TiDBクラスタに対してローリングアップグレードを実行します。
  3. アップグレード完了後、すべての変更フィードを再開してください。

例えば、クラスターをv8.5.4からv8.5.5にアップグレードする場合、 TiUPを使用してクラスターを管理している場合は、以下のコマンドを参照してください。以下の例ではlinux-amd64を使用しています。他のプラットフォームの場合は、環境に合わせてパッケージ名のプラットフォーム情報を置き換えてください。

# 1. Pause all changefeeds. Run this command once for each changefeed. tiup cdc:v8.5.4 cli changefeed pause \ --server=http://<ticdc-host>:8300 \ --changefeed-id=<changefeed-id> # 2. Perform a rolling upgrade on the TiDB cluster. tiup cluster upgrade <cluster-name> v8.5.5 # 3. Resume all changefeeds after the upgrade is complete. # Run this command once for each changefeed. tiup cdc:v8.5.5 cli changefeed resume \ --server=http://<ticdc-host>:8300 \ --changefeed-id=<changefeed-id>

TiCDC新アーキテクチャ向けアップグレード推奨事項

TiCDCの新しいアーキテクチャは、 TiDBのローリングアップグレード中に変更フィードの実行を継続できますが、そのためには、アップグレード前にTiCDCが既に新しいアーキテクチャを使用している場合に限ります。

TiCDC クラシック アーキテクチャと新しいアーキテクチャの間でアップグレードまたは切り替える必要がある場合は、 アップグレードガイド参照してください。

CLIと設定ファイルの互換性

  • TiCDC v4.0.0では、 ignore-txn-commit-tsが削除され、 ignore-txn-start-tsが追加されました。これはstart_tsを使用してトランザクションをフィルタリングします。
  • TiCDC v4.0.2 では、 db-dbs / db-tables / ignore-dbs / ignore-tablesが削除され、 rulesが追加されました。これは、データベースとテーブルに新しいフィルタルールを使用します。フィルタ構文の詳細については、テーブルフィルター参照してください。
  • TiCDC v6.2.0 以降、 cdc cliは TiCDC Open API を介して TiCDCサーバーと直接やり取りし、PD へのアクセスは不要です。 --pdサブコマンドのcdc cliパラメータは非推奨となり、TiCDCサーバーアドレスを指定するために--serverパラメータが追加されました。 --server --pd } を使用してください。
  • バージョン6.4.0以降、 SYSTEM_VARIABLES_ADMINまたはSUPERの権限を持つチェンジフィードのみがTiCDC Syncpoint機能を使用できます。

互換性の問題に対処する

このセクションでは、TiCDCに関連する互換性の問題と、それらの対処方法について説明します。

TiCDC v5.0.0-rc cdc cliツールを使用してv4.0.xクラスタを操作すると、互換性の問題が発生します。

TiCDC v5.0.0-rc のcdc cliツールを使用して v4.0.x TiCDC クラスターを操作する場合、次のような異常な状況が発生する可能性があります。

  • TiCDC クラスターが v4.0.8 以前のバージョンである場合、v5.0.0-rc cdc cliツールを使用してレプリケーション タスクを作成すると、クラスターの異常が発生し、レプリケーション タスクが停止する可能性があります。

  • TiCDC クラスターが v4.0.9 以降のバージョンである場合、v5.0.0-rc cdc cliツールを使用してレプリケーション タスクを作成すると、古い値と統合ソーター機能がデフォルトで予期せず有効になります。

解決策:

TiCDCクラスタのバージョンに対応するcdc実行可能ファイルを使用して、以下の操作を実行します。

  1. v5.0.0-rc cdc cliツールを使用して作成された変更フィードを削除します。たとえば、 tiup cdc:v4.0.9 cli changefeed remove -c xxxx --pd=xxxxx --forceコマンドを実行します。
  2. レプリケーションタスクが停止している場合は、TiCDCクラスタを再起動してください。たとえば、 tiup cluster restart <cluster_name> -R cdcコマンドを実行します。
  3. 変更フィードを再作成します。たとえば、 tiup cdc:v4.0.9 cli changefeed create --sink-uri=xxxx --pd=xxxコマンドを実行します。

注記:

この問題は、 cdc cliが v5.0.0-rc の場合にのみ発生します。他の v5.0.x バージョンのcdc cliツールは、v4.0.x クラスターと互換性があります。

sort-dirdata-dirの互換性に関する注意事項

sort-dir設定は、TiCDC ソーターの一時ファイルディレクトリを指定するために使用されます。その機能はバージョンによって異なる場合があります。次の表はsort-dirバージョン間の互換性の変更点を示しています。

バージョンsort-engine機能注記おすすめ
v4.0.11 またはそれ以前の v4.0 バージョン、v5.0.0-rcこれはチェンジフィード構成項目であり、 fileソーターとunifiedソーターの一時ファイルディレクトリを指定します。これらのバージョンでは、 fileソーターとunifiedソーターは実験的機能であり、本番環境での使用は推奨されません

複数のチェンジフィードがunifiedソーターをsort-engineとして使用する場合、実際の一時ファイルディレクトリは、いずれかのチェンジフィードのsort-dir構成になる可能性があり、各TiCDCノードで使用されるディレクトリは異なる可能性があります。
unifiedソーターを本番環境で使用することは推奨されません。
v4.0.12、v4.0.13、v5.0.0、および v5.0.1これは、changefeed またはcdc serverの構成項目です。デフォルトでは、変更フィードのsort-dir設定は有効にならず、 sort-dircdc server設定は/tmp/cdc_sortにデフォルト設定されます。本番環境ではcdc serverのみを設定することをお勧めします。

TiUPを使用してTiCDCをデプロイする場合は、最新のTiUPバージョンを使用し、TiCDCサーバー構成でsorter.sort-dirを設定することをお勧めします。

unifiedソーターは、v4.0.13、v5.0.0、v5.0.1 でデフォルトで有効になっています。クラスターをこれらのバージョンにアップグレードする場合は、TiCDCサーバー構成でsorter.sort-dir正しく構成されていることを確認してください。
sort-dir cdc serverコマンドラインパラメータ (またはTiUP) を使用して設定する必要があります。
v4.0.14以降、v4.0バージョン、v5.0.3以降、v5.0バージョン、それ以降のTiDBバージョンsort-dirは非推奨です。 data-dirを設定することをお勧めします。最新バージョンのTiUPを使用してdata-dirを構成できます。これらの TiDB バージョンでは、 unifiedソーターがデフォルトで有効になっています。クラスターをアップグレードする際は、 data-dir正しく構成されていることを確認してください。そうでない場合、 /tmp/cdc_dataデフォルトで一時ファイル ディレクトリとして使用されます。

ディレクトリが配置されているデバイスのstorage容量が不足している場合、ハードディスクの空き容量不足の問題が発生する可能性があります。この場合、changefeed の以前のsort-dir設定は無効になります。
data-dir cdc serverコマンドラインパラメータ (またはTiUP) を使用して設定する必要があります。
v6.0.0以降のバージョンdata-dir TiCDC によって生成された一時ファイルを保存するために使用されます。バージョン6.0.0以降、TiCDCはデフォルトでdb sorterソートエンジンとして使用します。 data-dirはこのエンジンのディスクディレクトリです。data-dir cdc serverコマンドラインパラメータ (またはTiUP) を使用して設定する必要があります。

一時テーブルとの互換性

TiCDC は v5.3.0 以降、 グローバル一時テーブルをサポートしています。 v5.3.0 より前のバージョンの TiCDC を使用してグローバル一時テーブルをダウンストリームにレプリケートすると、テーブル定義エラーが発生します。

アップストリームクラスタにグローバル一時テーブルが含まれている場合、ダウンストリームのTiDBクラスタはv5.3.0以降のバージョンである必要があります。そうでない場合、レプリケーション処理中にエラーが発生します。

ベクトルデータ型との互換性

v8.4.0 以降、TiCDC は、自動 ベクトルデータ型ストリームへのテーブルの複製をサポートします (実験的)。

ダウンストリームがKafkaまたはstorageサービス(Amazon S3、GCS、Azure Blob Storage、NFSなど)の場合、TiCDCはダウンストリームに書き込む前にベクトルデータ型を文字列型に変換します。

ダウンストリームがベクトルデータ型をサポートしないMySQL互換データベースである場合、TiCDCはベクトル型を含むDDLイベントをダウンストリームに書き込むことができません。この場合、 has-vector-type=truesink-urlパラメータを追加してください。これにより、TiCDCは書き込み前にベクトルデータ型をLONGTEXT型に変換できます。

このページは役に立ちましたか?