您好,登錄后才能下訂單哦!
寫在前面:
現在有這樣一個需求,需要統計線上數據庫每天產生的數據量有多少,以此來反饋線上業務庫的繁忙程度,怎么做呢?剛開始的時候,考慮用統計數據庫備份文件大小,然后對比幾天內的數據量差異的方法來進行統計,后來經過思考,發現這樣一來,只能看出數據量增加了多少(只能統計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
如果你認為筆者哪里寫的有問題,或者你有更好的想法,歡迎下方留言!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。