设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 4257|回复: 10

[MySQL管理] 使用脚本校验MySQL主从同步 [复制链接]

Rank: 8Rank: 8

签到
246
注册时间
2010-6-18
最后登录
2017-11-29
在线时间
162 小时
阅读权限
90
积分
21095
帖子
137
主题
15
精华
1
UID
9568
发表于 2011-5-18 15:18:10 |显示全部楼层
本帖最后由 spitfire00 于 2011-5-18 15:19 编辑

本脚本使用maatkit工具,在从数据库库上设置定时任务,校验与主库的同步情况,maatkit工具使用说明在这里就不多说了。脚本在附件里,里面有2个文件。

1. setup_replica_check.sh
本脚本安装maatkit工具,并把校验脚本移动到指定目录,设置crontab。


#/bin/bash
# This script use for set mysql replication check.
# Modify by liuhongwei@quyou 2010-12-4
# Last Modify: 2011-5-4
SOFT_VER=7410
#SOFT_VER=6652
SCRIPTPATH=/usr/local/sbin

# Install Perl
yum -y install perl*

# Download SoftWave
wget http://maatkit.googlecode.com/files/maatkit-${SOFT_VER}.tar.gz

# Install Maatkit
tar zxvf maatkit-${SOFT_VER}.tar.gz
cd maatkit-${SOFT_VER}
perl Makefile.PL
make install

# Move Check_Scripts
cd ..
cp check_replication.sh $SCRIPTPATH
# Set Crontab
chmod +x $SCRIPTPATH/check_replication.sh
echo "30 4 * * 1,5       $SCRIPTPATH/check_replication.sh" >> /var/spool/cron/root

# Clean Files
rm -rf maatkit-${SOFT_VER}
rm -f maatkit-${SOFT_VER}.tar.gz

2. check_replication.sh
本脚本根据数据库信息,改动变量参数就可以运行了。

#!/bin/bash
# Modify by spitfire 2010-10-19
# Last Modify: 2011-5-4
# 30 4 * * 1,5 /usr/local/sbin/check_replication.sh

# Variable
dblist="db1 db2"
master=192.168.x.x
user=admin
passwd=admin
hostname=dbmaster
mail=bingqihan@gmail.com
# Quantitative
logpath=/tmp/check_replication/
log=$logpath/check_replication.log
errorlog=$logpath/error.log
mailfile=$logpath/mail.log
time=`date +"%y-%m-%d %H:%M:%S"`

# Mkdir
if [ -d $logpath ]
  then notdo="nothing"
else mkdir -p /tmp/check_replication
fi

# Start Checking
echo "" >$errorlog

for db in $dblist
do
  mk-table-checksum --count h=localhost,u=$user,p=$passwd,S=/tmp/mysql.sock   h=$master,u=$user,p=$passwd, -d $db|mk-checksum-filter >>$errorlog
done  

if [ `ls -l $errorlog | awk '{print $5}'` -le 1 ]
  then
    echo "---------------------------------------------------------------------" > $mailfile
    echo "Check Mysql Replication Time : $time,Replication Normal!"  >> $mailfile
    mail -s "$hostname Replication Normal" $mail < $mailfile
else
  echo "---------------------------------------------------------------------" > $mailfile
  echo "Check Mysql Replication Time : $time,Replication Error!" >> $mailfile
  echo "" >> $mailfile
  echo "DATABASE    TABLE             CHUNK HOST           ENGINE     COUNT          CHECKSUM TIME WAIT STAT LAG" >> $mailfile
  cat $errorlog >> $mailfile
  mail -s "$hostname Replication Error" $mail < $mailfile
fi

# Written to the log
cat $mailfile >>$log

# End

3. 抛砖引玉,如果其他同学有好的监控和校验MySQL主从的方式,希望分享一下~




setup_replica_check.tar.gz

1.1 KB, 阅读权限: 10, 下载次数: 19

Rank: 8Rank: 8

注册时间
2010-6-18
最后登录
2017-11-29
在线时间
162 小时
阅读权限
90
积分
21095
帖子
137
主题
15
精华
1
UID
9568
发表于 2011-5-18 15:28:06 |显示全部楼层
注意,脚本运行会导致主库锁表,请在合适时间使用

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-9-21
最后登录
2019-7-22
在线时间
2394 小时
阅读权限
90
积分
51732
帖子
1362
主题
1156
精华
2
UID
10437
发表于 2011-5-18 15:28:28 |显示全部楼层
标记,备用。。。。

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-2-13
最后登录
2016-9-25
在线时间
1163 小时
阅读权限
90
积分
155660
帖子
53
主题
2
精华
0
UID
1413
发表于 2011-5-18 17:05:06 |显示全部楼层
很好,标记,备用

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-9-20
最后登录
2019-9-2
在线时间
489 小时
阅读权限
100
积分
38065
帖子
2202
主题
48
精华
0
UID
307

LT元老

发表于 2011-5-19 12:02:39 |显示全部楼层
赞,好文章,话说楼主的头像是霹雳布袋戏!?

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-6-18
最后登录
2017-11-29
在线时间
162 小时
阅读权限
90
积分
21095
帖子
137
主题
15
精华
1
UID
9568
发表于 2011-5-19 12:12:13 |显示全部楼层
回复 源泉星火 的帖子

是的,霹雳里的青阳子

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-9-20
最后登录
2019-9-2
在线时间
489 小时
阅读权限
100
积分
38065
帖子
2202
主题
48
精华
0
UID
307

LT元老

发表于 2011-5-19 13:47:15 |显示全部楼层
回复 spitfire00 的帖子

哈哈,我也喜欢看霹雳

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-6-18
最后登录
2017-11-29
在线时间
162 小时
阅读权限
90
积分
21095
帖子
137
主题
15
精华
1
UID
9568
发表于 2011-5-19 13:53:14 |显示全部楼层
我一般偶尔挑着看看,要看完会很累的

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-9-20
最后登录
2019-9-2
在线时间
489 小时
阅读权限
100
积分
38065
帖子
2202
主题
48
精华
0
UID
307

LT元老

发表于 2011-5-19 14:03:05 |显示全部楼层
回复 spitfire00 的帖子

呵呵,慢慢来嘛

使用道具 举报

Rank: 4

注册时间
2010-11-15
最后登录
2019-7-22
在线时间
21 小时
阅读权限
50
积分
1473
帖子
2
主题
0
精华
0
UID
11151
发表于 2011-5-19 17:47:05 |显示全部楼层
不错。。有机会试试

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-12-8
最后登录
2018-4-12
在线时间
81 小时
阅读权限
90
积分
30258
帖子
46
主题
3
精华
0
UID
7067
发表于 2011-8-4 20:14:20 |显示全部楼层
看下  最近主从经常不自动同步
拿来校验下!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-9-16 00:49 , Processed in 0.026089 second(s), 16 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部