2007-09-11
[MySQL][InnoDB] innodb_log_file_size 変更手順
毎度毎度毎度はげしくど忘れするのでメモ。
手順は InnoDBを使うときのパフォーマンスチューニング - フツーな日常 で書かれてますね。
innodb_log_file_sizeを増やす
innodb_log_file_size=512Mに
ちょっとコツがいる操作が必要。
* 一度mysqlをshutdownする
* innodbのログを別の場所に退避させる
* innodb_log_file_sizeの値を変える
* 再度mysqldを上げ直す。ログは無ければ勝手に作られる。
InnoDB のログは ib_logfile\d+ (デフォルトだと ib_logfile(0|1) の 2 ファイル) なのでこれを /tmp にでも mv しちゃうと。
で、なんでこんなめんどーなことが必要なのかというと [MySQLウォッチ]第30回 MySQL 5.0のセキュリティ・ホールとInnoDBの設定 - オープンソース:ITpro で書かれている
既にトランザクションログが存在していて,innodb_log_file_sizeの設定値の方が大きい場合,サイズアンマッチでInnoDBが起動しないので注意が必要だ。
ということでした。
ちなみに、稼働中の innodb_log_file_size の設定値より小さい値にした場合は
- ログは退避しなくても mysqld を上げ直せる
- ログの大きさは設定前の状態のまま
- SHOW VARIABLES LIKE 'innodb%'; でみると設定後の値になっている
- 実際に InnoDB のテーブルを SELECT してみると ERROR 1033 (HY000): Incorrect information in file: なエラーになる
- ので、小さい値にする場合もログを退避して mysqld を上げ直す必要あり
でした。まる。
追記その 1
http://d.hatena.ne.jp/urekat/20090423/1240473193 でツッコミいただいた
SET GLOBAL innodb_fast_shutdown=0;
してから mysqld shutdown した方が確かにより確実ですね(もちろん、その後 エラーログに Shutdown completed してエラーがないことを確認してあげましょう)。
トラックバック - http://d.hatena.ne.jp/koziy/20070911/1189472682
リンク元
- 2 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&q=apache+SSLProxy*+設定&btnG=検索&lr=lang_ja
- 1 http://d.hatena.ne.jp/diarylist?of=50&mode=rss&type=public
- 1 http://www.google.co.jp/search?hl=ja&q=access+"update+or++insert"&lr=
- 1 http://www.google.co.jp/search?hl=ja&q=ruby+on+rails+Object::Master&lr=
- 1 http://www.google.co.jp/search?q=プレースホルダー+conditions&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP202JP221
- 1 http://www.google.co.jp/search?q=Ruby+Object::master&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 1 http://www.google.co.jp/search?q=apache+proxy+ssl&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 1 http://www.google.co.jp/search?q=rails+params+array&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox