エラーコード | エラーコード説明 | エラー発生シーン | エラー例 | 分析と対処方法 |
1227 | 権限の問題 | データ移行、データ同期、データ購読 | Error 1227: Access denied. | 問題分析 タスクを実行するアカウントにソースデータベース/ターゲットデータベースへの接続権限がありません。 対処方法 |
1040 | データベースの接続数が多すぎます。 | データ移行、データ同期 | Error 1040: Too many connections. | 問題分析 データベースの接続数が多すぎます。 対処方法 ソースデータベースの最大接続数 max_connectionsをより大きな値に変更し、ソースデータベースの未使用の接続を閉じるか、または後で業務量が少ないときにタスクを再試行してください。 |
1045 | 操作が拒否されました。 | データ移行、データ同期、データ購読 | Error 1045 (28000): Access denied for user '{{xx}}'@'{{xx}}' (using password: YES) | 問題分析 タスクの実行中にユーザーがアカウント権限またはパスワード情報を変更しました。 ソースデータベースまたはターゲットデータベースでDTSのサービスIPに権限が付与されていません。 対処方法 アカウントまたはパスワードの変更操作があるかどうかをチェックし、ある場合は取り消すか元に戻してください。具体的なアカウント権限の要件については、操作ガイドの対応ドキュメントを参照してください。 ドキュメントを参照して、DTSのサービスIPに権限を付与してください。 |
1050 | データベース・テーブルが既に存在します。DDL文を繰り返し実行しました。 | データ移行、データ同期 | Error 1050: Table {{*}} already exists, binlog position:<{{*}}>, gtid:{{*}}, related tables: {{*}} | 問題分析 マルチ統合マイグレーション/同期タスクを作成する際、複数のソースデータベースで同じDDL操作が実行されると、ターゲットデータベースでDDL操作が重複します。マルチ統合シナリオでは、1つの同期タスクでのみDDL操作を選択できます。 タスクの実行中に、ユーザーが同時にターゲットデータベースにも該当テーブルを作成したため、ソースデータベースのDDL操作がターゲットデータベースに同期され、重複して実行されました。 ネットワーク異常または文の実行時間が長すぎる場合、タスクの再試行中にDDLが重複して実行されることがあります。 対処方法 |
1054 | 関連テーブルに不明な列が含まれています。 | データ移行、データ同期 | Error 1054: Unknown column {{*}} related tables: {{*}} | 問題分析 タスクの開始前に、該当テーブル構造の移行/同期を選択しなかったため、ターゲットデータベースに対応する列が含まれていません。 タスクの実行中に、ユーザーが同時にターゲットデータベースを操作し、該当列を削除しました。 対処方法 ターゲットデータベースでこの列が存在するかどうかを確認してください。存在しない場合は、この列を補完してからタスクを再試行してください。 |
1062 | PK競合エラー | データ同期 | Error 1062: Duplicate entry '{{xx}}' for key 'PRIMARY', related tables: '{{xx}}'. | 問題分析 同期シナリオにおいて、主キー競合処理メカニズムで競合エラーを選択した場合、DTSはターゲットデータベースとソースデータベースの同期データで主キー競合が発生するとエラーを報告します。 タスクの実行中に、手動でターゲットデータベースにデータを書き込んだため、ターゲットデータベースに同じPKのレコードが既に存在しています。 タスクの実行前に、ソースデータベースで一意キーチェックが無効になっており、ソースデータベース自体に重複したPKデータが既に存在しています。 タスクの実行中にDelete操作が同期されなかったため、ソースデータベースのデータが削除された後もターゲットデータベースに同期されず、ソースデータベースがデータを挿入する際にターゲットデータベースのPKと競合しました。 対処方法 ソースデータベースに重複したPKがあるかどうかをチェックし、ある場合は先に処理してください。 ターゲットデータベース内の対応するデータテーブルのPKを変更または削除してから、タスクを再試行してください。 |
1071 | インデックスフィールドの長さが長すぎます。 | データ移行、データ同期 | Error 1071 (42000): Specified key was too long; max key length is 767 bytes. | 問題分析 デフォルトでは、InnoDBエンジンの単一フィールドインデックスの長さは最大767バイトです。つまり、767/2<384個のダブルバイトフィールド、または767/3<256個のトリプルバイトフィールドに相当します。GBKはダブルバイト、UTF-8はトリプルバイト、utf8mb4_unicode_ciは4バイトです。MySQL 5.6以降のバージョンでは、すべてのMyISAMテーブルは自動的にInnoDBに変換されます。そのため、自社構築データベース上に767バイトを超える複合インデックス列がある場合、同じテーブル作成ステートメントは自社構築データベース上では正常に実行されますが、MySQL 5.6以降のバージョンでは問題が発生します。 対処方法 ファイル内のエラー行にある複合インデックス列の長さを変更してください。 例: create table test(test varchar(255) primary key)charset=utf8;-- 成功 create table test(test varchar(256) primary key)charset=utf8;-- 失敗 |
1146 | データベース・テーブルが存在しません。 | データ移行、 データ同期 | Error 1146: Table '{{xx}}' doesn't exist on query. | 問題分析 タスクの実行中に、ターゲットデータベース上で該当テーブルが削除されました。 ソースデータベースはデータエクスポート段階でテーブル構造変更のDDLを実行しました。 タスク開始前に、該当テーブル構造の移行/同期を選択していません。 対処方法 ターゲットデータベースで show create table xxxを実行し、このテーブルが存在するかどうかを確認してください。存在しない場合は、ターゲットデータベースで手動でこのテーブルを作成してください。 |
1213 | ソースデータベースとターゲットデータベースの二重書き込みによりデッドロックが発生しました。 | データ移行、データ同期 | Error 1213: Deadlock found when trying to get lock; try restarting transaction, related tables: '{{xx}}'. | 問題分析 DTSによるターゲットデータベースへの書き込み操作とユーザーによるターゲットデータベースへの書き込み操作が競合し、デッドロックが発生します。 対処方法 デッドロックプロセスを終了し、タスクを再構築します。 インスタンス制御下での更新操作のロックロジックを見直し、テーブルにインデックスを追加し、可能な限り行ロックを使用して、ロックのオーバーヘッドを削減することをお勧めします。 |
1236 | ソース側Binlogログの問題 | データ移行、データ同期、データ購読 | Error 1236 (HY000): Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup…… | 問題分析 ソースデータベースのBinlogログの保存期間が短く、DTSが取得する際にすでに削除されているか、取得したBinlogの位置が正しくない可能性があります。 対処方法 ソースデータベースのBinlog保存期間( expire_logs_days)の設定が業務要件を満たしていることを確認してください。保存期間は3日以上を推奨します。その後、タスクを再構築してください。 |
1414 | データエクスポート段階で、ソースデータベースはテーブル構造を変更するDDLを実行しました。 | データマイグレーション | Error 1414: Table definition has changed, please retry transanction. | 問題分析 ソースデータベースのデータエクスポート段階では、テーブル構造を変更するDDL操作を実行することはできません。実行すると、エラーが発生する可能性があります。 対処方法 移行タスクを再構築してください。 |
エラー説明 | エラー発生シーン | エラー例 | 分析と対処方法 |
データベース接続異常 | データ移行、データ同期、データ購読 | {{*}}invalid connection{{*}}. driver: bad connection,{{*}} dial tcp {{*}}: connect: connection refused. | 問題分析 1. ソース/ターゲットデータベースが隔離またはオフラインになりました。 2. ソース/ターゲットデータベースが長時間再起動に失敗しました。 3. ソース/ターゲットデータベースでマスタースレーブ切り替えが長時間成功しません。 4. ソース/ターゲットデータベースの負荷が高すぎます。 5. 手動またはプログラムにより、定期的/不定期にソース/ターゲットデータベース上の接続をKillします。 6. その他、ネットワーク接続の失敗を引き起こす可能性がある状況があります。例えば、ソース/ターゲットデータベースにネットワークセキュリティポリシーを設定し、アクセスリクエストをブロックした場合です。 対処方法
上記の分析に従って、一つずつ確認して解決してください。 Tencent Cloudインスタンスの場合、インスタンスコンソールおよびTCOPを通じて問題の切り分けと解決を支援できます。解決後はコンソールでタスクを再試行して再開できます。 問題が発見されない場合、または解決が成功しない場合は、チケットを提出して処理できます。 |
データベース接続異常 | データ移行、データ同期、データ購読 | dial tcp {{*}}: connect: connection refused. | 問題分析 1. ソース/ターゲットデータベースが隔離またはオフラインになりました。 2. ソース/ターゲットデータベースが長時間再起動に失敗しました。 3. ソース/ターゲットデータベースでマスタースレーブ切り替えが長時間成功しません。 4. ソース/ターゲットデータベースの負荷が高すぎます。 5. その他、ネットワーク接続の失敗を引き起こす可能性がある状況があります。例えば、ソース/ターゲットデータベースにネットワークセキュリティポリシーを設定し、アクセスリクエストをブロックした場合です。 対処方法
上記の分析に従って、一つずつ確認して解決してください。 Tencent Cloudインスタンスの場合、インスタンスコンソールおよびTCOPを通じて問題の切り分けと解決を支援できます。解決後はコンソールでタスクを再試行して再開できます。 問題が発見されない場合、または解決が成功しない場合は、チケットを提出して処理できます。 |
ソースデータベースで長時間実行されているSQLが原因でロックの取得に失敗しました。 | データ移行、データ同期 | Find Resumable Error, src db has long query sql, fix it and try it later. Find Resumable Error: Task failed due to table lock failure caused by time-consuming SQL query statements in source instance. | 問題分析 ソースデータベースで長時間実行されているSQLが存在する場合(5秒超)、ソースデータの業務に影響を与えないようにするため、DTSは低速SQLの実行が終了するのを待ってからロックを取得してデータをエクスポートする必要があります。デフォルトのロック取得時間は60秒で、タイムアウトするとロック取得に失敗し、タスクがエラーを報告します。 対処方法 ソースデータベース内の低速SQLを処理するか、低速SQLの実行が終了するのを待ってからタスクを再構築してください。 |
Binlogパラメータの形式が要件を満たしていません。 | データ移行、データ同期、データ購読 | Statement binlog format unsupported:{{xx}}. binlog must ROW format, but MIXED now. binlog row before/after image not full, missing column {{xx}}, binlog posistion:{{xx}}, gtid:{{*}}. | 問題分析 データの正確性と完全性を保証するために、DTSはソースデータベースのBinlog関連パラメータに対して以下の要件を定めます。チェック段階でもソースデータベースのBinlogパラメータをチェックし、要件を満たさない場合はエラーが発生し、タスクを開始できません。 チェックが通過してタスクが開始された後、ユーザーがソースデータベースのBinlogパラメータを変更した場合もタスクエラーが発生します。ソースデータベースのBinlogが以下の要件を満たしていることを確認してください。 binlog_formatをROWに設定する必要があります。binlog_row_imageをFULLに設定する必要があります。対処方法 注意:パラメータ変更後、有効にするためにスレッドを再起動する必要があります。データベースを再起動するとパラメータは初期設定に戻るため、再起動後にパラメータ設定が正しいことを確認してください。 |
内蔵Kafka異常 | データ購読 | kafka: error while consuming {{*}}. kafka: Failed to produce message to topic. | 問題分析 DTSデータ購読に内蔵されているKafkaコンポーネントの生産または消費に異常が発生した場合、バックエンドサービスは自動的に再試行して自己回復します。ページを更新して、タスクの状態遷移を確認してください。 対処方法 |
タスクが7日以上停止すると、Kafkaデータが期限切れになります。 | データ購読 | kafka server: The requested offset is outside the range of offsets maintained by the server for the given topic/partition. | 問題分析 タスクの停止または異常が7日を超えると、DTSタスクが中間キャッシュするKafkaデータが期限切れになり、Kafkaデータの読み取りに失敗します。 解決方法 タスクを破棄して再構築してください。年額・月額契約のタスクの場合は、リセット操作によって新しいタスクを作成できます。 |
フィードバック