MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.6.2 innochecksum — オフライン InnoDB ファイルチェックサムユーティリティー

innochecksum は、InnoDB ファイルのチェックサムを出力します。 このツールは InnoDB テーブルスペースファイルを読み取って各ページのチェックサムを計算し、計算されたチェックサムを保存されているチェックサムと比較して不一致をレポートします。不一致はページが破損していることを示します。 元は、停電後にテーブルスペースの完全性の検証を迅速化するために開発されましたが、ファイルコピーのあとにも使用できます。 チェックサムの不一致により、InnoDB は意図的に実行中のサーバーを停止するため、本番中のサーバーで破損したページが発生するのを待つのではなく、このツールを使用することをお薦めします。

innochecksum は、サーバーがすでにオープンしているテーブルスペースファイルには使用できません。 このようなファイルに関しては、CHECK TABLE を使用してテーブルスペース内のテーブルをチェックするとよいでしょう。 サーバーがすでにオープンしているテーブルスペースで innochecksum を実行しようとすると、「ファイルをロックできません」エラーが発生します。

チェックサムの不一致が見つかった場合は、バックアップからテーブルスペースをリストアするか、サーバーを起動し、mysqldump を使用してテーブルスペース内のテーブルのバックアップを作成します。

innochecksum は次のように起動します。

shell> innochecksum [options] file_name

innochecksum のオプション

innochecksum は次のオプションをサポートします。 ページ番号を参照するオプションについては、数字はゼロベースです。

複数のユーザー定義テーブルスペースファイルに対する innochecksum の実行

次の例は、複数のユーザー定義テーブルスペースファイル (.ibd ファイル) で innochecksum を実行する方法を示しています。

test データベース内のすべてのテーブルスペース (.ibd) ファイルに対して innochecksum を実行します:

shell> innochecksum ./data/test/*.ibd

t で始まるファイル名を持つすべてのテーブルスペースファイル (.ibd ファイル) に対して innochecksum を実行します:

shell> innochecksum ./data/test/t*.ibd

data ディレクトリ内のすべてのテーブルスペースファイル (.ibd ファイル) に対して innochecksum を実行します:

shell> innochecksum ./data/*/*.ibd
注記

cmd.exe などの Windows シェルは glob パターン展開をサポートしていないため、複数のユーザー定義テーブルスペースファイルでの innochecksum の実行は Windows オペレーティングシステムではサポートされていません。 Windows システムでは、ユーザー定義のテーブルスペースファイルごとに innochecksum を個別に実行する必要があります。 例:

cmd> innochecksum.exe t1.ibd
cmd> innochecksum.exe t2.ibd
cmd> innochecksum.exe t3.ibd

複数のシステムテーブルスペースファイルに対する innochecksum の実行

デフォルトでは、InnoDB システムテーブルスペースファイル (ibdata1) は 1 つのみですが、innodb_data_file_path オプションを使用してシステムテーブルスペースに複数のファイルを定義できます。 次の例では、system テーブルスペースの 3 つのファイルが innodb_data_file_path オプションを使用して定義されます: ibdata1ibdata2 および ibdata3

shell> ./bin/mysqld --no-defaults --innodb-data-file-path="ibdata1:10M;ibdata2:10M;ibdata3:10M:autoextend"

3 つのファイル (ibdata1ibdata2 および ibdata3) は、1 つの論理システムテーブルスペースを形成します。 単一の論理システムテーブルスペースを形成する複数のファイルに対して innochecksum を実行するには、innochecksum に、標準入力からテーブルスペースファイルを読み取るための - オプションが必要です。これは、複数のファイルを連結して単一のファイルを作成することと同等です。 前述の例では、次の innochecksum コマンドが使用されます:

shell> cat ibdata* | innochecksum -

- オプションの詳細は、innochecksum オプションの情報を参照してください。

注記

同じテーブルスペース内の複数のファイルでの innochecksum の実行は、Windows オペレーティングシステムではサポートされていません。これは、cmd.exe などの Windows シェルは glob パターン展開をサポートしていないためです。 Windows システムでは、innochecksum はシステムテーブルスペースファイルごとに個別に実行する必要があります。 例:

cmd> innochecksum.exe ibdata1
cmd> innochecksum.exe ibdata2
cmd> innochecksum.exe ibdata3