跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

shell实战之:mysql index文件检查机制

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 本文将重点讲述 shell实战中的mysql index 文件检查机制问题,请先看代码: 01#!/bin/sh 02def_check_index() 03{ 04#code by scpman 05#http://.scpman. 06#mail:freeddser@gmail.com 07#需求: 08#欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入本文将重点讲述 shell实战中的 mysql index 文件检查机制问题,请先看代码:01#!/bin/sh 02def_check_index() 03{04#code by scpman 05#http://.scpman.

06#mail:freeddser@gmail.com

07#需求:

08#09# 1.通过show master logs; 列出binlog文件序列如果顺序不对,或记录重复发告警 发邮件告警。

10# 2、查看mysql目录下的index文件,如果顺序不对,或记录重复发告警11#12#实现13#发送告警函数14def_send_mail() 15{16msgip="10.0.7.44" #syslog服务器17ser_IP=`cat /etc/rc.conf | grep -E "ifconfig_[em1|bce1]" | awk '{print "IP:"$2}'| sed -n 1p ` #本机的ip 18#echo $1 函数接收的第一个值19if [ -n "$1" ] && [ `echo "$1"|grep -c 'chongfu'` -gt 0 ] #判断$1是否在,并且统计下chongfu这个字符是否大于0 20then 21echo /usr/bin/logger -p local1.info -h $msgip "the services: $IP mysql index file $1 " #大于0说明有错误的,就得告警22exit 23elif [ -n "$1" ] && [ `echo "$1"|grep -c 'luanle'` -gt 0 ] #判断$1是否在,并且统计下luanle这个字符是否大于0 24then 25echo /usr/bin/logger -p local1.info -h $msgip "the services: $IP mysql index file $1 " #大于0说明有错误的,就得告警26exit 27else 28echo ok 29fi 30}31#1、判断index是否有重复的情况32def_index_is_one() 33{34if [ -n "$1" ]35then 36static_index=$1 37def_send_mail `awk '{a[$1]++}END{for (j in a) print j,a[j]}' $static_index | awk -v flag="$static_index" '{if($2>1) print "chongfu-->"$0}'`38else 39echo 'def_index_is_one $1 is null!exit'40exit MySQL(Linux)

MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。

下载41fi 42}43#检查mysql目录下的index文件内容顺序是否正常44def_static_index_shunxu() 45{46bzfile='/usr/dlm_db/mysql/zqtx-bin.index'47current_line=`cat ${bzfile}|head -n 1|sed -e "s#./zqtx-bin.##g"`48for i in `cat ${bzfile}`49do 50if [ `echo $i|sed -e "s#./zqtx-bin.##g"` -lt "$current_line" ]51then 52def_send_mail "luanle:${bzfile}_${current_line}"53exit 54fi 55current_line=`echo $i|sed -e "s#./zqtx-bin.##g"`56done 57}58#检查mysql中show master logs的index文件内容顺序是否正常59def_masterlog_index_shunxu() 60{61mysql -uroot -p123456 -s -s -e "show master logs;" | awk '{print $1}' | sed -e "s/zqtx-bin.//g">/usr/dlm_db/mysql/flag_index 62bzfile=/usr/dlm_db/mysql/flag_index 63current_line=`cat ${bzfile}|head -n 1`64for i in `cat ${bzfile}`65do 66if [ "$i" -lt "$current_line" ]67then 68def_send_mail "luanle:master_logs_${i}"69exit 70fi 71current_line="$i"72done 73}74def_index_is_one '/usr/dlm_db/mysql/zqtx-bin.index'75def_static_index_shunxu 76def_masterlog_index_shunxu 77def_index_is_one '/usr/dlm_db/mysql/flag_index'78}79def_check_index

相关文章