私の環境:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 (Santiago)
# uname -a
Linux A.B.C 2.6.32-642.4.2.el6.x86_64 #1 SMP Mon Aug 15 02:06:41 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
# rpm -q mysql-server percona-toolkit
mysql-server-5.1.73-7.el6.x86_64
percona-toolkit-2.2.19-1.noarch
#
私は実行していますpt-table-checksum
そして私は次のエラーを受け取っています:
MySQLがWord_sid_typeindexの代わりにインデックスを選択しなかったため、Y.ZのチャンクXをスキップします。
mysql> DESCRIBE search_index;
+-------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| Word | varchar(50) | NO | MUL | | |
| sid | int(10) unsigned | NO | MUL | 0 | |
| type | varchar(16) | YES | | NULL | |
| score | float | YES | | NULL | |
+-------+------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> SHOW TABLE STATUS WHERE Name='search_index'\G;
*************************** 1. row ***************************
Name: search_index
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 3155432
Avg_row_length: 51
Data_length: 163250176
Max_data_length: 0
Index_length: 415514624
Data_free: 839909376
Auto_increment: NULL
Create_time: 2016-09-01 21:14:58
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.13 sec)
ERROR:
No query specified
mysql>
アドバイスをお願いします。
これは私が提案するものです:
SHOW INDEXES FROM Y.Z\G
を実行します--chunk-index
オプションでカーディナリティが最も高いインデックスを使用する--function=md5
--chunk-size
を使用します(例:200)必要に応じて、影響を受けるテーブルでANALYZE TABLEを実行して、統計を再計算します。ビジー状態のサーバーでANALYZETABLEを実行した場合の影響を認識していることを確認してください。
メッセージは予期されたものであり、気がかりなものです。
このメッセージが邪魔になることはまったくありません。一意性が定義されていないため、 pt-table-checksum がチャンクをバイパスすることを期待します。確かに、InnoDBは、PRIMARYKEYまたはUNIQUEINDEXがない場合、 gen_clust_indexと呼ばれる行ベースのインデックス を作成します。したがって、テーブルから読み取られたチャンクには、挿入の順序以外に、その順序に韻や理由はありません。
質問にレプリケーションタグがあるので、これは気がかりになります。
マスターに多くの書き込みがある場合、スレーブはマスターとは異なる順序で行を書き込む場合があります。 search_index
テーブルにPRIMARY KEY
またはUNIQUE INDEX
がある場合、チェックサム評価が安定します。残念ながら、マスターとスレーブの両方にInnoDBテーブルがある唯一の一意性の形式として、内部で生成されたインデックス(gen_clust_index)を持つテーブルの場合は言えません。
search index
の主キーを定義します。search_index
を実行し、スレーブにロードします