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`
_date10=`date +%Y-%m-%d -d "-10 days"`
_newlog=/home/slowlog/logs
FILE_A="/usr/local/mysql57/data/test-pp-mysql-slave-slow.log.$_date"
FILE_B="$_newlog/slowlog-loglist.$_date-log.txt"
FILE_C="$_newlog/slowlog-cc01-loglist.$_date-log.txt"
 
HOME_DIR="/home/slowlog"
 
LAST_LINE_COUNT_FILE="$HOME_DIR/.last_line_count"
 
rm -rf $_newlog/slowlog-loglist.$_date10-log.txt
rm -rf $_newlog/slowlog-cc01-loglist.$_date10-log.txt
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:/i\*****************************************' >> "$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:/i\*****************************************' >> "$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/1734331089.html


【手机扫一扫查看文本】

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





慢日志 指定表 日志 详细过程 redis6.0 主从同步 持久化 general_log mysql慢日志 5.7 使用方法 时区 慢查询 捞取方式 redis postgresql 不停机 mysqldump 自动备份 redis安装 xtrabackup centos7 参数使用 增加从库 三主三从节点 备份 数据恢复 redis3.0集群环境 方案 dump操作