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

MySQL5.7限制general_log日志大小的實(shí)現(xiàn)

 更新時(shí)間:2024年10月29日 11:28:59   作者:高達(dá)可以過(guò)山車(chē)不行  
MySQL5.7.41中為避免通用查詢(xún)?nèi)罩緂eneral_log快速增長(zhǎng)占用硬盤(pán)空間,可以通過(guò)定時(shí)任務(wù)執(zhí)行腳本進(jìn)行每日備份或清理,從而限制其大小,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

背景

需求:

  • 在MySQL 5.7.41中開(kāi)啟general_log 并限制其大小,避免快速增長(zhǎng)占用硬盤(pán)空間。

解決:

  • 通過(guò)定時(shí)任務(wù),執(zhí)行簡(jiǎn)單的腳本,判斷general_log 日志的大小,實(shí)現(xiàn)對(duì)通用查詢(xún)?nèi)罩镜?ldquo;每日備份”或“每日清理”的功能。

多說(shuō)幾句:

  • 等保二級(jí)要求必須開(kāi)啟MySQL數(shù)據(jù)庫(kù)的通用查詢(xún)?nèi)罩?code>general_log ,但其文件大小增長(zhǎng)速度太快,數(shù)據(jù)庫(kù)有效數(shù)據(jù)都還沒(méi)增長(zhǎng)多少,硬盤(pán)空間可能就會(huì)被general_log 日志占用不少。而binog 至少還能通過(guò)binlog_expire_logs_seconds過(guò)期時(shí)間參數(shù)設(shè)置日志保存策略,避免占用空間。沒(méi)有這樣的參數(shù)限制general_log,必然要通過(guò)其它手段限制general_log空間。

實(shí)際操作:備份腳本和清理腳本

提供兩種思路:

  • 思路一:每日檢查日志大小,當(dāng)其超過(guò)某個(gè)閾值時(shí),將文件復(fù)制歸檔到某個(gè)專(zhuān)門(mén)存儲(chǔ)日志的目錄。
  • 思路二:每日檢查日志大小,當(dāng)超過(guò)某個(gè)閾值時(shí),不執(zhí)行歸檔備份,直接將general_log內(nèi)容清除。

MySQL中開(kāi)啟general日志需要修改my.cnf文件,增加以下兩行指定日志存儲(chǔ)路徑:

[mysqld]
general_log = 1
general_log_file = /mnt/general.log

思路一:每日備份日志

參考腳本 bak_general_log.sh

#!/bin/bash

LOG_FILE="/mnt/general.log"
MAX_SIZE=100

if [ -f "$LOG_FILE" ]; then
    CURRENT_SIZE=$(du -m "$LOG_FILE" | awk '{print $1}')
    
    if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
        mv "$LOG_FILE" "$LOG_FILE.$(date +%Y%m%d%H%M%S)"
        touch "$LOG_FILE"
        chmod 0640 "$LOG_FILE"
        chown mysql:mysql "$LOG_FILE"
        systemctl restart mysql
    fi
fi

思路二:每日清空日志

參考腳本 clear_general_log.sh

#!/bin/bash

LOG_FILE="/mnt/general.log"
MAX_SIZE=100

if [ -f "$LOG_FILE" ]; then
    CURRENT_SIZE=$(du -m "$LOG_FILE" | awk '{print $1}')
    
    if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
        echo > "$LOG_FILE"
    fi
fi

快速驗(yàn)證腳本的方法:dd創(chuàng)建日志文件

  • 用dd命令快速生成指定大小的文件,比如生成101MB大小的/mnt/general.log文件,可以執(zhí)行以下命令:
dd if=/dev/zero of=/mnt/general.log bs=1M count=101
  • 執(zhí)行之前準(zhǔn)備的腳本文件,查看結(jié)果。

參考截圖

在這里插入圖片描述

實(shí)際操作:配置corntab定時(shí)任務(wù)

給腳本配置可執(zhí)行權(quán)限:

chmod +x bak_general_log.sh
chmod +x clear_general_log.sh

使用cron等工具將腳本定期執(zhí)行,例如每天凌晨執(zhí)行一次:

crontab -e

然后在編輯器中添加以下內(nèi)容:

0 0 * * * /mnt/bak_general_log.sh
0 0 * * * /mnt/clear_general_log.sh

上述腳本二選一即可。

結(jié)束

注意:

  • 備份腳本中沒(méi)有指定備份目錄。
  • 備份腳本中涉及了MySQL應(yīng)用重啟。
  • 備份腳本的具體內(nèi)容可根據(jù)實(shí)際情況修改。

到此這篇關(guān)于MySQL5.7限制general_log日志大小的文章就介紹到這了,更多相關(guān)MySQL5.7限制general_log日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MySQL9.0的兩種部署模式及各個(gè)版本發(fā)布的新功能

    MySQL9.0的兩種部署模式及各個(gè)版本發(fā)布的新功能

    本文主要介紹了MySQL9.0的兩種部署模式及各個(gè)版本發(fā)布的新功能,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • MySQL 配置文件 my.cnf / my.ini 區(qū)別解析

    MySQL 配置文件 my.cnf / my.ini 區(qū)別解析

    充分理解 MySQL 配置文件中各個(gè)變量的意義對(duì)我們有針對(duì)性的優(yōu)化 MySQL 數(shù)據(jù)庫(kù)性能有非常大的意義,這篇文章主要介紹了MySQL 配置文件 my.cnf / my.ini 區(qū)別,需要的朋友可以參考下
    2022-11-11
  • MySQL中必須了解的13個(gè)關(guān)鍵字總結(jié)

    MySQL中必須了解的13個(gè)關(guān)鍵字總結(jié)

    這篇文章主要為大家詳細(xì)介紹了MySQL中必須了解學(xué)會(huì)的13個(gè)關(guān)鍵字,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們掌握MySQL有一定的幫助,需要的可以了解下
    2023-09-09
  • 關(guān)于TIMESTAMP with implicit DEFAULT value is deprecated 錯(cuò)誤解決方法

    關(guān)于TIMESTAMP with implicit DEFAULT value&

    本文介紹了“TIMESTAMP with implicit DEFAULT value is deprecated”錯(cuò)誤的原因及解決方法,解決方法包括顯式指定默認(rèn)值、修改字段類(lèi)型、更新數(shù)據(jù)庫(kù)版本或?qū)で髱椭?感興趣的朋友一起看看吧
    2025-02-02
  • MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫(xiě)分離

    MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫(xiě)分離

    大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫(xiě)分離,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一個(gè)字段同時(shí)滿足多個(gè)條件的查詢(xún)

    一個(gè)字段同時(shí)滿足多個(gè)條件的查詢(xún)

    當(dāng)一個(gè)字段需要同時(shí)等于多個(gè)值的時(shí)候,用and直接連不會(huì)有數(shù)據(jù)查出。
    2011-08-08
  • Mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的對(duì)應(yīng)方式

    Mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的對(duì)應(yīng)方式

    今天小編就為大家分享一篇關(guān)于Mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的對(duì)應(yīng)方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • MySQL 統(tǒng)計(jì)查詢(xún)實(shí)現(xiàn)代碼

    MySQL 統(tǒng)計(jì)查詢(xún)實(shí)現(xiàn)代碼

    MySQL 統(tǒng)計(jì)查詢(xún)其實(shí)就是通過(guò)SELECT COUNT() FROM 語(yǔ)法用于從數(shù)據(jù)表中統(tǒng)計(jì)數(shù)據(jù)行數(shù)
    2014-05-05
  • 一文了解MySQL事務(wù)隔離級(jí)別

    一文了解MySQL事務(wù)隔離級(jí)別

    這篇文章主要介紹了一文了解MySQL事務(wù)隔離級(jí)別,MySQL?事務(wù)隔離級(jí)別是為了解決并發(fā)事務(wù)互相干擾的問(wèn)題的,文章介紹?4?種事物隔離,需要的小伙伴可以學(xué)習(xí)一下
    2022-07-07
  • 利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    利用JuiceFS使MySQL?備份驗(yàn)證性能提升?10?倍

    這篇文章主要介紹了如何讓?MySQL?備份驗(yàn)證性能提升?10?倍,JuiceFS?非常適合用來(lái)做?MySQL?物理備份,通過(guò)不斷調(diào)整?XtraBackup?的參數(shù)和?JuiceFS?的掛載參數(shù),在一個(gè)小時(shí)內(nèi)將時(shí)間縮短到原先的?1/10,下文一起來(lái)看相關(guān)內(nèi)容的詳細(xì)介紹吧
    2022-03-03

最新評(píng)論