首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 清理 log-bin 二進制日誌釋放磁盤空間:單機與主從兩種場景

     編輯:MySQL 資料庫相關知識

現象

VPS 剩餘空間驟減至 1G,排查發現 /var/lib/mysql/mysql-bin.000*** 佔用 10G+。

Binlog 作用

  1. 數據恢復:定位破壞性操作時間點
  2. 主從同步:從庫回放主庫 Binlog

單機環境:直接禁用並清理

-- 登入 MySQL
RESET MASTER;  -- 清空所有 binlog,索引歸零
# my.cnf 註釋掉
# log-bin=mysql-bin
# binlog_format=mixed
# 刪除數據目錄下 mysql-bin.*
# 重啟服務

主從環境:安全清理流程

  1. 各從庫 SHOW SLAVE STATUS 確認正在讀取的 Master_Log_File
  2. 主庫 SHOW MASTER LOGS 列出所有 Binlog
  3. 取所有從庫中 最舊 仍在讀取的文件為「目標日誌」
  4. PURGE BINARY LOGS TO '目標日誌'; 或 PURGE BINARY LOGS BEFORE 'YYYY-MM-DD HH:MM:SS';
網絡正常時,保留最新 1-2 個 Binlog 通常足夠;異常時保留窗口需覆蓋最長延遲時間。

自動過期配置

[mysqld]
expire_logs_days = 7  -- 7 天自動清理
max_binlog_size = 500M  -- 單文件上限,防止單檔過大

緊急騰挪技巧

  • 將 Binlog 目錄掛載到大容量分區:ln -s /big_disk/mysql-bin /var/lib/mysql/mysql-bin
  • 臨時關閉 Binlog:SET GLOBAL sql_log_bin=OFF; (僅當前會話,重啟失效)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved