欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql binlog占用大量磁盤空間的解決方法

 更新時間:2024年06月06日 10:19:04   作者:ashq  
MySQL binlog(Binary Log)是MySQL數(shù)據(jù)庫的一種重要組件,用于記錄所有對數(shù)據(jù)庫的更改操作,當MySQL服務器接收到對數(shù)據(jù)庫的寫入請求并成功執(zhí)行后,這些更改會被寫入binlog,本文給大家介紹了mysql binlog占用大量磁盤空間的解決方法,需要的朋友可以參考下

查看當前日志保存天數(shù):

mysql> show variables like '%expire_logs_days%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.08 sec)

默認是0,也就是logs不過期。

也可以使用 show variables like '%expire%' 查看是否有開啟日志到期自動刪除

mysql> show variables like '%expire%';
+--------------------------------+--------+
| Variable_name                  | Value  |
+--------------------------------+--------+
| binlog_expire_logs_auto_purge  | ON     |
| binlog_expire_logs_seconds     | 432000 |
| disconnect_on_expired_password | ON     |
| expire_logs_days               | 0      |
+--------------------------------+--------+
4 rows in set (0.00 sec)

設置BINLOG到期時間

臨時生效,無需重起mysql

如果數(shù)據(jù)庫此時不便重啟,可以設置全局的參數(shù),使他臨時生效:

mysql> set global expire_logs_days=5;

設置了只保留5天BINLOG, 下次重啟mysql這個參數(shù)默認會失敗。

如果上面指令報錯,則改為set global binlog_expire_logs_seconds=432000

mysql> set global expire_logs_days=7;
ERROR 3683 (HY000): The option expire_logs_days and binlog_expire_logs_seconds cannot be used together. Please use binlog_expire_logs_seconds to set the expire time (expire_logs_days is deprecated)
mysql> set global binlog_expire_logs_seconds=432000;
Query OK, 0 rows affected (0.00 sec)
 
mysql> 
mysql> show variables like '%expire%';
+--------------------------------+--------+
| Variable_name                  | Value  |
+--------------------------------+--------+
| binlog_expire_logs_auto_purge  | ON     |
| binlog_expire_logs_seconds     | 432000 |
| disconnect_on_expired_password | ON     |
| expire_logs_days               | 0      |
+--------------------------------+--------+
4 rows in set (0.00 sec)

寫入配置文件,mysql重啟依舊生效

如果要永久生效,需要在my.cnf中設置
vi /etc/my.cnf
追加內(nèi)容:

binlog_expire_logs_seconds=432000

手動刪除BINLOG

也可以先手動刪除BINLOG (purge binary logs)

刪除指定的日志

mysql> PURGE {MASTER | BINARY} LOGS TO 'log_name'

例:刪除binlog.1000

mysql> PURGE MASTER LOGS TO 'binlog.1000';

或刪除指定日期之前的日志索引中的所有二進制日志。

mysql> PURGE {MASTER | BINARY} LOGS BEFORE 'date'

例:刪除2023-06-03 12:00:00前的文件

mysql> PURGE MASTER LOGS BEFORE '2023-06-03 12:00:00';

例:刪除3天前的日志

mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

到此這篇關于mysql binlog占用大量磁盤空間的解決方法的文章就介紹到這了,更多相關mysql binlog占用磁盤空間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論