使用logrotete定時切割mysql的慢日志操作
背景:
在 Linux 系統(tǒng)中,logrotate
是常用的日志文件管理工具,可以配置它來對 MySQL 的慢查詢?nèi)罩具M行輪轉(zhuǎn),例如按照每天或者每周進行輪轉(zhuǎn),將舊的日志文件備份壓縮并重新生成新的日志文件來繼續(xù)記錄!
創(chuàng)建配置文件
創(chuàng)建一個專門用于配置 MySQL 慢查詢?nèi)罩厩懈钜?guī)則的文件,通常放在 /etc/logrotate.d/
目錄下。假設(shè)你的 MySQL 慢查詢?nèi)罩疚募麨?/var/lib/mysql/[主機名]-slow.log
(這里的 [主機名]
需要替換為實際的主機名稱,你可以通過 hostname
命令查看主機名),創(chuàng)建名為 mysql-slow
的配置文件(文件路徑為 /etc/logrotate.d/mysql-slow
)
這是我目前在用的慢日志切割配置,可以直接拿來使用(密碼替換進去)
/data/mysql/my3306/log/slow.log { daily missingok rotate 30 compress notifempty create 640 mysql mysql dateext dateformat -%Y%m%d sharedscripts postrotate /usr/local/mysqlInstall/mysql/bin/mysql -uroot -p密碼 -e "SET GLOBAL slow_query_log = OFF; SET GLOBAL slow_query_log = ON;" endscript }
關(guān)鍵參數(shù)說明
1. 輪轉(zhuǎn)頻率與保留策略
- **
daily
**
每天檢查一次日志文件,滿足條件則觸發(fā)輪轉(zhuǎn)。
- **
rotate 30
**
保留最近30次輪轉(zhuǎn)的日志文件(默認按天輪轉(zhuǎn),即保留30天日志)。
- **
compress
**
壓縮舊日志為 .gz
格式,節(jié)省磁盤空間。
2. 文件命名與日期格式
- **
dateext
**
使用日期作為輪轉(zhuǎn)文件的后綴(例如 slow.log-20231101
)。
- **
dateformat -%Y%m%d
**
自定義日期格式:-%Y%m%d
表示 -年月日
(如 -20231101
)。
3. 文件權(quán)限與空文件處理
- **
create 640 mysql mysql
**
輪轉(zhuǎn)后創(chuàng)建的新日志文件權(quán)限為 640
,所有者為 mysql
用戶和組(需確保 MySQL 進程有寫入權(quán)限)。
- **
notifempty
**
如果日志文件為空,跳過輪轉(zhuǎn)(避免生成無意義的空日志文件)。
4. 執(zhí)行腳本與錯誤處理
- **
sharedscripts
**
所有匹配的日志文件輪轉(zhuǎn)完成后,只執(zhí)行一次 postrotate
腳本(即使有多個日志文件)。
- **
postrotate
**
輪轉(zhuǎn)后執(zhí)行以下操作:
- 臨時關(guān)閉 MySQL 慢查詢?nèi)罩荆?code>slow_query_log = OFF)。
- 重新開啟慢查詢?nèi)罩荆?code>slow_query_log = ON),使 MySQL 寫入新日志文件。
- 注意:需替換
-p密碼
為實際的 MySQL root 密碼。
5. 其他
- **
missingok
**
如果日志文件不存在,忽略錯誤繼續(xù)執(zhí)行(避免因文件丟失導(dǎo)致任務(wù)失?。?/p>
測試
配置完成后,可以手動運行 logrotate
命令來測試配置是否正確以及能否正常工作
logrotate -vf /etc/logrotate.d/mysql-slow
-f
參數(shù)表示強制按照配置文件執(zhí)行輪轉(zhuǎn)操作
定時任務(wù)部署
為了避免重復(fù)執(zhí)行,將cron.daily中的logrotate移除
cd /etc/cron.daily mv logrotate logrotate.bak
crontab部署
0 2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/mysql-slow
到此這篇關(guān)于如何使用logrotete定時切割mysql的慢日志的文章就介紹到這了,更多相關(guān)mysql慢日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別
本文給大家分享的是mysql索引中的KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別,即主鍵索引,唯一索引和普通索引的區(qū)別,希望大家能夠喜歡2017-07-07解決mysql安裝時出現(xiàn)error Nr.1045問題的方法
這篇文章主要為大家詳細介紹了解決mysql安裝時出現(xiàn)error Nr.1045問題的方法,感興趣的小伙伴們可以參考一下2016-06-06MySQL 如何查找并刪除重復(fù)記錄的實現(xiàn)
這篇文章主要介紹了MySQL 如何查找并刪除重復(fù)記錄的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08