TiCDC 互換性

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

TiDB Lightningとの互換性

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

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

  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 を通じて書き込まれた後続の増分データを複製するための変更フィードを作成します。詳細については、 レプリケーションタスクを作成する参照してください。

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

  • TiCDC v4.0.0 では、 ignore-txn-commit-tsが削除され、start_ts を使用してトランザクションをフィルター処理するignore-txn-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サーバーと直接対話できます。3 --serverを使用して TiCDCサーバーのアドレスを指定できます--pdは非推奨です。
  • v6.4.0 以降では、権限SYSTEM_VARIABLES_ADMINまたはSUPER持つ changefeed のみが 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ツールを使用して作成された changefeed を削除します。たとえば、 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 の場合にのみ発生します。3 他の 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これは、changefeed 構成項目であり、 fileソーターとunifiedソーターの一時ファイル ディレクトリを指定します。これらのバージョンでは、 fileソーターとunifiedソーターは実験的機能であり、本番環境には推奨されません

複数の changefeed がunifiedソーターをsort-engineとして使用する場合、実際の一時ファイル ディレクトリはいずれかの changefeed のsort-dir構成になる可能性があり、各 TiCDC ノードに使用されるディレクトリは異なる場合があります。
本番環境でunifiedソーターを使用することは推奨されません。
v4.0.12、v4.0.13、v5.0.0、および v5.0.1changefeed またはcdc serverの設定項目です。デフォルトでは、 changefeed のsort-dir構成は有効にならず、 cdc serversort-dir構成はデフォルトで/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正しく構成されていることを確認してください。
cdc serverコマンドラインパラメータ (またはTiUP) を使用してsort-dir構成する必要があります。
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構成は無効になります。
cdc serverコマンドラインパラメータ (またはTiUP) を使用してdata-dir構成する必要があります。
v6.0.0以降のバージョンdata-dir 、TiCDC によって生成された一時ファイルを保存するために使用されます。v6.0.0 以降、TiCDC はデフォルトでソート エンジンとしてdb sorter使用します。3 data-dirこのエンジンのディスク ディレクトリです。cdc serverコマンドラインパラメータ (またはTiUP) を使用してdata-dir構成する必要があります。

一時テーブルとの互換性

v5.3.0 以降、TiCDC はグローバル一時テーブルサポートします。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=trueパラメータをsink-urlに追加すると、TiCDC は書き込み前にベクター データ型をLONGTEXT型に変換できるようになります。

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