mysql8新特性之binlog_expire_logs_seconds淺析
在mysql 8.0版本中新增了binlog_expire_logs_seconds,該參數(shù)表示binlog的失效日期單位秒。
8.0之前的版本,binlog的失效日志用expire_logs_days來配置,單位是天。
當(dāng)mysql啟動(dòng)時(shí),參數(shù)文件中binlog_expire_logs_seconds和expire_logs_days都沒配置的時(shí)候,mysql會(huì)使用binlog_expire_logs_seconds作為默認(rèn)配置,并且默認(rèn)值為2592000秒,即30天。
當(dāng)mysql啟動(dòng)時(shí),參數(shù)文件中binlog_expire_logs_seconds和expire_logs_days有一個(gè)設(shè)置為非0值則非0值的參數(shù)作為binlog日志的失效期。
在使用了binlog_expire_logs_seconds作為binlog的配置文件,此時(shí)在修改expire_logs_days會(huì)拋出錯(cuò)誤,不允許同時(shí)使用binlog_expire_logs_seconds和expire_logs_days.
該參數(shù)支持動(dòng)態(tài)修改,并且支持持久化到配置文件:
mysql> set global binlog_expire_logs_seconds=604800;</code> <code>Query OK, 0 rows affected (0.00 sec)</code> <code>mysql> show variables like '%expire_logs%';</code> <code>+--------------------------------+-------+</code> <code>| Variable_name | Value |</code> <code>+--------------------------------+-------+</code> <code>| binlog_expire_logs_seconds | 604800|</code> <code>| expire_logs_days | 0 |</code> <code>+--------------------------------+-------+</code> <code>3 rows in set (0.00 sec)
--持久化:
mysql> set persist binlog_expire_logs_seconds=604800;</code> <code>Query OK, 0 rows affected (0.00 sec)
也可以通過修改配置文件,將binlog_expire_logs_seconds=604800 加到[mysqld]下
總結(jié)
如果 MySQL 每天的數(shù)據(jù)修改很少,產(chǎn)生的 binlog 很小,而max_binlog_size設(shè)置很大。每次在達(dá)到單個(gè) binlog 的最大大小前,執(zhí)行定時(shí)任務(wù)調(diào)用 xtrabackup 備份,備份時(shí)加的備份鎖LOCK INSTANCE FOR BACKUP和FLUSH NO_WRITE_TO_BINLOG BINARY LOGS會(huì)導(dǎo)致:binlog 刷新了,但是無法自動(dòng)刪除過期的 binlog 。新的 binlog 寫一天沒有達(dá)到最大大小,又進(jìn)行備份,每天循環(huán)這個(gè)邏輯,導(dǎo)致過期的 binlog 越來越多,一直無法被自動(dòng)刪除。
當(dāng)然,如果你使用的是 MySQL5.7,那并不會(huì)有這個(gè)問題,雖然 MySQL5.7 時(shí)備份時(shí)會(huì)加全局鎖,但是并不影響過期 binlog 的自動(dòng)刪除。從這個(gè)角度看,這是個(gè) bug,所以報(bào)給官方后很快被確認(rèn)了:https://bugs.mysql.com/bug.php?id=104785
等待修復(fù)的過程是漫長的,如果你恰好遇見了這個(gè)冷門的 bug,可以把 max_binlog_size調(diào)小,保證在備份前 binlog 就能夠達(dá)到最大大小,自然的刷新可以正常觸發(fā)自動(dòng)刪除。
到此這篇關(guān)于mysql8新特性之binlog_expire_logs_seconds的文章就介紹到這了,更多相關(guān)mysql8新特性binlog_expire_logs_seconds內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
xtrabackup備份還原MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了xtrabackup備份還原MySQL數(shù)據(jù)庫的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
mysql事務(wù)select for update及數(shù)據(jù)的一致性處理講解
今天小編就為大家分享一篇關(guān)于mysql事務(wù)select for update及數(shù)據(jù)的一致性處理講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
Mysql數(shù)據(jù)庫實(shí)現(xiàn)多字段過濾的方法
這篇文章主要介紹了Mysql數(shù)據(jù)庫實(shí)現(xiàn)多字段過濾的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
JMeter對(duì)MySQL數(shù)據(jù)庫進(jìn)行壓力測(cè)試的實(shí)現(xiàn)步驟
本文主要介紹了JMeter對(duì)MySQL數(shù)據(jù)庫進(jìn)行壓力測(cè)試的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
有關(guān)mysql中sql的執(zhí)行順序的小問題
在MySQL中我們可能會(huì)遇到一些關(guān)于執(zhí)行順序的問題,下面小編就來帶大家了解一下原因以及如何解決2019-05-05

