欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用logrotete定時(shí)切割mysql的慢日志操作

 更新時(shí)間:2025年03月12日 17:07:55   作者:邱邱i  
本文介紹了如何在Linux系統(tǒng)中使用logrotate工具對(duì)MySQL慢查詢?nèi)罩具M(jìn)行自動(dòng)輪轉(zhuǎn)和管理配置,包括創(chuàng)建配置文件、設(shè)置輪轉(zhuǎn)頻率、文件命名、權(quán)限、執(zhí)行腳本以及測(cè)試配置的方法,感興趣的朋友一起看看吧

背景:

在 Linux 系統(tǒng)中,logrotate 是常用的日志文件管理工具,可以配置它來對(duì) MySQL 的慢查詢?nèi)罩具M(jìn)行輪轉(zhuǎn),例如按照每天或者每周進(jìn)行輪轉(zhuǎn),將舊的日志文件備份壓縮并重新生成新的日志文件來繼續(xù)記錄!

創(chuàng)建配置文件

創(chuàng)建一個(gè)專門用于配置 MySQL 慢查詢?nèi)罩厩懈钜?guī)則的文件,通常放在 /etc/logrotate.d/ 目錄下。假設(shè)你的 MySQL 慢查詢?nèi)罩疚募麨?/var/lib/mysql/[主機(jī)名]-slow.log(這里的 [主機(jī)名] 需要替換為實(shí)際的主機(jī)名稱,你可以通過 hostname 命令查看主機(jī)名),創(chuàng)建名為 mysql-slow 的配置文件(文件路徑為 /etc/logrotate.d/mysql-slow

這是我目前在用的慢日志切割配置,可以直接拿來使用(密碼替換進(jìn)去)

/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)的日志文件(默認(rè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 進(jìn)程有寫入權(quán)限)。

  • **notifempty**

如果日志文件為空,跳過輪轉(zhuǎn)(避免生成無意義的空日志文件)。

4. 執(zhí)行腳本與錯(cuò)誤處理

  • **sharedscripts**

所有匹配的日志文件輪轉(zhuǎn)完成后,只執(zhí)行一次 postrotate 腳本(即使有多個(gè)日志文件)。

  • **postrotate**

輪轉(zhuǎn)后執(zhí)行以下操作:

  • 臨時(shí)關(guān)閉 MySQL 慢查詢?nèi)罩荆?code>slow_query_log = OFF)。
  • 重新開啟慢查詢?nèi)罩荆?code>slow_query_log = ON),使 MySQL 寫入新日志文件。
  • 注意:需替換 -p密碼 為實(shí)際的 MySQL root 密碼。

5. 其他

  • **missingok**

如果日志文件不存在,忽略錯(cuò)誤繼續(xù)執(zhí)行(避免因文件丟失導(dǎo)致任務(wù)失?。?。

測(cè)試

配置完成后,可以手動(dòng)運(yùn)行 logrotate 命令來測(cè)試配置是否正確以及能否正常工作

logrotate -vf /etc/logrotate.d/mysql-slow

-f 參數(shù)表示強(qiáng)制按照配置文件執(zhí)行輪轉(zhuǎn)操作

定時(shí)任務(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定時(shí)切割mysql的慢日志的文章就介紹到這了,更多相關(guān)mysql慢日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論