MYSQLのスレーブに障害が発生してマスターのバイナリログが肥大化し、ディスク使用率が100%になる事態に。
とりあえず止まってもさほど問題のないデータベースで、他のサービスの復旧を優先したかったので、ディスクを圧迫する原因になっていたマスターのバイナリログ(mysqld-bin.xxxxx)をrmコマンドで削除したらmysqldが起動しなくなり困ったことに。
広告
mysqld-bin.indexを削除する
とりあえずmysqldのエラーログ/var/log/mysqld.logをを確認
1 2 3 4 5 |
151223 11:37:17 InnoDB: Started; log sequence number 0 47829960 /usr/libexec/mysqld: File './mysqld-bin.002513' not found (Errcode: 2) 151223 11:37:17 [ERROR] Failed to open log (file './mysqld-bin.002513', errno 2) 151223 11:37:17 [ERROR] Could not open log file 151223 11:37:17 [ERROR] Can't init tc log 151223 11:37:17 [ERROR] Aborting |
バイナリログファイルが見つからず起動できなかったようです。
で、このログファイルはどこで指定されているのか調べてみたところ、バイナリログと同じディレクトリのmysqld-bin.indexらしい。
中身を見てみるとたしかにログファイル名が記載されていたので、このファイルを削除して起動を試みる。
1 2 |
# service mysqld start Starting mysqld: [ OK ] |
無事起動
バイナリログのディレクトリにはmysqld-bin.000001とmysqld-bin.indexが作成されていました。
バイナリログの削除はpurge master logs toを使用しましょう。