标签:bin 00 每天 stop 数据库 db 数据量 统计
写在前面:
现在有这样一个需求,需要统计线上数据库每天产生的数据量有多少,以此来反馈线上业务库的繁忙程度,怎么做呢?刚开始的时候,考虑用统计数据库备份文件大小,然后对比几天内的数据量差异的方法来进行统计,后来经过思考,发现这样一来,只能看出数据量增加了多少(只能统计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
如果你认为笔者哪里写的有问题,或者你有更好的想法,欢迎下方留言!
标签:bin,00,每天,stop,数据库,db,数据量,统计 来源: https://blog.51cto.com/20131104/2407809
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。