mysql的expire_logs_days參數引發的問題

最近又重溫了一次mysql的主從配置,本來以爲已經試過一兩次了(可參看這裏),沒什麼大的問題,但是沒想到卻沒有成功,查看了一下錯誤記錄

Slave: Table 'XXX' doesn't exist
Error running query, ......,We stopped at log 'mysql-bin.000036' position 154.

本想看看主數據的這個文件的position 154是什麼語句,使用語句

show binlog events in 'mysql-bin.000036'

居然返回了502。

又到主庫的服務器查看了下binlog的存儲情況,發現編號36的binlog居然有340M,等等爲啥是從36開始的,不是應該從1開始的嗎?那其他的文件到哪裏去了?難道設置了參數定期刪除binlog?於是又來到了my.cnf文件,查看文件之後找到了一個expire_logs_days。經搜索,確定了這個參數就是刪除以前binlog文件的“罪魁禍首”。到這來,大概明白了爲啥主從同步沒有成功,因爲這是基於binlog的,但是binlog文件不全,導致無法正確的進行主從同步。

結論

1.根據情況設置expire_logs_days
2.要設置max_binlog_size爲一個合理的值,這樣查看binlog的時候不會出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章