Mysql binlog日志文件過大的解決
磁盤突然報錯使用率過大,排查原因,發(fā)現(xiàn)mysql的binlog文件占用過大
命令
ls -l -h
mysql-binlog是MySQL數(shù)據(jù)庫的二進制日志,用于記錄用戶對數(shù)據(jù)庫操作的SQL語句((除了數(shù)據(jù)查詢語句)信息??梢允褂胢ysqlbin命令查看二進制日志的內(nèi)容。
可以通過設置my.cof配置文件的方式限制binlog文件的輸出。
1、相關binlog配置
vim /etc/my.cof
[mysqld] expire_logs_days = 3 #設置binlog清理時間 max_binlog_size = 100m #binlog每個日志文件大小 binlog_cache_size = 4m #binlog緩存大小 max_binlog_cache_size = 512m #最大binlog緩存大小
重啟mysql,看到只保留了前三天的日志
2、binlog相關高級設置
2.1 改變binlog模式
binlog的模式也有三種:STATEMENT、ROW、MIXED 。下面對這三種格式分別加以說明:
STATMENT模式
基于SQL語句的復制(statement-based replication, SBR),每一條會修改數(shù)據(jù)的sql語句會記錄到binlog中。
優(yōu)點:不需要記錄每一條SQL語句與每行的數(shù)據(jù)變化,這樣子binlog的日志也會比較少,減少了磁盤IO,提高性能。
缺點:在某些情況下會導致master-slave中的數(shù)據(jù)不一致(如sleep()函數(shù), last_insert_id(),以及user-defined functions(udf)等會出現(xiàn)問題)
ROW模式
不記錄每一條SQL語句的上下文信息,僅需記錄哪條數(shù)據(jù)被修改了,修改成了什么樣子了。
優(yōu)點:不會出現(xiàn)某些特定情況下的存儲過程、或function、或trigger的調(diào)用和觸發(fā)無法被正確復制的問題。
缺點:會產(chǎn)生大量的日志,尤其是alter table的時候會讓日志暴漲。
MIXED模式
混合模式復制(mixed-based replication, MBR):以上兩種模式的混合使用,一般的復制使用STATEMENT模式保存binlog,對于STATEMENT模式無法復制的操作使用ROW模式保存binlog,MySQL會根據(jù)執(zhí)行的SQL語句選擇日志保存方式。
修改配置文件
[mysqld] binlog_format = mixed #設置日志格式
2.2 相關SQL操作binlog
show binary logs; # 查看binlog現(xiàn)有詳情 show variables like '%log%'; # 查看log變量的相關配置 set global expire_logs_days = 3; # 設置binlog的保存時間 reset master; # 重置所有的binlog,相當于刪除所有的binlog,這個操作對主從集群影響非常大,因為主從賦值是基于binlog日志來實現(xiàn)的 PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date' # 刪除指定的日志或日期之前的日志索引中的所有二進制日志。MASTER和BINARY是同義詞 PURGE MASTER LOGS TO 'binlog.000013'; #清除binlog.000013日志 PURGE MASTER LOGS BEFORE '2020-01-08 10:00:00'; #清除2020-01-08 10:00:00前binlog日志 PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); # 清除3天前binlog日志BEFORE,變量的date自變量可以為'YYYY-MM-DD hh:mm:ss'格式。
到此這篇關于Mysql binlog日志文件過大的解決的文章就介紹到這了,更多相關Mysql binlog日志過大內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。