MySQL バイナリログの削除について

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

MySQL バイナリログが溜まり、削除する際に「rm」コマンドで

ファイルを消してしまう人をしばしば見ます。
削除できてしまいますが、MySQLは認識したままなので、ちゃんと
バイナリログの削除コマンドを使用しましょう。

【削除方法】
①レプリケーション状態の確認(※レプリケージョン使用の場合)
スレブ全台にて どこまで伝搬しているか確認をしましょう!

show slave status \G

②バイナリログの削除
show master logs;

purge master logs to ‘mysql-bin.010’;
※mysql-bin.009までが削除されます。

show master logs;

※binary と master は同義語です。
【備考】
一定時間が経過したバイナリログを自動的に削除することもできます。

①my.cnfにて下記のパラメータを設定してください。
※my.cnfに記載しただけでは反映されません。MySQL再起動もしくはset globalでの設定が必要です。

expire_logs_days : 設定された日数が経過したバイナリログは自動的に削除される。 デフォルトは、自動削除されません。

例)/etc/my.cnf
[mysqld] …
expire_logs_days = 7
② set globalを使って設定を変更
$ mysql -uユーザ名 -p データベース名
Enter password: [パスワード]

show global variables like ‘expire_logs_days’;
set global expire_logs_days = 7;
show global variables like ‘expire_logs_days’;

 

投稿者プロフィール

ito
プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。

現在、サーバ・ネットワークいろいろと奮闘中です。

ABOUTこの記事をかいた人

プログラマー、DBエンジニアを経て、2013年9月よりスカイアーチネットワークスに在籍しております。 現在、サーバ・ネットワークいろいろと奮闘中です。