Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  オンライン DDL でのクラッシュリカバリの動作のしくみ

14.11.7 オンライン DDL でのクラッシュリカバリの動作のしくみ

ALTER TABLE ステートメントの実行中にサーバーがクラッシュしてもデータは失われませんが、クラッシュリカバリのプロセスは、クラスタ化されたインデックスの場合とセカンダリインデックスの場合で異なります。

InnoDB セカンダリインデックスの作成中にサーバーがクラッシュした場合、MySQL はリカバリ時に、部分的に作成されたインデックスをすべて削除します。ALTER TABLE または CREATE INDEX ステートメントを再実行する必要があります。

InnoDB のクラスタ化されたインデックスの作成中にクラッシュが発生した場合は、テーブル内のデータをまったく新しいクラスタ化されたインデックスにコピーする必要があるため、リカバリはより複雑です。すべての InnoDB テーブルが、クラスタ化されたインデックスとして格納されることに注意してください。次の説明では、テーブルとクラスタ化されたインデックスという言葉を区別なく使用しています。

MySQL は、既存のデータを元の InnoDB テーブルから目的のインデックス構造を持つ一時テーブルにコピーすることによって、新しいクラスタ化されたインデックスを作成します。データがこの一時テーブルに完全にコピーされたら、元のテーブルの名前が別の一時テーブル名に変更されます。新しいクラスタ化されたインデックスで構成される一時テーブルの名前が元のテーブルの名前に変更され、元のテーブルはデータベースから削除されます。

新しいクラスタ化されたインデックスの作成中にシステムクラッシュが発生した場合、データは失われませんが、このプロセス中に存在する一時テーブルを使用してリカバリプロセスを完了する必要があります。クラスタ化されたインデックスを再作成したり、大きなテーブルで主キーを再定義したり、あるいはこの操作中にシステムクラッシュが発生したりすることはまれであるため、このマニュアルではこのシナリオからのリカバリに関する情報は提供していません。


User Comments
Sign Up Login You must be logged in to post a comment.