溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

mysql8新特性binlog_expire_logs_seconds有什么作用

發(fā)布時(shí)間:2023-02-28 14:01:43 來(lái)源:億速云 閱讀:102 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“mysql8新特性binlog_expire_logs_seconds有什么作用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“mysql8新特性binlog_expire_logs_seconds有什么作用”文章吧。

在mysql 8.0版本中新增了binlog_expire_logs_seconds,該參數(shù)表示binlog的失效日期單位秒。

8.0之前的版本,binlog的失效日志用expire_logs_days來(lái)配置,單位是天。

當(dāng)mysql啟動(dòng)時(shí),參數(shù)文件中binlog_expire_logs_seconds和expire_logs_days都沒(méi)配置的時(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)

也可以通過(guò)修改配置文件,將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 BACKUPFLUSH NO_WRITE_TO_BINLOG BINARY LOGS會(huì)導(dǎo)致:binlog 刷新了,但是無(wú)法自動(dòng)刪除過(guò)期的 binlog 。新的 binlog 寫(xiě)一天沒(méi)有達(dá)到最大大小,又進(jìn)行備份,每天循環(huán)這個(gè)邏輯,導(dǎo)致過(guò)期的 binlog 越來(lái)越多,一直無(wú)法被自動(dòng)刪除。

當(dāng)然,如果你使用的是 MySQL5.7,那并不會(huì)有這個(gè)問(wèn)題,雖然 MySQL5.7 時(shí)備份時(shí)會(huì)加全局鎖,但是并不影響過(guò)期 binlog 的自動(dòng)刪除。從這個(gè)角度看,這是個(gè) bug,所以報(bào)給官方后很快被確認(rèn)了:https://bugs.mysql.com/bug.php?id=104785

等待修復(fù)的過(guò)程是漫長(zhǎng)的,如果你恰好遇見(jiàn)了這個(gè)冷門(mén)的 bug,可以把 max_binlog_size調(diào)小,保證在備份前 binlog 就能夠達(dá)到最大大小,自然的刷新可以正常觸發(fā)自動(dòng)刪除。

以上就是關(guān)于“mysql8新特性binlog_expire_logs_seconds有什么作用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI