
我正在使用 5.7.37-log MySQL 社群伺服器。我的 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
沒有計時器在一天後運行並刪除日誌。日誌刪除是由日誌刷新事件觸發的。這就是新的binlog生成的時候。如果我們的資料庫花費的時間太長且日誌沒有每天刷新,您可以將 max-binlog-size 設定為較低的值。另一個不錯的選擇是始終刷新日誌作為備份策略的一部分。