にっちもさっちも行かなくなったら。

本日の障害対応の内容走り書き。後で気が向いたらまとめましょう。
(前も似たような事あったなぁ。。)

optimize tableしてたら/varがパンパン。→異常終了

TMDファイルが容量を圧迫してる。
deleteとかdropとかtruncateが走っている間にドンドン増えて行く。
mysqldをrestartすれば消える。(消えない時もあったけどrmで多分おk)
何のファイルかはよく分からなかった。
おそらく削除時のテンポラリ的なファイル。

巨大なテーブルに対してdeleteとかdropとかtruncateをかけようとするとTMDファイルが肥大化して結局/varがパンパンという堂々巡り。

レコードを削除すれば減る?→テーブルぶっ壊れてrepair tableかけないといけなくなった→TMDファイルが肥大化して結局/varがパンパンというまたもや堂々巡り。

もうやだ(泣

男の対処法。
mysqldを停止
MYD・MYI・frmを退避(ってか削除
mysqldをstart
テーブルの存在チェック→無いよ〜っていう。
mysqldumpしたものからCREATE TABLEのSQLをもっかい突っ込む。
selectとかしてみる→OK!

まとめ
MYD・MYI・frmを削除しちゃえばテーブルが無かった事にできる。(ご利用は自己責任で。。)
TMDファイルの詳細がいまいちわからん。→TMDファイルを作らないで削除とか出来ないのかな。

勿論この対処法だとデータ全部ロストします。
今回はたまたまレコード自体がテンポラリ的なものだったので。。。。


TODO
定期的にレコード件数減らすバッチ仕込め→俺

追記
http://forums.mysql.com/read.php?21,100165,100254
だとdeleteとかdropとかtruncateはTMDファイル作られないといっておる。
何か勘違いしたかなぁ。
via id:hirataraさん