Help us understand the problem. What is going on with this article?

MySQLのバイナリログ削除タイミング

More than 1 year has passed since last update.

バイナリログの運用について

バイナリログは更新系のログが記録されますが、放っておくと際限なく増えます
先日、不可解な更新クエリが大量に発生し、ディスク容量が90%を超えてしまったのでその時の諸々のまとめ

障害前基本設定

[mysqld]
expire_logs_days=14

expire_logs_daysの動きについて

  • MySQL の再起動時 もしくは、バイナリログのローテート時に実行される
  • そのため、14日たてば自動的に削除されるわけではなく、少しずれる

障害時の挙動

  • 20MB/s でディスクが使われていった

若手メンバーからの質問

Q: mysql-binrm していいですか?
A: ダメです。mysql の中に入ってpurge しないとディスクは空きません
Q: purge ってなんすか?
A: こんなクエリを投げるのだよ

mysql> PURGE MASTER LOGS TO 'mysql-bin.429210';
Query OK, 0 rows affected (0.02 sec)

対応方針

  • 1ポジションで数百MBあったので、一気にpurge するとサービス中のMySQLが落ちる可能性があるので、少しづつ実行する
  • ある程度purge が完了したら、my.cnf をいじって自動でpurge されるようにする

作業内容

  • まず現在のポジションを確認する
    • ここまでは消して大丈夫!
mysql> SHOW MASTER STATUS\g;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.434364 | 85145715 |              |                  | 
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

  • 一番古いログのpositionを探す
ls -ltr /data/mysql/mysql-bin* | head -100
  • ひと思いに消す
mysql> PURGE MASTER LOGS TO 'mysql-bin.459210';
Query OK, 0 rows affected (0.02 sec)

障害後基本設定

[mysqld]
expire_logs_days=7
oct
建築施工管理者向けアプリANDPADを開発、運営するスタートアップ
http://88oct.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした