tencent cloud

Data Transfer Service

一部インスタンスのパラメータチェック

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-16 17:47:29
AI翻訳

チェック詳細

ソースデータベースのテーブルのrow_formatはFIXEDに設定できません。
ソースデータベースとターゲットデータベースのlower_case_table_names変数は一致している必要があります。
ターゲットデータベースのmax_allowed_packetパラメータ設定は少なくとも1GBである必要があります。
ソースデータベース変数connect_timeoutは10より大きい必要があります。
MySQL/TDSQL MySQL/TDSQL-CからMySQLへ移行するシナリオにおいて、ソースインスタンスで実行時間の長いSQLが実行されている場合、警告がトリガーされます。「ソースインスタンスで実行時間の長いSQLが実行されており、テーブルロックが発生する可能性があります。後で再試行するか、ソースインスタンス内のSQLを処理してください」と表示されます。

修復方法

ソースデータベースのrow_formatパラメータを変更する

データベース内のテーブルのrow_formatの値がFIXEDの場合、テーブル内の各行の格納長が制限値を超えるとオーバーフローが発生し、エラーが報告されます。そのため、DYNAMICなど他のモードに変更し、各行の格納長がコンテンツの長さに応じて変化するようにする必要があります。
類似のエラーが発生した場合は、以下の手順を参照して修正してください:
1. ソースデータベースにログインします。
2. row_formatパラメータをDYNAMICに変更します。
alter table table_name row_format = DYNAMIC;
3. 設定が有効になっているかどうかを確認します。
show table status like 'table_name'\\G;
システムに表示される結果は以下の通りです:
mysql> show table status like 'table_name'\\G;
*************************** 1. row ***************************
Name: table_name
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 5
......
1 row in set (0.00 sec)
4. 検証タスクを再実行します。

ソースデータベースとターゲットデータベースのlower_case_table_names変数を一致させる

lower_case_table_namesは、MySQLが大文字と小文字を区別するかどうかを設定するパラメータです。異なる値の意味は以下の通りです: WindowsまたはmacOS環境では大文字と小文字は区別されませんが、Linux環境では区別されます。異なるシステム間の互換性を確保するために、大文字と小文字の区別ルールを統一する必要があります。
0:テーブル名は指定された大文字と小文字で保存され、比較時に大文字と小文字が区別されます。
1:テーブル名はディスク上では小文字で保存され、比較時に大文字と小文字は区別されません。
2:テーブル名は指定された大文字と小文字で保存され、比較時は小文字です。
このようなエラーが発生した場合は、以下の手順を参照して、ソースデータベースとターゲットデータベースのパラメータを統一してください。
1. ソースデータベースにログインします。
2. ソースデータベースとターゲットデータベースのlower_case_table_namesの値を確認します。
show variables like '%lower_case_table_names%';
3. 以下の内容を参照して、ソースデータベースの設定ファイルmy.cnfを変更します。
説明
my.cnf設定ファイルのデフォルトパスは/etc/my.cnfです。現場の実際の状況に準じてください。
lower_case_table_names = 1
4. 以下のコマンドを参照してデータベースを再起動します。
[$Mysql_Dir]/bin/mysqladmin -u root -p shutdown
[$Mysql_Dir]/bin/safe_mysqld &
5. 設定が有効になっているかどうかを確認します。
show variables like '%lower_case_table_names%';
システムに表示される結果は以下の通りです:
mysql> show variables like '%lower_case_table_names%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
6. 検証タスクを再実行します。

ターゲットデータベースのmax_allowed_packetパラメータを変更する

max_allowed_packetは最大許容伝送パケットです。設定が大きすぎると、より多くのメモリを使用してパケット損失が発生し、異常に大きなトランザクションパケットSQLを捕捉できなくなります。設定が小さすぎると、プログラムエラーやバックアップ失敗を引き起こす可能性があり、ネットワークパケットの頻繁な送受信が発生し、システムパフォーマンスに影響を与える可能性があります。
類似のエラーが発生した場合は、以下の手順を参照して修正してください:
1. ターゲットデータベースにログインします。
2. max_allowed_packetパラメータを変更します。
set global max_allowed_packet = 4*1024*1024;
3. 設定が有効になっているかどうかを確認します。
show global variables like '%max_allowed_packet%';
システムに表示される結果は以下の通りです:
mysql> show global variables like '%max_allowed_packet%';
+------------------------+---------+
| Variable_name | Value |
+------------------------+---------+
| max_allowed_packet | 4194304 |
+------------------------+---------+
1 row in set (0.00 sec)
4. 検証タスクを再実行します。

ソースデータベースの変数connect_timeoutを変更する

connect_timeoutはデータベースの接続時間です。connect_timeoutの設定値を超える接続リクエストは拒否されます。設定が小さすぎると、データベース接続が頻繁に切断され、処理効率に影響を与えるため、このパラメータの値は10より大きくすることをお勧めします。
類似のエラーが発生した場合は、以下の手順を参照して修正してください:
1. ソースデータベースにログインします。
2. connect_timeoutパラメータを変更します。
set global connect_timeout = 10;
3. 設定が有効になっているかどうかを確認します。
show global variables like '%connect_timeout%';
システムに表示される結果は以下の通りです:
mysql> show global variables like '%connect_timeout%';
+------------------------+---------+
| Variable_name | Value |
+------------------------+---------+
| connect_timeout | 10 |
+------------------------+---------+
1 row in set (0.00 sec)
4. 検証タスクを再実行します。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック