DBログのローテート

バイナリログは自動ローテートされるが、
・エラーログ
・クエリログ
・スロークエリログ
は手動でローテートする必要がある。

mysql>FLUSH LOGS;

でOK。
自動でローテートさせたいなら、 /etc/logrotate.d/ に次のファイルを置く。

    /var/lib/mysql/mysqld.log /var/lib/mysql/mysql-slow.log  {
    # create 600 mysql mysql
    notifempty
    daily
    rotate 30
    missingok
    compress
    postrotate
    # just if mysqld is really running
    if test -x /usr/bin/mysqladmin &&
    /usr/bin/mysqladmin ping &>/dev/null
    then
    /usr/bin/mysqladmin flush-logs
    fi
    endscript
    }

上の例では MySQL のログと slowlog を logrotate しているので、ログファイル名は環境に応じて変更すべし
↑のスクリプトは/usr/local/mysql/share/mysql/mysql-log-rotateがベースになっているっぽい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です