MySQL--运维内参中的binlog_summary脚本
#!/bin/bash
##===================================================##
## 脚本出自《MySQL运维内参》
##===================================================##
BINLOG_EXE="/export/servers/mysql/bin/mysqlbinlog"
BINLOG_FILE="/export/data/mysql/data/mysql-bin.000002"
START_TIME="2015-01-21 00:00:00"
STOP_TIME="2019-01-01 00:00:00"
OUTPUT_FILE="/tmp/binlog_summary.txt"
"${BINLOG_EXE}" --base64-output=decode-rows -vv --start-datetime="${START_TIME}" --stop-datetime="${STOP_TIME}" ${BINLOG_FILE} | awk \
'BEGIN {xid="null";s_type=""; stm="";endtm="";intsta=0;inttal=0;s_count=0;count=0;insert_count=0;update_count=0;delete_count=0;flag=0;bf=0;period=0;} \
{
if (match($, /^(BEGIN)/)) {bg=;} \
if (match($, /#.*server id/)) {if(bg==){statm=substr($,,)" "$;cmd=sprintf("date -d \"%s\" +%%s", statm);cmd|getline intsta;close(cmd);bg=;bf=;}else if(bf==){endtm=substr($,,)" "$;cmd=sprintf("date -d \"%s\" +%%s", endtm);cmd|getline inttal;close(cmd);}} \
if(match($, /#.*Table_map:.*mapped to number/)) {printf "Timestamp : " $ " " $ " Table : " $(NF-); flag=} \
else if (match($, /#.*Xid =.*/)) {xid=$(NF)} \
else if (match($, /(### INSERT INTO .*..*)/)) {count=count+;insert_count=insert_count+;s_type="INSERT"; s_count=s_count+;} \
else if (match($, /(### UPDATE .*..*)/)) {count=count+;update_count=update_count+;s_type="UPDATE"; s_count=s_count+;} \
else if (match($, /(### DELETE FROM .*..*)/)) {count=count+;delete_count=delete_count+;s_type="DELETE"; s_count=s_count+;} \
else if (match($, /^(# at) /) && flag== && s_count>) {print " Query Type : "s_type " " s_count " row(s) affected" ;s_type=""; s_count=; } \
else if (match($, /^(COMMIT)/)) {period=inttal-intsta;if(inttal==){period=};print "[Transaction total : " count " Insert(s) : " insert_count " Update(s) : " update_count " Delete(s) : " \
delete_count " Xid : "xid" period : "period" ] \n+----------------------+----------------------+----------------------+----------------------+"; \
count=;insert_count=;update_count=; delete_count=;s_type=""; s_count=; flag=;bf=;bg=;} } ' \
> "${OUTPUT_FILE}" >& if [ $? -eq ]
then
echo "success,please see result in ${OUTPUT_FILE}"
else
echo "failed,please see result in ${OUTPUT_FILE}"
fi
MySQL--运维内参中的binlog_summary脚本的更多相关文章
- mysql运维必会的一些知识点整理
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- 搭建稳固的MySQL运维体系
MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...
- 公司没有 DBA,Mysql 运维自己来
如果你的公司有 DBA,那么我恭喜你,你可以无视 Mysql 运维.如果你的公司没有 DBA,那你就好好学两手 Mysql 基本运维操作,行走江湖,防身必备. 环境:CentOS7 版本: 一.虚拟机 ...
- 运维工作中sed常规操作命令梳理
sed是一个流编辑器(stream editor),一个非交互式的行编辑器.它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间",接着用sed命令处理缓冲 ...
- Python 开发个人微信号在运维开发中的使用
一.主题:Python 开发个人微信号在运维开发中的使用 二.内容: 企业公众号 介绍开发微信公众号的后台逻辑,包括服务器验证逻辑.用户认证逻辑 个人微信号 面对企业微信的种种限制,可以使用 Itch ...
- 美图秀秀DBA谈MySQL运维及优化
美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
- 七年老运维实战中的 Shell 开发经验总结【转】
无论是系统运维,还是应用运维,均可分为“纯手工”—> “脚本化”—> “自动化”—>“智能化”几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避 ...
随机推荐
- centos7 卸载 jdk
################ jdk 的安装 ###########################参考:https://www.cnblogs.com/Dylansuns/p/6974272.h ...
- 微信小程序 支付功能 服务器端(TP5.1)实现
首先下载微信支付SDK ,将整个目录的文件放在 /application/extend/WxPay 目录下 在使用SDK之前我们需要对 WxPay.Config.php 进行配置 <?php n ...
- Python函数定义和使用
函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果.通过使用函数,可以提高代码的重复利用率.本文主要介绍Python函数的定义.调用和函数参数设置方法. 函数的定义 Python函数定 ...
- Node.js 初识2
原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...
- Ansible运维工具
1.Ansible是一款极为灵活的开源工具套件,能够大大简化Unix管理员的自动化配置管理与流程控制方式.可以通过命令行或者GUI来使用Ansible,运行Ansible的服务器这里俗称“管理节点”: ...
- IntelliJ IDEA——SVN的配置及使用
服务端:VisualSVN-Server-3.9.1-x64 下载地址:https://www.visualsvn.com/server/download/ TortoiseSVN 安装 下载地址:h ...
- nmap的使用
安装完nmap后,看网上都是直接cmd后nmap的方式来查看是否安装成功,但实际我总是不对,然后自己想着进入安装包执行命令,果然成功.
- mysql win10x64 免安装版 安装配置
安装包下载或者 gaobo百度云/工具/开发工具/mysql-5.7.23-winx64.zip 第一步, 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: ...
- linux安装redis-4.0.2
一.下载redis cd /usr/local/src wget http://download.redis.io/releases/redis-4.0.2.tar.gz 二.解压 tar -zxvf ...
- netstat 常用参数总结
netstat 是一个机器网络查看工具 . 网络连接有哪些参数?