MySQLサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか
MySQLサーバで希に遭遇するディスク残量障害事例と共に紹介します。
こちらは、以下エントリよりネタをパクりましたインスパイアしました。すみません。
- Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか - 元RX-7乗りの適当な日々
- Linuxサーバのディスク容量減少アラートが飛んできた!ってときにどう対処するか - tagomorisのメモ置き場
今回紹介する対処パターン
今回は4つの方法を紹介します。
- 不要なデータベース/テーブルを削除
- スロークエリログ/クエリログを削除
- バイナリログを削除
- どれのパターンにも属さないレアなシチュエーション
不要なデータベース/テーブルを削除
あまりそういうケースは無いとは思いますが、
DROP DATABASE foo;
やDROP TABLE foo;
で削除します。
スロークエリログ/クエリログを削除
du -sch /*
コマンドでも分かりますが、MySQLと分かっているのならば次のように、ログの出力先を確認しても良いと思います。
> show variables like '%log_file'; +---------------------+-----------------------------+ | Variable_name | Value | +---------------------+-----------------------------+ | general_log_file | /var/log/mysqld-general.log | | slow_query_log_file | /var/log/mysqld-slow.log | +---------------------+-----------------------------+
次に、対象のファイルの容量を確認してみましょう。
$ ls -alh /var/log/mysqld-* -rw-r--r-- 1 mysql root 53M Jul 19 20:01 2013 /var/log/mysqld-general.log -rw-r--r-- 1 mysql root 20G Jul 30 11:43 2013 /var/log/mysqld-slow.log
1つめがクエリログ、2つめがスロークエリログです。
容量が20GBと大変大きいので、スロークエリログを空にしてみましょう。
rootユーザであれば:> /path/to/file
が使えるのですが、sudoを使う場合は次のように実行します。
# スロークエリログを空にする $ sudo sh -c ":> /var/log/mysqld-slow.log"
追記:空にするという荒技を使わずにログファイルの手動ローテートを行う方法についてはMySQLスローログの手動ローテート | b.l0g.jpのページが参考になります。
以上で空き容量を確保することが出来ました。
この対処療法で安心せず、自動ログローテートの設定を行っておくと良いですね!
バイナリログを削除
もし明らかに不要であると断定できるならば、大まかにこの流れで対応します。
PURGE MASTER LOGS BEFORE '2013-07-30 15:00:00';
的な感じで応急処置- バイナリログの保存期間や、そもそも記録するかを含めて根本対策を検討
詳細は、以下記事が参考になります。
- »【MySQL】バイナリログ圧迫の対処。 Pattern: Pattern Ref —自分用覚書
- [mysql]mysqlのバイナリログ(mysql-bin.******)を削除する | ブログ | そうだ車輪と名づけよう 5th
どれのパターンにも属さないレアなシチュエーション
df -h
を見る限り、何かが容量を逼迫しているdu -sch /*
で見ると/var/lib/mysql/
は確かに多いが、かといって影響の出るレベルでは無いlsof
で見ると、mysqldがテンポラリテーブルのファイルを掴んでいる
以上から、テンポラリテーブルのファイルが原因と分かります。
続きを読むgihyo.jpにて、MySQLで使える全文検索プロダクトmroongaに関する連載を始めました
MySQL 5.0+Sennaという組み合わせの「Tritonn」が広まり始めたのは2008年頃でしたでしょうか。
あれから月日が経つこと5年。2013年となった今、ドキュメントが陳腐化するMySQL 5.0を捨て、MySQL 5.6で使える全文検索プロダクト「mroonga」へ移行しようとある男が起ち上がった。
...中略...
そんなプロジェクトの体験記を元に、gihyo.jpのgroongaのコーナーをお借りして連載を始めました。
mroongaへ移行したいという方にも、mroongaの利用を検討している方にも読んで頂けると嬉しいです。
寄稿記事の紹介
第6回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(1)
http://gihyo.jp/dev/clip/01/groonga/0006
この記事では、MySQL関連の全文検索ソリューションの比較や、
Tritonnからmroongaへ移行する7つのメリットなどについて執筆しました。
mroongaで「API version for STORAGE ENGINE plugin is too different」というエラーが起きたときの対処法
以下のエラーが起きてしまった時の対処法を紹介します。
2013-06-04 17:36:01 21440 [ERROR] Can't open shared library 'ha_mroonga.so' (errno: 0 API version for STORAGE ENGINE plugin is too different)続きを読む