このドキュメントでは、PolarDB-X が返す一般的なエラーコードとその解決策を示します。
TDDL-1305 ERR_UNKNOWN_SAVEPOINT
TDDL-1094 ERR_UNKNOWN_THREAD_ID
TDDL-4007 ERR_CANNOT_FETCH_TABLE_META
TDDL-4018 ERR_INVALID_DDL_PARAMS
TDDL-4100 ERR_ATOM_NOT_AVALILABLE
TDDL-4101 ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON
TDDL-4102 ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON
TDDL-4103 ERR_ATOM_CONNECTION_POOL_FULL
TDDL-4104 ERR_ATOM_CREATE_CONNECTION_TOO_SLOW
TDDL-4105 ERR_ATOM_ACCESS_DENIED
TDDL-4108 ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW
TDDL-4200 ERR_GROUP_NOT_AVALILABLE
TDDL-4201 ERR_GROUP_NO_ATOM_AVALILABLE
TDDL-4202 ERR_SQL_QUERY_TIMEOUT
TDDL-4203 ERR_SQL_QUERY_MERGE_TIMEOUT
TDDL-4403 ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB
TDDL-4404 ERR_SEQUENCE_TABLE_META
TDDL-4405 ERR_INIT_SEQUENCE_FROM_DB
TDDL-4407 ERR_OTHER_WHEN_BUILD_SEQUENCE
TDDL-4408 ERR_SEQUENCE_NEXT_VALUE
TDDL-4502 ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT
TDDL-4504 ERR_OPTIMIZER_SELF_CROSS_JOIN
TDDL-4506 ERR_MODIFY_SHARD_COLUMN
TDDL-4508 ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN
TDDL-4509 ERR_OPTIMIZER_ERROR_HINT
TDDL-4510 ERR_CONTAINS_NO_SHARDING_KEY
TDDL-4511 ERR_INSERT_CONTAINS_NO_SHARDING_KEY
TDDL-4515 ERR_CONNECTION_CHARSET_NOT_MATCH
TDDL-4517 ERR_MODIFY_SYSTEM_TABLE
TDDL-4520 ERR_DML_WITH_SUBQUERY
TDDL-4523 ERR_TODNF_LIMIT_EXCEED
TDDL-4524 ERR_TOCNF_LIMIT_EXCEED
TDDL-4526 ERR_FUNCTION_NOT_FOUND
TDDL-4527 ERR_MODIFY_SHARD_COLUMN_ON_TABLE_WITHOUT_PK
TDDL-4603 ERR_ACCROSS_DB_TRANSACTION
TDDL-4604 ERR_CONCURRENT_TRANSACTION
TDDL-4610 ERR_CONNECTION_CLOSED
TDDL-4614 ERR_EXECUTE_ON_MYSQL
TDDL-4616 ERR_UNKNOWN_DATABASE
TDDL-4620 ERR_FORBID_EXECUTE_DML_ALL
TDDL-4633 ERR_DB_STATUS_READ_ONLY
TDDL-4709 ERR_IVENTORY_HINT_NOT_SUPPORT_CROSS_SHARD
TDDL-5002 ERR_TRANS_UNSUPPORTED
TDDL-5008 ERR_TRANS_TERMINATED
TDDL-5010 ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL
TDDL-5108 ERR_CHECK_PRIVILEGE_FAILED_ON_TABLE
TDDL-5119 ERR_FILE_CANNOT_BE_CREATE
TDDL-5302 ERR_GLOBAL_SECONDARY_INDEX_UNSUPPORTED
TDDL-5306 ERR_GLOBAL_SECONDARY_INDEX_INSERT_DUPLICATE_VALUES
TDDL-5308 ERR_GLOBAL_SECONDARY_INDEX_MODIFY_UNIQUE_KEY
TDDL-5310 ERR_GLOBAL_SECONDARY_INDEX_ONLY_SUPPORT_XA
TDDL-5313 ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_WITH_DDL
TDDL-5316 ERR_GLOBAL_SECONDARY_INDEX_INDEX_AND_SHARDING_COLUMNS_NOT_MATCH
TDDL-5317 ERR_GLOBAL_SECONDARY_INDEX_CONTINUE_AFTER_WRITE_FAIL
TDDL-5321 ERR_GLOBAL_SECONDARY_INDEX_BACKFILL_DUPLICATE_ENTRY
TDDL-8011 ERR_OUT_OF_SPILL_SPACE
TDDL-8103 ERR_NO_NODES_AVAILABLE
TDDL-9301 ERR_DUPLICATED_PARTITION_NAME
TDDL-9305 ERR_PARTITION_NAME_NOT_EXISTS
TDDL-10004 ERR_X_PROTOCOL_RESULT
TDDL-1305 ERR_UNKNOWN_SAVEPOINT
説明:指定された名前の SAVEPOINT は存在しません。
例:
ERR-CODE: [TDDL-1305][ERR_UNKNOWN_SAVEPOINT] SAVEPOINT ***** does not exist
詳細:PolarDB-X で PolarDB-X
ROLLBACK TO SAVEPOINT
コマンドまたはRELEASE SAVEPOINT
コマンドを実行すると、指定された SAVEPOINT 名が存在しない場合、TDDL-1305 エラーが表示されます。SAVEPOINT コマンドによって返される名前が使用している名前と一致するかどうかを確認することをお勧めします。
TDDL-1094 ERR_UNKNOWN_THREAD_ID
説明:KILL コマンドで指定されたセッション ID は存在しません。
例:
ERR-CODE: [TDDL-1094][ERR_UNKNOWN_THREAD_ID] Unknown thread id: *****
詳細:実行中の SQL 文をキャンセルするために PolarDB-X
KILL
コマンドを実行すると、指定されたセッション ID が存在しない場合、または対応する SQL 文がすでに実行を完了している場合、TDDL-1094 エラーが表示されます。SHOW PROCESSLIST
コマンドを使用して、実行中の SQL 文のセッション ID を表示し、返された ID に対してのみKILL
コマンドを実行することをお勧めします。
TDDL-4006 ERR_TABLE_NOT_EXIST
説明:PolarDB-X データテーブルは存在しません。
例:
ERR-CODE: [TDDL-4006][ERR_TABLE_NOT_EXIST] Table '*****' doesn't exist.
詳細:このエラーコードは、PolarDB-X データテーブルが存在しないか、不明な理由で PolarDB-X がデータテーブルのメタデータ情報を読み込めないことを示します。
TDDL-4007 ERR_CANNOT_FETCH_TABLE_META
説明:PolarDB-X はデータテーブルのメタデータ情報を読み込めません。
例:
ERR-CODE: [TDDL-4007][ERR_CANNOT_FETCH_TABLE_META] Table '*****' metadata cannot be fetched because Table '*****.*****' doesn't exist.
詳細:このエラーコードは、PolarDB-X がデータテーブルのメタデータ情報の読み取りに失敗したことを示します。考えられるエラー原因は次のとおりです。
データテーブルが作成されていません。
管理されているメタデータベース情報に不整合があります。
テーブルが削除または名前変更されました。
このエラーが発生した場合は、まずテーブル名が存在するかどうかを確認するか、
check table
コマンドを実行して、PolarDB-X によって管理されているメタデータベース情報に整合性があるかどうかを確認します。テーブルが手動で削除または名前変更されたと判断した場合は、PolarDB-X が提供するデータ復旧機能を使用して修復できます。それでも修復できない場合は、テクニカルサポートにお問い合わせください。
TDDL-4018 ERR_INVALID_DDL_PARAMS
説明:PolarDB-X DDL プロセスの実行に失敗しました。
例:
ERR-CODE: [TDDL-4018][ERR_INVALID_DDL_PARAMS] invalid '*****'. // 無効な '*****'。
詳細:このエラーは、ユーザーが実行した DDL のパラメーターにエラーがあることを示します。パラメーターの正しさを確認してください。パラメーターが正しいことを確認した場合は、テクニカルサポートにお問い合わせください。
TDDL-4100 ERR_ATOM_NOT_AVALILABLE
説明:PolarDB-X バックエンドデータノードは一時的に使用できません。
例:
ERR-CODE: [TDDL-4100][ERR_ATOM_NOT_AVALILABLE] Atom : ***** isNotAvailable
詳細:PolarDB-X は、バックエンドデータノードのステータスが異常であることを検出すると、そのインスタンスへのアクセスを一時的にブロックし、TDDL-4100 エラーを表示します。
このエラーが発生した場合は、PolarDB-X のすべてのバックエンドデータノードが異常かどうかを確認してください。バックエンドデータノードが異常状態から回復すると、PolarDB-X は自動的に使用不可ステータスを解除し、アプリケーションアクセスを正常に復元します。
TDDL-4101 ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON
説明:PolarDB-X 計算ノードとデータノード間の接続の取得に失敗しました。
例:
ERR-CODE: [TDDL-4101][ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON] Get connection for db '*****' from pool failed. AppName:*****, Env:*****, UnitName:null. Message from pool: wait millis 5000, active 0, maxActive 5. // プールからデータベース '*****' への接続の取得に失敗しました。AppName:*****、Env:*****、UnitName:null。プールからのメッセージ: wait millis 5000、active 0、maxActive 5。真の原因が記述されている次のログを確認する必要があります。
詳細:PolarDB-X は、リクエストを処理するときにデータノードへの接続を非同期で作成します。待機時間内にデータノード接続の作成を完了できず、非同期タスクがまだエラーの理由を返していない場合、PolarDB-X はアプリケーションに TDDL-4101 エラーを返します。
このエラーは通常、バックエンドデータノードの異常が原因で発生します。データノードの問題を除外した後もエラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4102 ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON
説明:PolarDB-X バックエンド接続の取得は既知の理由で失敗しました。
例:
ERR-CODE: [TDDL-4102][ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON] Get connection for db '*****' failed because wait millis 5000, active 0, maxActive 5
詳細:PolarDB-X 計算ノードがデータノードへの接続を取得していたときにエラーが発生し、ERR-CODE メッセージにエラーの理由が示されています。PolarDB-X データノード接続の失敗の一般的な理由は次のとおりです。
バックエンドデータノードの接続がいっぱいです
計算ノードからデータノードへの接続タイムアウト
データノードが接続を拒否しました
バックエンドデータノードの問題を除外した後も TDDL-4102 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
Tddl-4103 ERR_ATOM_CONNECTION_POOL_FULL
説明:PolarDB-X バックエンドデータノード接続プールがいっぱいです。
例:
ERR-CODE: [TDDL-4103][ERR_ATOM_CONNECTION_POOL_FULL] Pool of DB '*****' is full. Message from pool: wait millis 5000, active 5, maxActive 5. AppName:*****, Env:*****, UnitName:null.
詳細:このエラーは、PolarDB-X バックエンド接続プールがいっぱいであることを示します。TDDL-4103 エラーの一般的な原因は次のとおりです。
アプリケーションの SQL 文の実行が遅く、単一の接続を長時間占有しているため、接続が不足しています。
アプリケーション側がデータベース接続を閉じていないため、接続リークが発生しています。
多くのクロスデータベースクエリ(集計統計クエリ、データベースシャーディング条件のないクエリなど)が同時に実行され、多くの接続を占有しています。
推奨される解決策は次のとおりです。
Spring JDBC、MyBatis などのフレームワークを使用してデータベースにアクセスしてみてください。
パフォーマンス分析レポートと DBA の推奨事項に従って、ビジネス SQL 文を最適化します。
PolarDB-X 読み取り/書き込み分離を使用して、クロスデータベースクエリを読み取りデータベースに転送して処理します。
より高い仕様の PolarDB-X にアップグレードして、バックエンド処理機能を強化します。
テクニカルサポートに連絡して、PolarDB-X バックエンド接続の数を調整します。
TDDL-4104 ERR_ATOM_CREATE_CONNECTION_TOO_SLOW
説明:PolarDB-X バックエンドデータノード接続の作成が遅すぎます。
例:
ERR-CODE: [TDDL-4104][ERR_ATOM_CREATE_CONNECTION_TOO_SLOW] Get connection for db '*****' from pool timeout. AppName:*****, Env:*****, UnitName:null. Message from pool: wait millis 5000, active 3, maxActive 5.
詳細:PolarDB-X がバックエンドデータノードへの接続を非同期で作成するときに、短時間で多くの接続が作成される場合、またはデータノードが接続を確立するのが遅すぎる場合、待機タイムアウトが発生する可能性があります。この問題は通常、バックエンドデータノードの過剰な負荷または異常が原因で発生します。PolarDB-X 読み取り/書き込み分離を使用するか、より高い仕様にアップグレードして、バックエンドの処理負荷を軽減することをお勧めします。
バックエンドデータノードの問題を除外した後もエラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。短時間で多くの接続を作成することが原因で問題が発生した場合は、テクニカルサポートに連絡して PolarDB-X 接続の最小数を調整することをお勧めします。
TDDL-4105 ERR_ATOM_ACCESS_DENIED
説明:PolarDB-X バックエンドデータノードが接続の作成を拒否しました。
例:
ERR-CODE: [TDDL-4105][ERR_ATOM_ACCESS_DENIED] DB '*****' Access denied for user '*****'@'*****'. AppName:*****, Env:*****, UnitName:null. // ユーザー '*****'@'*****' の DB '*****' へのアクセスが拒否されました。AppName:*****、Env:*****、UnitName:null。DBA に確認を依頼してください。
詳細:このエラーは、ユーザー名とパスワードを使用してデータノードに接続しようとすると、PolarDB-X のアクセスが拒否されたことを示します。テクニカルサポートにお問い合わせください。
TDDL-4106 ERR_ATOM_DB_DOWN
説明:PolarDB-X バックエンドデータノードに接続できません。
例:
ERR-CODE: [TDDL-4106][ERR_ATOM_DB_DOWN] DB '*****' cannot be connected. AppName:*****, Env:*****, UnitName:null. /* DBがダウンしている可能性が非常に高いようです。 DBAに連絡して確認してください。 */
詳細:このエラーは、バックエンドデータノードへの接続の作成時に、PolarDB-X がタイムアウトしたか、応答を受信しなかったことを示します。このエラーの通常の原因は、データノードの障害です。テクニカルサポートにお問い合わせください。
TDDL-4108 ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW
説明:変数を NULL に設定することはできません。
例:
ERR-CODE: [TDDL-4108][ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW] // システム変数 ***** は現在 null に設定できません。
詳細:一部のデータノード変数は、
SET var = x
文を使用して NULL に設定することはできません。このような場合、PolarDB-X は TDDL-4108 エラーを表示します。
TDDL-4200 ERR_GROUP_NOT_AVALILABLE
説明:PolarDB-X 下の特定のデータノードは一時的に使用できません。
例:
ERR-CODE: [TDDL-4200][ERR_GROUP_NOT_AVALILABLE] TDDL グループ ***** は、フェイルファスト状態で実行されています。これは、致命的な例外 ***** をスローした次の SQL:***** が原因です。
詳細:データベースシャーディング内のデータノードでアクセス例外が発生し、データベースシャーディング下に他の使用可能なデータノードがない場合、PolarDB-X はデータベースシャーディングをフェイルファスト状態にして、TDDL-4200 エラーを表示します。
このエラーは通常、データノードの障害が原因で発生します。含まれているデータノードの例外情報に基づいて問題を特定し、解決してください。障害が発生したデータノードが回復すると、PolarDB-X は自動的にフェイルファスト状態をキャンセルします。
データノードの障害が解決した後も TDDL-4200 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4201 ERR_GROUP_NO_ATOM_AVALILABLE
説明:PolarDB-X データベースシャーディングに使用可能なデータノードが一時的にありません。
例:
ERR-CODE: [TDDL-4201][ERR_GROUP_NO_ATOM_AVALILABLE] グループ '*****' 内のすべての DB の重みが 0 です。重みは ***** です。
詳細:データベースシャーディングに含まれるすべてのデータノードが使用できないか、フェイルファスト状態の場合、PolarDB-X は TDDL-4201 エラーを表示します。
このエラーは通常、データノードの障害が原因で発生します。バックエンドデータノードのステータスを確認して、問題を特定し、解決してください。障害が解決した後も TDDL-4201 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4202 ERR_SQL_QUERY_TIMEOUT
説明:PolarDB-X クエリタイムアウト。
例:
ERR-CODE: [TDDL-4202][ERR_SQL_QUERY_TIMEOUT] Slow query leads to a timeout exception, please contact DBA to check slow sql. SocketTimout:*** ms, Atom:*****, Group:*****, AppName:*****, Env:*****, UnitName:null.
詳細:このエラーは、バックエンドデータノードでの SQL 文の実行時間が、PolarDB-X によって設定された socketTimeout パラメーターの制限を超えていることを示します。デフォルトの PolarDB-X タイムアウト(socketTimeout)は 900 秒に設定されています。
バックエンドデータノードで SQL 文を最適化し、適切なインデックスを作成して、SQL 文の実行パフォーマンスを向上させることをお勧めします。最適化された SQL 文がまだ遅い場合は、次の Hint 構文を参照して、PolarDB-X タイムアウトを一時的に設定できます。
/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;
。ここで、SOCKET_TIMEOUT はミリ秒単位で設定されます。PolarDB-X Hint の使用方法の詳細については、「SQL タイムアウトをカスタマイズする方法」をご参照ください。PolarDB-X タイムアウト設定を永続的に調整する必要がある場合は、テクニカルサポートにお問い合わせください。
TDDL-4203 ERR_SQL_QUERY_MERGE_TIMEOUT
説明:PolarDB-X 分散クエリタイムアウト。
例:
ERR-CODE: [TDDL-4203][ERR_SQL_QUERY_MERGE_TIMEOUT] Slow sql query leads to a timeout exception during merging results, please optimize the slow sql. The the default timeout is *** ms. DB is *****
詳細:PolarDB-X 分散クエリタイムアウト。デフォルトのタイムアウト設定は 900 秒です。TDDL-4203 エラーは、SQL 文が複数のデータベースシャーディングからデータをスキャンし、実行時間が 900 秒を超えたことを示します。
次の最適化をお勧めします。
WHERE 句にシャーディングキー条件を追加して、単一データベース実行用に SQL 文を最適化します。
バックエンドデータノードに適切なインデックスを作成できるかどうかを確認して、各データベースシャーディングからのデータのスキャンのパフォーマンスを向上させます。
分散クエリでクロスデータベース JOIN やデータの並べ替えなどの時間のかかる操作を排除して、PolarDB-X データマージフェーズでの消費を削減します。
最適化された SQL 文がまだ遅い場合は、次の Hint 構文を使用して、PolarDB-X タイムアウトを一時的に設定できます。
/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;
。ここで、SOCKET_TIMEOUT はミリ秒単位で設定されます。PolarDB-X Hint の使用方法の詳細については、「SQL タイムアウトをカスタマイズする方法」をご参照ください。
TDDL-4400 ERR_SEQUENCE
説明:シーケンス(グローバルに一意のシーケンス)の処理に失敗しました。
例:
ERR-CODE: [TDDL-4400][ERR_SEQUENCE] Sequence : All dataSource faild to get value!
詳細:シーケンスの処理エラー。
Sequence :
の後にエラーメッセージが表示されます。TDDL-4400 の一般的な原因は、データノードの障害であり、シーケンス関連のデータテーブルにアクセスできなくなります。まず、バックエンドデータノードのステータスを確認することをお勧めします。データノードの障害を除外した後も TDDL-4400 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4401 ERR_MISS_SEQUENCE
説明:シーケンスが存在しません。
例:
ERR-CODE: [TDDL-4401][ERR_MISS_SEQUENCE] Sequence '*****' is not found
詳細:コマンドで使用されているシーケンス名は存在しません。
SHOW SEQUENCES
コマンドを使用して、PolarDB-X にすでに作成されているすべてのシーケンス名を確認し、使用する正しいシーケンスを選択することをお勧めします。使用しているシーケンスがまだ存在しない場合は、次の文で作成できます。
CREATE SEQUENCE <シーケンス名> [ START WITH <数値> ] [ INCREMENT BY <数値> ] [ MAXVALUE <数値> ] [ CYCLE | NOCYCLE ]`
使用しているシーケンスがすでに存在するにもかかわらず、TDDL-4401 エラーが引き続き表示される場合は、テクニカルサポートにお問い合わせください。PolarDB-X シーケンスの使用方法の詳細については、「概要」をご参照ください。
TDDL-4403 ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB
説明:シーケンスで使用されるデータテーブルが存在しません。
例:
ERR-CODE: [TDDL-4403][ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB] /* Sequence テーブルがデフォルト DB にありません。 */
詳細:PolarDB-X バックエンドデータベースで sequence または sequence_opt という名前のデータテーブルにアクセスできません。テクニカルサポートにお問い合わせください。
TDDL-4404 ERR_SEQUENCE_TABLE_META
説明:シーケンスデータテーブルの構造エラー。
例:
ERR-CODE: [TDDL-4404][ERR_SEQUENCE_TABLE_META] the meta of sequence table is error, some columns missed // シーケンス テーブルのメタデータにエラーがあり、一部の列が欠落しています
詳細:シーケンス関連のデータテーブル(sequence や sequence_opt など)に対応するフィールドがありません。テクニカルサポートにお問い合わせください。
TDDL-4405 ERR_INIT_SEQUENCE_FROM_DB
説明:シーケンスの初期化エラー。
例:
ERR-CODE: [TDDL-4405][ERR_INIT_SEQUENCE_FROM_DB] init sequence manager error: *****
詳細:アクセスする必要のあるシーケンスの初期化中にエラーが発生しました。「init sequence manager error」の後にエラーメッセージが表示されます。まず PolarDB-X バックエンドデータノードのステータスを確認することをお勧めします。データノードの障害を除外した後も TDDL-4405 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4407 ERR_OTHER_WHEN_BUILD_SEQUENCE
説明:シーケンスデータテーブルへのアクセスエラー。
例:
ERR-CODE: [TDDL-4407][ERR_OTHER_WHEN_BUILD_SEQUENCE] error when build sequence: *****
詳細:シーケンス関連のデータテーブル(sequence や sequence_opt など)へのアクセス中にエラーが発生しました。「error when build sequence」の後にエラーメッセージが表示されます。
まず PolarDB-X バックエンドデータノードのステータスを確認することをお勧めします。データノードの障害を除外した後も TDDL-4407 エラーが引き続き発生する場合は、テクニカルサポートにお問い合わせください。
TDDL-4408 ERR_SEQUENCE_NEXT_VALUE
説明:シーケンス値の取得エラー。
例:
ERR-CODE: [TDDL-4408][ERR_SEQUENCE_NEXT_VALUE] error when get sequence's nextvalue: *****
注記: PolarDB-X の自動増分プライマリキーを使用する場合、または
<sequence name>.NEXTVAL
構文を使用して手動で GUID を取得する際にエラーが発生します。エラーメッセージの後には、エラーの原因が示されます。TDDL-4408 エラーは、バックエンド データノードのエラーが原因で発生します。PolarDB-X のバックエンド データノードのステータスとアクセス負荷を確認する必要があります。データノードのエラーを除外した後も TDDL-4408 エラーが続く場合は、テクニカルサポートに連絡してください。
TDDL-4500 ERR_PARSER
説明:SQL パースエラー。
例:
ERR-CODE: [TDDL-4500][ERR_PARSER] not support statement: '*****' // ステートメントがサポートされていません: '*****'
注: PolarDB-X は、SQL-92 標準に準拠した SQL 構文に加えて、MySQL でサポートされている構文拡張と関数もサポートしています。PolarDB-X と互換性のある SQL 標準および MySQL 仕様に、実行された SQL 文が準拠しているかどうかを確認してください。
標準 SQL 構文の詳細については、「SQL 標準構文」をご参照ください。 SQL 互換性の詳細については、「SQL 構文の制限」をご参照ください。 SQL 文が上記の構文ルールに準拠していても TDDL-4500 エラーが発生する場合は、テクニカルサポートに連絡してください。
TDDL-4501 ERR_OPTIMIZER
説明:SQL 最適化エラー。
例:
ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by: Unknown column '*****' in 'order clause' // order 句に不明なカラム '*****' があります
注: PolarDB-X オプティマイザーのジョブは、SQL 文を内部構文ツリーに変換することです。SQL 文に論理エラーがある場合、オプティマイザー変換は失敗し、TDDL-4501 エラーが発生します。
SQL 文の修正方法がわからない場合は、テクニカルサポートにお問い合わせください。
TDDL-4502 ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT
説明:ORDER BY 句のフィールドは SELECT リストに存在する必要があります。
例:
ERR-CODE: [TDDL-4502][ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT] Syntax Error: orderBy/GroupBy Column ***** is not existed in select clause`
注: SQL 文の ORDER BY 句に関数列 (RAND() など) が含まれている場合、PolarDB-X では、同じ関数列が SELECT 句にも含まれている必要があります。そうでない場合、TDDL-4502 エラーが表示されます。
対応する関数列を SELECT 句に追加できます。
TDDL-4504 ERR_OPTIMIZER_SELF_CROSS_JOIN
説明:同じテーブルのクロス結合はサポートされていません。
例:
ERR-CODE: [TDDL-4504][ERR_OPTIMIZER_SELF_CROSS_JOIN] self cross join case, add shard column filter on right table // セルフクロス結合の場合、右側のテーブルにシャード列フィルターを追加します
注: PolarDB-X は、WHERE 句に一方のテーブル(左または右)のシャーディング列条件のみが含まれている場合、同じテーブルで JOIN を実行すると TDDL-4504 エラーを表示します。
WHERE 句に左右両方のテーブルのシャーディング列条件を追加することで、これを解決できます。
TDDL-4506 ERR_MODIFY_SHARD_COLUMN
説明:シャーディングキーフィールドの変更はサポートされていません。
例:
ERR-CODE: [TDDL-4506][ERR_MODIFY_SHARD_COLUMN] Column '*****' is a sharding key of table '*****', which is forbidden to be modified. /* カラム「*****」はテーブル「*****」のシャーディングキーであるため、変更できません。 */
注記: これは、シャードキーの変更を禁止する異常な状態です。PolarDB-X は現在、GSI を含むテーブルのパーティションキーの変更を禁止しています。
対応する UPDATE 文を INSERT+DELETE 文に変更して、同じ効果を得ることができます。
TDDL-4508 ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN
説明:ソートマージ結合はサポートされていません。
例:
ERR-CODE: [TDDL-4508][ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN] sort merge join is not allowed when missing equivalent filter // 等価フィルターがない場合、ソートマージ結合は許可されません
説明: SQL 文で結合する必要があるデータテーブルが異なるデータノードからのものである場合、PolarDB-X は Sort-merge Join アルゴリズムを優先します。このアルゴリズムでは、JOIN の左テーブルと右テーブルにフィールドの等価結合条件が含まれている必要があります。そうでない場合、PolarDB-X は TDDL-4508 エラーを表示します。
JOIN 句または WHERE 句に適切な関連付け条件を追加することで、SQL 文を調整できます。
TDDL-4509 ERR_OPTIMIZER_ERROR_HINT
例:
ERR-CODE: [TDDL-4509][ERR_OPTIMIZER_ERROR_HINT] ヒント構文エラー: 予期しない操作: *****。
説明: このエラーは、SQL 文の Hint 構文が PolarDB-X によって解析できないことを示しています。 Hint 構文の詳細については、「HINT の使用方法」をご参照ください。
TDDL-4510 ERR_CONTAINS_NO_SHARDING_KEY
説明:SQL 文にシャーディングキー条件が含まれていません。
例:
ERR-CODE: [TDDL-4510][ERR_CONTAINS_NO_SHARDING_KEY] Your SQL contains NO SHARDING KEY '*****' for table '*****', which is not allowed in DEFAULT.
注記: 全表スキャン機能は無効になっています。 PolarDB-X は、テーブルの作成時にデフォルトで全表スキャン機能を有効にします。 全表スキャンを手動で無効にした場合は、このテーブルに関連するすべての SQL 文にシャードキー条件が追加されていることを確認することをお勧めします。
TDDL-4511 ERR_INSERT_CONTAINS_NO_SHARDING_KEY
説明:INSERT 文にシャーディングキーフィールドが含まれていません。
例:
ERR-CODE: [TDDL-4511][ERR_INSERT_CONTAINS_NO_SHARDING_KEY] Your INSERT SQL contains NO SHARDING KEY '*****' for table '*****'. // INSERT SQL にテーブル '*****' のシャーディングキー '*****' が含まれていません。
注: INSERT 文のターゲットが PolarDB-X シャーディングテーブルの場合、挿入されるデータにシャードキーの値を含める必要があります (シャードキーが自動増分プライマリキーである場合を除く)。 そうしないと、PolarDB-X は TDDL-4511 エラーを表示します。
このエラーが発生した場合は、INSERT 文を変更して、不足しているシャードキー値を追加できます。
TDDL-4515 ERR_CONNECTION_CHARSET_NOT_MATCH
説明:接続文字セットが一致しません。
例:
ERR-CODE: [TDDL-4515][ERR_CONNECTION_CHARSET_NOT_MATCH] Caused by MySQL's character_set_connection doesn't match your input charset. Partition DDL can only take ASCII or chinese column name. If you want use chinese table or column name, Make sure MySQL connection's charset support chinese character. Use "set names xxx" to set correct charset.
注: PolarDB-X は、中国語の文字を使用してテーブルとフィールドに名前を付けることをサポートしています。 中国語の文字を含む SQL 文を実行する場合、データベース接続の文字セット設定 (character_set_connection) が中国語 (latin1 など) をサポートしていないと、TDDL-4515 エラーが表示されます。
SHOW VARIABLES LIKE 'character_set_connection'
を使用して、MySQL クライアントの現在の接続文字セットをクエリし、SET NAMES
コマンドを使用して現在の接続文字セットを変更できます。Java プログラムで JDBC を使用して PolarDB-X に接続する場合は、データベース接続パラメーター characterEncoding を設定してください。
TDDL-4517 システムテーブルの変更エラー
説明: システムテーブルの変更は禁止されています。
例:
ERR-CODE: [TDDL-4617][ERR_MODIFY_SYSTEM_TABLE] /* テーブル '*****' は PolarDB-X システムテーブルであるため、変更できません。 */
注: PolarDB-X は、内部でいくつかのシステムテーブルを保持しています。SQL 文を使用してこれらのテーブルのデータを更新すると、TDDL-4517 エラーが発生します。制限されているシステムテーブルには、sequence、sequence_opt、txc_undo_log などがあります。ビジネスまたはデータベース設計でこれらのテーブル名を使用することは避けてください。
TDDL-4520 ERR_DML_WITH_SUBQUERY
説明: DML 文におけるサブクエリはサポートされていません。
例:
ERR-CODE: [TDDL-4520][ERR_DML_WITH_SUBQUERY] DO NOT support UPDATE/DELETE with subQuery
注: 現在、PolarDB-X は DML 文でのサブクエリをサポートしていません。この問題が発生した場合は、ビジネスの観点から SQL 文を書き直し、サブクエリを使用しないようにすることをお勧めします。
TDDL-4521 ERR_INSERT_SHARD
説明: 挿入プロセス中に、レコードは複数のシャードにルーティングされます。
例:
ERR-CODE: [TDDL-4521][ERR_INSERT_SHARD] /* 挿入するグループを決定できません */
注: 挿入プロセス中に、レコードが複数のシャードにルーティングされるため、どのシャードがレコードを受信する必要があるかを判断できません。 この問題が発生した場合は、テクニカルサポートに連絡してください。
TDDL-4524 ERR_TOCNF_LIMIT_EXCEED
説明: WHERE 句の後にあるフィルター条件が多すぎます。
ERR-CODE: [TDDL-4523][ERR_TODNF_LIMIT_EXCEED] toDnf has exceed the limit size
例:注: PolarDB-X は、ユーザー SQL のクエリ条件(WHERE 句)を CNF/DNF 条件標準形に変換し、条件の推論と最適化を実行します。最適化の安定性のために、条件の数は 2000 に制限されています。 DNF_REX_NODE_LIMIT パラメーターを増やすことができます。
TDDL-4526 ERR_FUNCTION_NOT_FOUND
説明: WHERE 句の後にあるフィルター条件が多すぎます。
例:
ERR-CODE: [TDDL-4524][ERR_TODNF_LIMIT_EXCEED] toCnf has exceed the limit size
注: PolarDB-X は、ユーザー SQL のクエリ条件(WHERE 句)を CNF/DNF 条件標準形に変換し、条件の推論と最適化を実行します。最適化の安定性を確保するために、条件の数は 2000 に制限されています。 CNF_REX_NODE_LIMIT パラメーターを増やすことができます。
TDDL-4527 ERR_MODIFY_SHARD_COLUMN_ON_TABLE_WITHOUT_PK
説明: この関数は呼び出しをサポートしていません。
例:
ERR-CODE: [TDDL-4526][ERR_FUNCTION_NOT_FOUND] 関数シグネチャが見つかりません
注: このエラーは、SQL 文で正しくない構文またはサポートされていない関数が使用されたことを示します。 SQL 文の関数呼び出し部分を注意深く確認し、正しい数と型の パラメーター を使用して関数を呼び出すことをお勧めします。
TDDL-4527 プライマリキーのないテーブルのシャード列変更エラー
説明: プライマリキーのないテーブルでは、データベース シャードキーの変更は許可されていません。
例:
ERR-CODE: [TDDL-4527][ERR_MODIFY_SHARD_COLUMN_ON_TABLE_WITHOUT_PK]
注: PolarDB-X は、現在、プライマリキーのないテーブルのデータベースシャードキーの変更を許可していません。
TDDL-4595 ERR_UNKNOWN_TZ
説明: 間違ったタイムゾーン設定。
例:
ERR-CODE: [TDDL-4595][ERR_UNKNOWN_TZ]
注: 時間の構文とフォーマットが正しく設定されているかどうかを確認する必要があります。
TDDL-4600 ERR_FUNCTION
説明: 関数の呼び出しが正しくありません。
例:
ERR-CODE: [TDDL-4600][ERR_FUNCTION] function compute error by Incorrect parameter count in the call to native function '*****'
注: このエラーは、SQL 文の関数が正しくない構文またはパラメーターで呼び出されたことを示します。SQL 文の関数呼び出し部分を注意深く確認し、正しい数と型のパラメーターで関数を呼び出す必要があります。
TDDL-4601 ERR_EXECUTOR
例:
ERR-CODE: [TDDL-4601][ERR_EXECUTOR] only one column is supported in distinct aggregate /* エラーコード: [TDDL-4601][ERR_EXECUTOR] distinct 集計では 1 つのカラムのみがサポートされています */
説明: SQL 実行中にエラーが発生しました。このエラーは、PolarDB-X が SQL 文を実行していたときに予期しない問題が発生したことを示します。このタイプのエラーは、通常、バックエンド RDS MySQL の異常なステータスに関連しています。
TDDL-4604 ERR_CONCURRENT_TRANSACTION
説明: 間違った型変換です。
例:
ERR-CODE: [TDDL-4602][ERR_CONVERTOR] convertor error by Unsupported convert: [*****]
注: このエラーは、PolarDB-X が SQL の実行時にデータ型の変換に失敗したことを示します。SQL 文に暗黙的な型変換が必要なデータが含まれているかどうかを確認し、比較と計算には同じデータ型を使用するようにしてください。
TDDL-4603 クロス DB トランザクションエラー
説明: クロスデータベース トランザクションが失敗しました。
例:
ERR-CODE: [TDDL-4603][ERR_ACCROSS_DB_TRANSACTION] Transaction accross db is not supported in current transaction policy, transaction node is: {0}, but this sql execute on: *****.
注: PolarDB-X は、デフォルトでクロスデータベース トランザクションをサポートしています。 他のトランザクション ポリシーが以前に設定されているかどうかを確認してください。
TDDL-4604 ERR_CONCURRENT_TRANSACTION
説明: ネストされたトランザクションが失敗しました。
例:
ERR-CODE: [TDDL-4604][ERR_CONCURRENT_TRANSACTION] Concurrent query is not supported on transaction group, transaction group is: {0}.
注: PolarDB-X はネストされたトランザクションをサポートしていません。同じデータベース接続で 2 つ以上のトランザクションを同時に開こうとすると、TDDL-4604 エラーが表示されます。
アプリケーション開発中はネストされたトランザクションの使用を避けるか、アプリケーション層トランザクションフレームワークを使用してネストされたトランザクションを回避することをお勧めします。
TDDL-4612 ERR_CHECK_SQL_PRIV
説明: 現在実行中の SQL 文はキャンセルされました。
例:
ERR-CODE: [TDDL-4606][ERR_QUERY_CANCLED] Getting connection is not allowed when query has been cancled, group is ***** // クエリがキャンセルされた場合、接続を取得することは許可されていません。グループは*****です。
注:
KILL
を使用して SQL ステートメントの実行をキャンセルすると、キャンセルされた SQL ステートメントはこのエラーを返します。 この状況が頻繁に発生する場合は、クライアントまたはプログラムが KILL コマンドを実行しているかどうかを確認してください。
TDDL-4614 ERR_EXECUTE_ON_MYSQL
説明: 接続が閉じられました。
例:
ERR-CODE: [TDDL-4610][ERR_CONNECTION_CLOSED] connection has been closed
注: トランザクション内の SQL 文が実行に失敗した場合、または
KILL
コマンドによってキャンセルされた場合、同じデータベース接続を使用して他の SQL 文を実行すると、TDDL-4610 エラーが発生します。このような状況では、接続を閉じて新しいデータベース接続を取得することをお勧めします。
TDDL-4612 ERR_CHECK_SQL_PRIV
説明: 権限が不十分なため、SQL 文を実行できません。
例:
ERR-CODE: [TDDL-4612][ERR_CHECK_SQL_PRIV] check user ***** on db ***** sql privileges failed.
注: PolarDB-X の新しいバージョンでは、MySQL アカウント権限システムと同様に、アカウント権限付与がサポートされています。対応する権限タイプを持つアカウントのみが SQL 文を実行できます。アカウントに十分な権限がない場合、PolarDB-X は TDDL-4612 エラーを表示します。
PolarDB-X でユーザーが所有する権限を確認できます。権限が不十分な場合は、PolarDB-X コンソールで設定できます。PolarDB-X のアカウントと権限設定の詳細については、「データベースアカウントを管理する」をご参照ください。
TDDL-4614 ERR_EXECUTE_ON_MYSQL
説明:DDL ジョブエラー。
例:
ERR-CODE: [TDDL-4614][ERR_EXECUTE_ON_MYSQL] Error occurs when execute on GROUP '*****': Duplicate entry '*****' for key 'PRIMARY' // PolarDB-X がバックエンド データノード データベースで SQL 文を実行するときにエラーが報告されます。メッセージの末尾には、データノードから返された元のエラーメッセージが含まれています。次に例を示します。 Duplicate entry '*****' for key 'PRIMARY' // これは、データノード テーブルへの書き込み時にプライマリキーの競合が発生したことを示します。 The table '*****' is full // これは、データノードで使用されている一時テーブルがいっぱいであることを示します。一時表領域を調整するか、SQL 文を最適化する必要があります。 Deadlock found when trying to get lock; // これは、データノードでデッドロックが発生したことを示します。通常、データの書き込み中に複数のトランザクションが競合することで発生します。
注: TDDL-4614 が提供する元のエラーメッセージに基づいて問題のトラブルシューティングを行うことをお勧めします。 SQL 文エラーメッセージの詳細については、「MySQL 5.6 ドキュメント」をご参照ください。 アプリケーションまたはデータノードの問題を解消した後も TDDL-4614 エラーが解決しない場合は、テクニカルサポートに連絡してください。
TDDL-4642 ERR_UNKNOWN_TABLE
説明: 間違ったデータベースです。
例:
ERR-CODE: [TDDL-4616][ERR_UNKNOWN_DATABASE] Unknown database '*****'
注: PolarDB-X では、DDL 文でデータベース名を指定できます。指定されたデータベース名が PolarDB-X から提供されたデータベース名と一致しない場合は、TDDL-4616 エラーが返されます。
DDL 文のデータベース名を PolarDB-X データベース名と一致するように変更することをお勧めします。
TDDL-4620 ERR_FORBID_EXECUTE_DML_ALL
説明: PolarDB-X は、where 条件のない削除操作と更新操作の実行を禁止します。
TDDL-4633 ERR_DB_STATUS_READ_ONLY
例:
ERR-CODE: [TDDL-4633][ERR_DB_STATUS_READ_ONLY] /* データベースは読み取り専用です。読み取りSQLのみがサポートされています。 */
説明: このエラーコードは、データベースが読み取り専用の権限を持っていることを示します。 現在のアカウントの権限が制限されているかどうかを確認できます。
TDDL-4636 ERR_DDL_JOB_ERROR
DDL 文の実行に失敗しました。
例:
ERR-CODE: [TDDL-4636][ERR_DDL_JOB_ERROR] xxxx
DDL 異常状態の処理方法詳細:このエラーは、 でフロー制御エラーが発生したことを示します。テクニカルサポートにお問い合わせください。
TDDL-4642 ERR_UNKNOWN_TABLE
このテーブルはデータベースに存在しません。
例:
ERR-CODE: [TDDL-4642][ERR_UNKNOWN_TABLE] Unknown table XX.XX
このテーブルが現在のデータベースに存在することを確認します。
TDDL-5001 ERR_TRANS
説明: 一時テーブルがメモリ制限を超えています。
例:
ERR-CODE: [TDDL-4707][ERR_OUT_OF_MEMORY]
注: データベースの安定性を確保するために、PolarDB-X はクエリごとの一時テーブルのメモリ使用量を制限しています。このエラーは、現在のクエリに大量のデータが含まれていることを示しています。SPILL を有効にするか、現在のクエリの 一時テーブル のメモリ制限を増やすことができます。
TDDL-5002 ERR_TRANS_UNSUPPORTED
例:
ERR-CODE: [TDDL-4709][ERR_IVENTORY_HINT_NOT_SUPPORT_CROSS_SHARD]
説明: ホットスポット フラッシュセール機能には、単一シャード トランザクションが必要です。このエラーは、複数のシャード トランザクションが関係している場合に発生します。ホットスポット機能が単一シャード トランザクションでのみ使用されるように、ビジネスロジックを調整できます。
TDDL-4994 ERR_FLOW_CONTROL
説明: フローが上限に達しました。
例:
ERR-CODE: [TDDL-4994][ERR_FLOW_CONTROL] [*****] flow control by *****
注: このエラーは、PolarDB-X が SQL リクエストを処理するための内部フロー制限に達し、現在のリクエストが拒否されたことを示します。 SQL リクエスト ボリュームに異常なピークがあるかどうかを確認する必要があります。 SQL リクエスト ボリュームが減少しているにもかかわらず、TDDL-4994 エラーが依然として頻繁に報告される場合は、テクニカルサポートに連絡してください。
TDDL-4998 ERR_NOT_SUPPORT
説明: サポートされていない機能です。
例:
ERR-CODE: [TDDL-4998][ERR_NOT_SUPPORT] ***** not support yet! // ***** はまだサポートされていません!
注: このエラーは、使用している SQL 構文または機能が PolarDB-X でまだサポートされていないことを示しています。これらの SQL 構文または機能が重要な場合は、テクニカルサポートに連絡できます。
TDDL-5008 ERR_TRANS_TERMINATED
説明: 一般的なトランザクションエラーです。
例:
ERR-CODE: [TDDL-5001][ERR_TRANS] Too many lines updated in statement. // 文で更新された行が多すぎます。
注: エラーメッセージ処理を参照してください。
Too many lines updated in statement
トランザクション内の UPDATE 文によって更新された行数が制限 (1000) を超えています。UPDATE 文の WHERE 条件を確認することをお勧めします。トランザクションでバッチ データ更新を実行する必要がある場合は、PolarDB-X
Hint/*TDDL:UNDO_LOG_LIMIT={number}*/
を使用して制限値を調整できます。Deferred execution is only supported in Flexible or XA Transaction
遅延実行機能は、フレキシブル トランザクション ポリシーと XA トランザクション ポリシーでのみアクティブです。PolarDB-X
Hint/*TDDL:DEFER*/
文を使用して遅延実行機能を送信する前に、SET drds_transaction_policy = ***
コマンドを使用して PolarDB-X トランザクション ポリシーを変更する必要があります。その他のエラー メッセージについては、テクニカル サポートに連絡してください。
TDDL-5002 ERR_TRANS_UNSUPPORTED
説明:グローバルセカンダリインデックスはサポートされていません。
例:
ERR-CODE: [TDDL-5002][ERR_TRANS_UNSUPPORTED] Table without primary keys is not supported.
注: この機能は、現在 PolarDB-X トランザクションではサポートされていません。この機能が重要な場合は、テクニカルサポートに連絡してください。
TDDL-5003 ERR_TRANS_LOG
説明: トランザクションログにアクセスできません。
例:
ERR-CODE: [TDDL-5003][ERR_TRANS_LOG] Failed to update transaction state: *****
注: 分散トランザクションの原子性を確保するために、PolarDB-X はトランザクション中にバックエンド データノード上のトランザクション ログにアクセスします。PolarDB-X がトランザクション ログの読み取りまたは書き込み中にエラーが発生した場合、TDDL-5003 エラーが返されます。
TDDL-5003 エラーは、通常、バックエンド データノードの障害が原因で発生します。PolarDB-X のバックエンド データノードのステータスとアクセス負荷を確認できます。データノードの問題を除外した後も TDDL-5003 エラーが続く場合は、テクニカルサポートに連絡してください。
TDDL-5310 ERR_GLOBAL_SECONDARY_INDEX_ONLY_SUPPORT_XA
説明: トランザクションの送信中にエラーが発生しました。
例:
ERR-CODE: [TDDL-5006][ERR_TRANS_COMMIT] Failed to commit primary group *****: *****, TRANS_ID = *****
注: PolarDB-X がトランザクションブランチの送信処理中にエラーが発生しました。TRANS_ID に対応するトランザクションは自動的にロールバックされます。TDDL-5006 エラーの原因は、通常、バックエンドデータノードの障害が原因です。PolarDB-X バックエンドデータノードのステータスとアクセス負荷を確認することをお勧めします。データノードの問題を除外した後も TDDL-5006 エラーが続く場合は、テクニカルサポートに連絡してください。
TDDL-5008 ERR_TRANS_TERMINATED
説明: タイムアウトのため、トランザクションは強制終了または中止されました。
例:
ERR-CODE: [TDDL-5008][ERR_TRANS_TERMINATED] Current transaction was killed or timeout. /* 現在のトランザクションは強制終了されたか、タイムアウトしました。 */ You may need to set a longer timeout value. /* より長いタイムアウト値を設定する必要がある場合があります。 */
注: このエラーは、PolarDB-X トランザクションが実行中に強制終了されたか、タイムアウトした場合 (実行時間が drds_transaction_timeout 値を超えた場合) に発生します。エラーがトランザクションのタイムアウトによって発生した場合は、
SET drds_transaction_timeout = ***
コマンドを使用して、PolarDB-X トランザクションの最大実行時間を変更することをお勧めします。単位はミリ秒です。
TDDL-5010 ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL
説明: 書き込みエラーが発生した後、トランザクション操作を続行することはできません。
例:
ERR-CODE: [TDDL-5010][ERR_TRANS_CONTINUE_AFTER_WRITE_FAIL] /* 書き込みに失敗した後にトランザクションを続行またはコミットできません */
注: 分散トランザクションが PolarDB-X トランザクションに含まれていて、実行に失敗した場合、トランザクションを続行することはできません。この場合、フロントエンドはロールバックをアクティブに実行し、トランザクション操作をリトライする必要があります。また、ログを通じて低速トランザクションを分析することもできます。
TDDL-5108 ERR_CHECK_PRIVILEGE_FAILED_ON_TABLE
説明: 現在のアカウントには、このテーブルに対する操作権限がありません。権限を確認してください。
TDDL-8007 ERR_ABANDONED_TASK
説明: PolarDB-X は、デフォルトで SELECT INTO OUTFILE
文のサポートを無効にしています。この機能が必要な場合は、テクニカルサポートに連絡してください。
TDDL-8008 ERR_EXECUTE_SPILL
説明: 現在のテーブルはグローバルセカンダリインデックスの作成をサポートしていません。この問題は、次の理由で発生する可能性があります。1. 現在のテーブルが単一のテーブルまたはブロードキャストテーブルである。2. グローバルセカンダリインデックスの列にパーティションキーが含まれていない。その他の状況については、テクニカルサポートに連絡してください。
TDDL-5306 ERR_GLOBAL_SECONDARY_INDEX_INSERT_DUPLICATE_VALUES
説明: グローバルセカンダリインデックステーブルにデータを書き込んでいるときに、プライマリキーの競合が発生しました。エラーメッセージに示されているレコード値を確認し、プライマリキーの競合が存在するかどうかを確認してください。
TDDL-8011 ERR_OUT_OF_SPILL_SPACE
説明: DML 実行中に、グローバルセカンダリインデックス テーブルに一意キーの競合が存在します。 エラーメッセージに示されているレコード値に基づいて、一意キーの競合が存在するかどうかを確認します。
TDDL-5310 ERR_GLOBAL_SECONDARY_INDEX_ONLY_SUPPORT_XA
説明: PolarDB-X は、XA/TSO 分散トランザクションでのみグローバルセカンダリインデックスをサポートしています。このエラーが発生した場合、ビジネスで以前にデフォルトのトランザクションポリシーが変更されている可能性があります。グローバルセカンダリインデックスを作成する前に、XA/TSO 分散トランザクションに戻す必要があります。
TDDL-5313 ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_WITH_DDL
説明: PolarDB-X は、デフォルトではグローバルセカンダリインデックステーブルに対する DDL 操作をサポートしていません。必要な場合は、テクニカルサポートに連絡してください。
TDDL-5316 ERR_GLOBAL_SECONDARY_INDEX_INDEX_AND_SHARDING_COLUMNS_NOT_MATCH
説明: PolarDB-X がグローバルセカンダリインデックスを作成する場合、インデックスフィールドにはグローバルインデックスのパーティションキーを含める必要があります(グローバルインデックスにデータベースシャーディングキーやテーブルパーティショニングキーなど複数のパーティションキーがある場合は、すべてインデックスキー列に含める必要があります)。たとえば、CREATE GLOBAL INDEX idx_1 ON t(a, b) DBPARTITION BY HASH(c)
は、ON t(a, b)
句が a と b をインデックスキー列として指定していますが、グローバルインデックスのパーティションキー c を含めていないため、エラー TDDL-5316 が発生します。このエラーが発生した場合は、DDL 文のインデックスフィールドにグローバルインデックスのすべてのパーティションキーが含まれているかどうかを確認してください。
TDDL-5317 ERR_GLOBAL_SECONDARY_INDEX_CONTINUE_AFTER_WRITE_FAIL
例:
ERR-CODE: [TDDL-5317][ERR_GLOBAL_SECONDARY_INDEX_CONTINUE_AFTER_WRITE_FAIL] /* グローバルセカンダリインデックスの書き込みに失敗した後にトランザクションを続行またはコミットできません */
説明: グローバルセカンダリインデックス (GSI) を含むテーブルに対して DML 文を実行しているときに、このエラーが発生した場合、失敗した DML 文を含むトランザクションの送信を続行することはできません。ビジネスコードを修正する必要があります。 DML エラーが発生した後、トランザクションをロールバックしてからリトライする必要があります。
TDDL-5321 ERR_SECONDARY_INDEX_BACKFILL_DUPLICATE_ENTRY
説明: グローバルセカンダリインデックスの作成中、データバックフィルの際にインデックステーブルでプライマリキーの競合が発生しました。インデックステーブルのプライマリキーに同一の値が存在するかどうかを確認する必要があります。
TDDL-8007 ERR_ABANDONED_TASK
説明: クエリが低速すぎるか、不明な理由により 2 時間以上スタックしているため、データベースシステムがクエリを停止し、この異常な状態が発生しました。まずクエリを最適化して、極端に遅いクエリが発生しないようにしてください。問題が解決しない場合は、テクニカルサポートに連絡してください。
TDDL-9301 ERR_DUPLICATED_PARTITION_NAME
説明: クエリ プロセス中に、データが大きすぎる場合、一時テーブルがディスクにスピルされます。このエラーは、データのスピル プロセス中に異常な状態が発生した場合に発生します。テクニカルサポートに連絡してください。
TDDL-8011 ERR_OUT_OF_SPILL_SPACE
説明: クエリ処理中に、大量のデータによって一時テーブルがディスクに書き込まれます。このエラーは、一時テーブルによって生成されたファイルが多すぎて、システムがスピル用に許可しているディスク容量の最大値を超えた場合に発生します。まず、クエリを最適化して、計算プロセス中の一時テーブルへの依存を減らします。問題が解決しない場合は、テクニカルサポートに連絡してください。
TDDL-8012 ERR_OUT_OF_SPILL_FD
説明: クエリ プロセス中に、データが大きすぎる場合、一時テーブルがディスクに書き込まれます。このエラーは、一時テーブルによって生成されたファイル数が、システムで許可されているファイルハンドルの数を超えた場合に発生します。ファイルハンドルのリークがあるかどうかを判断するために、テクニカルサポートに連絡できます。リークがない場合は、ファイルハンドルの数の制限を適切に増やすことができます。
TDDL-8102 ERR_PAGE_TOO_LARGE
説明: Massively Parallel Processing (MPP) 計算中、データは複数の計算ノード間でバッチで交換されます。データのバッチが最大 RPC 制限を超えると、このエラーが発生します。 デフォルトの CHUNK_SIZE 値を減らすことを試すことができます。
TDDL-8103 ERR_NO_NODES_AVAILABLE
説明: Massively Parallel Processing (MPP) 計算プロセス中に、一部の計算ノードでエラーが発生し、実行開始時にスケジューリングに使用できる計算ノードがなくなる可能性があります。 計算ノードサービスが正しく機能しているかどうかを確認してください。 すべての計算ノードサービスが正常であるにもかかわらず、このエラーが引き続き発生する場合は、テクニカルサポートに連絡してください。
TDDL-9301 ERR_DUPLICATED_PARTITION_NAME
説明: パーティションテーブルに関連する DDL 操作の実行中に、同じパーティション名が複数回使用されました。
TDDL-9305 ERR_PARTITION_NAME_NOT_EXISTS
説明: パーティションテーブルに関連する DDL 操作の実行中に、パーティションテーブル名が存在しないことがシステムによって示されます。パーティションテーブル名のスペルが正しいかどうかを確認してください。show create table
と check table
を使用して、テーブルメタデータに一貫性があるかどうかを確認します。一貫性がない場合は、メタデータメンテナンス情報に一貫性がないことが原因である可能性があります。テクニカルサポートに連絡してください。
TDDL-10004 ERR_X_PROTOCOL_RESULT
例:
ERR-CODE: [TDDL-10004][ERR_X_PROTOCOL_RESULT] // chunk2chunk を使用してデータを取得する必要があります
説明: PolarDB-X 計算ノードとデータノードは非公開 RPC 通信を使用します。この種のエラーは、主に計算ノードとデータノード間の接続が異常な場合に発生します。複数の潜在的な原因があります。エラー情報を確認して問題を特定する必要があります。具体的な問題を特定できない場合は、テクニカルサポートに連絡してください。