MySQL、MariaDB、Percona、TDSQL-C MySQL、TDSQL BoundlessからTencent CloudデータベースTDSQL MySQLへの同期の要件と手順は、TDSQL MySQLからTDSQL MySQLへの同期の内容とほぼ同じです。関連内容を参照して操作してください。 現在は差分項目のみを表示しています。
1. MySQL/MariaDB/PerconaからTDSQL MySQLへの同期リンクにおける、パーティションテーブルのマッピング説明は以下の通りです:
1.1 ユーザーがテーブルタイプマッピングを持っていない場合、デフォルトで主キーをシャードキーとして選択し、シャード方法はhashです。複合主キーの場合は、最初の主キーをシャードキーとして選択します。
1.1.1 ソース側で作成したパーティションテーブルは、ターゲット側のTDSQL MySQLパーティションテーブル作成仕様に準拠する必要があります(例えば、shardkeyフィールドの型はint/bigint/smallint/char/varcharである必要があり、shardkeyフィールドの型がchar/varcharの場合はフィールド長を定義する必要があり、shardkeyに中国語を使用することはできません)。また、全量および増分段階のパーティションルールもすべてターゲット側の要件を満たす必要があります。そうでない場合、同期エラーが発生します。
1.1.2 ソースデータベースの主キー型がDTSによるマッピング変換後、ターゲットデータベースのシャードキー型の要件(シャードキーはint、bigint、smallint、char、varcharである必要があります)を満たさない場合、単一テーブルとして作成されます。
1.2 パーティションテーブルのマッピングについて、現在は1次パーティションのhash、range、listのみをサポートし、主キーをパーティションキーとして使用します。パーティションタイプが指定されていない場合、デフォルトでhashを使用して1次パーティションマッピングを行います。
1.2.1 1次Range/Listパーティションにマッピングする場合、ターゲットデータベースがサポートするパーティションキーのデータ型はTINYINT、SMALLINT、MEDIUMINT、INT (INTEGER)、BIGINT、CHAR、VARCHARです。Range/Listパーティションを設定する場合、パーティションポリシーがソース側の全量+増分のすべてのデータをカバーできることを保証する必要があります。そうでない場合、データをパーティションルールに従って書き込むことができず、タスクエラーが発生します。
1.2.2 1次Hashパーティションにマッピングする場合、パーティションキーは主キーおよび一意インデックスの一部である必要があります。ターゲットデータベースがサポートするパーティションキーのデータ型はSMALLINT、INT (INTEGER)、BIGINT、CHAR、VARCHARです。
1.3 ソース側のMySQL/MariaDB/Perconaがシャードテーブルの場合、ターゲット側のTDSQL MySQLに同期した後は、単一テーブルとしてのみ作成できます。
2. MySQL/MariaDB/PerconaからTDSQL MySQLへの同期シナリオでは、ターゲット側TDSQL MySQLのシャードテーブルとブロードキャストテーブルにおける自動増分フィールドの制限により、ソース側の対応する制限は以下の通りです:
2.1 ソース側では、ALTER TABLE MODIFY AUTO_INCREMENT構文を使用して通常のフィールドをAUTO_INCREMENTに変更することはサポートされていません。同様に自動増分フィールドAUTO_INCREMENTを変更する操作がある場合、同期タスクはエラーを報告します。
2.2 ソース側のテーブルに自動増分列がある場合、自動増分列は主キー列である必要があります。そうでない場合、同期タスクはエラーを報告します。