mysql慢日志捞取方式


目的是将sql慢日志接入日志系统,让开发人员能看到哪些sql执行慢,目前数据库是基于每天一个慢日志文件的方式,使用了以下的方式进行切换日志文件:

#cat /opt/job/1.sh
 
#!/bin/bash
time=`date +"%Y-%m-%d"`
_dir=/data/var/lib/mysql
user="root"
passwd="123456"
mysql -u$user -p$passwd -e "set global slow_query_log_file='$_dir/mysql-slave-slow.log.$time';"


然后,将日志格式进行调整,我目前的调整方式类似于以下这样:

#more slowlog.sh
#!/bin/bash
 
_date=`date +%Y-%m-%d`
FILE_A="/data/var/lib/mysql/mysql-slave-slow.log.$_date"
FILE_B="/nasdata/dbbackup/dbslowlog/slowlog-loglist.$_date-log.txt"
FILE_C="/nasdata/dbbackup/dbslowlog/slowlog-cc01-loglist-.$_date-log.txt"
 
HOME_DIR="/home/slowlog"
 
LAST_LINE_COUNT_FILE="$HOME_DIR/.last_line_count"
 
if [ ! -f "$FILE_A" ]; then
    echo "$FILE_A 不存在。"
    exit 1
fi
 
if [ ! -f "$FILE_B" ]; then
    echo "$FILE_B 不存在,正在创建..."
    touch "$FILE_B"
fi
 
if [ ! -f "$FILE_C" ]; then
    echo "$FILE_C 不存在,正在创建..."
    touch "$FILE_C"
fi
 
initial_line_count=$(wc -l < "$FILE_A")
 
if [ ! -f "$LAST_LINE_COUNT_FILE" ]; then
    echo "$initial_line_count" > "$LAST_LINE_COUNT_FILE"
        echo -e "First run , To be add all line!"
        tail -n "$initial_line_count" "$FILE_A" >> "$FILE_B"
         tail -n "$initial_line_count" "$FILE_A" | awk 'NF' | sed '/# Time:/{x;p;x;}' >> "$FILE_C"
        exit 1
fi
 
current_line_count=$(wc -l < "$FILE_A")
 
last_line_count=$(<"$LAST_LINE_COUNT_FILE")
 
if [ "$current_line_count" -gt "$last_line_count" ]; then
 
    new_line_count=$((current_line_count - last_line_count))
 
    tail -n "$new_line_count" "$FILE_A" >> "$FILE_B"
    tail -n "$new_line_count" "$FILE_A" | awk 'NF' | sed '/# Time:/{x;p;x;}' >> "$FILE_C"
 
    echo "已追加 $new_line_count 行到 $FILE_B。"
else
    echo "没有新增行。"
fi
 
echo "$current_line_count" > "$LAST_LINE_COUNT_FILE"


最后,将$FILE_C 有用的部分接入日志系统即可。



 



本文标签: mysql 慢日志 捞取方式

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/shujuku/1734328820.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





mysqldump 慢查询 redis3.0集群环境 情况处理 备份 redis安装 方案 三台机器 redis6.0 三主三从节点 mysql5.7 dump操作 持久化 主从同步 增量备份 定时执行 redis postgresql 日志归档 binlog 数据恢复 自动备份 增加从库 5.7 指定表 任务事件 增量恢复 centos7 参数使用 mysql慢日志