有効期限が設定されているにもかかわらず、mysql bin ログが期限切れにならないのはなぜですか

有効期限が設定されているにもかかわらず、mysql bin ログが期限切れにならないのはなぜですか

私は 5.7.37-log MySQL Community Server を使用しています。mysqld.cnf は以下のようになります。

server_id = 11
log_bin = bin.log
log-bin-index = bin-log.index
binlog_format = row
max_binlog_size = 100M
socket = mysql.sock
expire_logs_days = 1

ログを確認すると、1 日で期限が切れるように指定しているにもかかわらず、ログは増え続けています。expire_logs_days を使用します。

上記の設定では、ログが自動的に削除されることを期待できますか、それとも手動で再度行う必要がありますか? いくつかのフォームに「 PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY; しかし、設定がすでに設定されている場合に上記のステートメントを手動で実行する意味がわかりません」と書かれています。

bin ログの有効期限のメカニズムを理解するのを手伝ってください。 1 日後に有効期限を設定しましたが、bin.00001 や bin.0002 などのサイズは毎日削減されますか? または、ログが本当に期限切れになっていることをどのように確認すればよいですか?

生成された bin ログのスクリーンショットを添付します。

ここに画像の説明を入力してください

答え1

1 日後にログを実行して削除するタイマーはありません。ログの削除は、ログ フラッシュ イベントによってトリガーされます。そのため、新しい binlog が生成されるのは、その時点です。データベースで時間がかかりすぎて、ログが毎日フラッシュされない場合は、max-binlog-size を低い値に設定できます。もう 1 つの良いオプションは、バックアップ戦略の一環として、常にログをフラッシュすることです。

関連情報