統計數據庫每天產生的數據量大小

寫在前面:


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


#!/bin/bash
#統計數據庫每天產生的數據量大小
#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


如果你認爲筆者哪裏寫的有問題,或者你有更好的想法,歡迎下方留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章