溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

統(tǒng)計數(shù)據(jù)庫每天產(chǎn)生的數(shù)據(jù)量大小

發(fā)布時間:2020-06-29 07:38:35 來源:網(wǎng)絡(luò) 閱讀:606 作者:insist_way 欄目:開發(fā)技術(shù)

寫在前面:


現(xiàn)在有這樣一個需求,需要統(tǒng)計線上數(shù)據(jù)庫每天產(chǎn)生的數(shù)據(jù)量有多少,以此來反饋線上業(yè)務(wù)庫的繁忙程度,怎么做呢?剛開始的時候,考慮用統(tǒng)計數(shù)據(jù)庫備份文件大小,然后對比幾天內(nèi)的數(shù)據(jù)量差異的方法來進(jìn)行統(tǒng)計,后來經(jīng)過思考,發(fā)現(xiàn)這樣一來,只能看出數(shù)據(jù)量增加了多少(只能統(tǒng)計insert、create等)。但如果業(yè)務(wù)庫更多的是執(zhí)行update、delete等操作,你會發(fā)現(xiàn)其實你的數(shù)據(jù)量并不會增加,甚至數(shù)據(jù)量較之前還會減少,這樣,反映不了線上業(yè)務(wù)庫的真實情況,而且這其中還摻雜著表碎片的影響。所以,經(jīng)過考慮,筆者決定寫個簡單的Shell,分析binlog來進(jìn)行統(tǒng)計較為靠譜


#!/bin/bash
#統(tǒng)計數(shù)據(jù)庫每天產(chǎn)生的數(shù)據(jù)量大小
#author:lzb


time=`date "+%F"`
dataBases="bailidb university knowledge interface crm edusoho_e newedusoho ucserver bailiurm teacherprogram"
mysqlbinlog=/usr/local/mysql/bin/mysqlbinlog
binlog="mysql-bin.000304"
start="2019-06-08 10:00:00"
stop="2019-06-09 10:00:00"

for db in $dataBases
do
?? ?$mysqlbinlog --database=$db --start-datetime="$start" --stop-datetime="$stop" $binlog > ${db}-$time.sql
?? ?sleep 3
?? ?du -sh ${db}-$time.sql
?? ?/bin/rm -f ${db}-$time.sql
done


如果你認(rèn)為筆者哪里寫的有問題,或者你有更好的想法,歡迎下方留言!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI