この記事で
ターゲット
ソリューション
InnoDBは破損の原因
リファレンス
適用範囲:
MySQLサーバのバージョン5.0以上
この記事では、すべてのプラットフォームに適用されます
目標:
InnoDB損害を起こすよくある原因を学んで、そしてそれを防ぐ
解決策
InnoDB損害な原因
InnoDB損害について主に四つの原因がある:
- ハードウェア損害(一般的にはディスクやメモリーにある)
- シャットダウン (例えば電源が切れたあるいはオペレーションシステムのbugによるもの)
- Bugs
- 整合性がないバックアップ
Error Correction Codeを使った場合を除いて、ディスクエラを防ぐ方法はあまりいない。
電源が切れたよるシャットダウンに対してUPSは最善な保護である。オペレーションシステムbugによるシャットダウンに対して(幸いこれは極まれに起こっている)、電池バックアップのディスクが一部の書き込むことを防げる。一般的にはinnodb_flush_log_at_trx_commit = 1でディスクに書き込むことを確保する。
だが、電池バックアップディスクは保護だから、オペレーションシステムあるいはディスクが実際に上書きされていないかもしれない。
変更ログでアップロード必要があるかを確認してください。さもなければ、bugを防げない。変更ログが以下のものにある:
- MySQL 5.0
- MySQL 5.1
- MySQL 5.5
- MySQL 5.6
- MySQL 5.7
一般的に、バックアップは予想したよりもっと壊されやすい。この場合の原因はFLUSH TABLES WITH READ LOCKで、InnoDBはまだ底でデータファイルを書き込む。これはこのバックアップ方法がMyISAMに効くが、InnoDBに適用していないと意味する
どんな場合にも、常にバックアップを用意することとバックアップをテストすることを勧めている。