个体户 建设网站,局域网站怎么做,佛山外贸网站设计,网站开发与管理大作业文章目录 前言一、分析 binlog 内容二、编写脚本结果总结 前言
高效快捷分析 mysql binlog 日志文件。 mysql binlog 文件很大 怎么快速通过关键字查找内容 一、分析 binlog 内容
通过 mysqlbinlog 命令可以看到 binlog 解析之后的大概样子
二、编写脚本
编写脚本 search_… 文章目录 前言一、分析 binlog 内容二、编写脚本结果总结 前言
高效快捷分析 mysql binlog 日志文件。 mysql binlog 文件很大 怎么快速通过关键字查找内容 一、分析 binlog 内容
通过 mysqlbinlog 命令可以看到 binlog 解析之后的大概样子
二、编写脚本
编写脚本 search_txt.sh作用是搜索 binlog 内容 使用 awk
#!/bin/bash# 设置变量if [ $1 ]; then echo param can not null exit 1
fi
BINLOG_FILE/pddyjc/mysql/logbin/log_bin.$1 # 替换为你的 binlog 文件路径
SEARCH_STRINGpddyjc_pb_year_sxbph_report_info # 替换为你要搜索的字符串
OUTPUT_FILEsearch_pddyjc_pb_year_sxbph_report_info_$1.txt # 替换为你想要保存输出结果的文件路径if [ -e $BINLOG_FILE ]; thenecho $BINLOG_FILE
else echo $BINLOG_FILE file not existsexit 1
fi
# 使用 awk 筛选 binlog 中包含特定字符串的完整事件
/pddyjc/mysql/bin/mysqlbinlog $BINLOG_FILE | awk -v search_string$SEARCH_STRING BEGIN { capturing 0; prev_date_str ; # 附加 记录上一次时间行}# /[#]/ { next; } # 跳过注释行/$/ { # 空行表示新事件的开始if (capturing) {capturing 0; # 结束当前事件的捕获}}{# 自定义判断条件 if ($0 ~ search_string $0 !~ insert) {capturing 1; # 开始捕获事件if (prev_date_str ! ) {print prev_date_str; # 这里输出有时间那行以方便判断执行时间}}if (capturing) {print; # 如果正在捕获事件则输出当前行}# 更新 prev_date_strif ($0 ~ end_log_pos) { prev_date_str $0 # 把时间行缓存} }$OUTPUT_FILE# 输出结果提示
echo 筛选完成结果已保存到 $OUTPUT_FILE
执行方式, 1234 是binlog 文件名序号根据实际情况替换 sh search_txt.sh 1234
结果
查看输出文件内容得到的结果内容如下 总结
熟悉掌握 awk快速通过指定关键字、表名等查找二进制日志内容。 —————— 但行好事莫问前程你若盛开蝴蝶自来