mysql主从同步检测
检查mysql主从同步 #!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/binLOGFILE=/data/repair_mysql_sync_`date +%F`.log SQLCMD1="show slave status"## 查看MySQL是否已启动 if [[ `ps aux | grep mysqld | grep -v grep`"X" = "X" ]]; thenecho The MySQL is not running at: `date +%F" "%H-%M-%S` >> ${LOGFILE}exit 1 fi## 获得MySQL从端Relay binlog的路径 retval=`grep "^relay-log" /etc/my.cnf | grep -v relay-log- | grep '/'` if [[ "${retval}" = "X" ]]; thenRELAY_BINLOG_PATH=`ps aux | grep -w mysqld | grep -v grep | awk '{print $13}' | awk -F '=' '{print $2}'` elseRELAY_BINLOG_PATH=`dirname $(echo ${retval} | awk -F '=' '{print $2}')` fi## 查找master.info文件,用于定位Binlog信息 MASTER_FILE=`ps aux | grep -w mysqld | grep -v grep | awk '{print $13}' | awk -F '=' '{print $2}'`/master.info if [[ ! -e ${MASTER_FILE} ]]; thenecho This Server is not MySQL Slave at: `date +%F" "%H-%M-%S` >> ${LOGFILE}exit 1 fi## 获得当前的同步状态 IO_STATUS=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Slave_IO_Running:" {print $2}'` SQL_STATUS=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Slave_SQL_Running:" {print $2}'` if [[ "${IO_STATUS}" = "Yes" && "${SQL_STATUS}" = "Yes" ]]; thenecho Now, The MySQL Replication is synchronous at: `date +%F" "%H-%M-%S` >> ${LOGFILE}exit 0 fi## 从master.info文件中,获得MySQL主端的同步信息 REPLI_INFO=`sed '/^$/d' ${MASTER_FILE} | tail +2 | head -5` REPLI_BINLOG_FILE=`echo ${REPLI_INFO} | awk '{print $1}'` REPLI_IPADDR=`echo ${REPLI_INFO} | awk '{print $3}'` REPLI_USER=`echo ${REPLI_INFO} | awk '{print $4}'` REPLI_PWD=`echo ${REPLI_INFO} | awk '{print $5}'`## 删除无用的Relay binlog rm -rf ${RELAY_BINLOG_PATH}/*-relay-bin.*## 直接从0位置开始同步 SQLCMD2="change master to master_host='${REPLI_IPADDR}', master_user='${REPLI_USER}', master_password='${REPLI_PWD}'," SQLCMD2="${SQLCMD2} master_log_file='${REPLI_BINLOG_FILE}', master_log_pos=0" mysql -uroot -e "stop slave;" mysql -uroot -e "${SQLCMD2};" mysql -uroot -e "start slave;"## 如果同步的过程中,出现重复记录导致同步失败,就跳过 while true dosleep 2IO_STATUS=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Slave_IO_Running:" {print $2}'`SQL_STATUS=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Slave_SQL_Running:" {print $2}'`BEHIND_STATUS=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Seconds_Behind_Master:" {print $2}'`SLAVE_BINLOG1=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Master_Log_File:" {print $2}'`SLAVE_BINLOG2=`mysql -uroot -e "${SQLCMD1}\G;" | awk '$1=="Relay_Master_Log_File:" {print $2}'`## 出现错误,就将错误信息记录到日志文件,并跳过错误继续同步if [[ "${IO_STATUS}" != "Yes" || "${SQL_STATUS}" != "Yes" ]]; thenERRORINFO=`mysql -uroot -e "${SQLCMD1}\G;" | awk -F ': ' '$1=="Last_Error" {print $2}'`echo "The MySQL synchronous error information: ${ERRORINFO}" >> ${LOGFILE}mysql -uroot -e "stop slave;"mysql -uroot -e "set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;"mysql -uroot -e "start slave;"## 已完成同步,就正常退出elif [[ "${IO_STATUS}" = "Yes" && "${SQL_STATUS}" = "Yes" && "${SLAVE_BINLOG1}" = "${SLAVE_BINLOG2}" && ${BEHIND_STATUS} -eq 0 ]]; thenecho The MySQL synchronous is ok at: `date +%F" "%H-%M-%S` >> ${LOGFILE}breakfi done
转载于:https://blog.51cto.com/hashlinux/1865729
mysql主从同步检测相关推荐
- 监控mysql主从的工具_zabbix利用percona-toolkit工具监控Mysql主从同步状态
一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...
- MySQL 主从同步延迟的原因及解决办法
首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校 会员中心 收藏 动态 消息 创作中心 MySQL 主从同步延迟的原因及解决办法 hao_yunfeng 2018-09-04 23 ...
- MySQL主从同步(一主一从、一主多从、主从从)等结构的概述与配置
前言:前面我们了解了MySQL数据库的基础知识,今天及接下来的五天时间里我会给大家带来MySQL进阶方面的一些学习总结,如有不足,还请大家留言指出:下面我们就开始今天的内容. ** 部署mysql主从 ...
- 运维派 企业面试题1 监控MySQL主从同步是否异常
Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...
- MySQL主从同步详解与配置
https://zhuanlan.zhihu.com/p/335142300 MySQL主从同步详解与配置 第一部分[原理解析] * 应用背景* MySQL数据库自身提供的主从复制功能可以方便的实现数 ...
- 最全 MySQL主从同步与主主同步
目录 同步原理 主从复制实际配置与取消主从 Slave_IO_Running:Connecting :处理 /var/lib/mysql/目录下的数据库文件 主从复制下主服务器 主从复制下从服务器 同 ...
- MySQL 主从同步percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
在mysql工作中接触最多的就是mysql replication,mysql在复制方面还是会有一些常规问题,比如主库宕机或者从库宕机有可能会导致复制中断,通常需要进行人为修复,或者很多时候需要把一个 ...
- mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
在mysql工作中接触最多的就是mysql replication,mysql在复制方面还是会有一些常规问题,比如主库宕机或者从库宕机有可能会导致复制中断,通常需要进行人为修复,或者很多时候需要把一个 ...
- 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)
当项目中数据库表越来越多,数据量也逐渐增多时,需要做数据库的安全和性能的优化.对于数据库的优化,可以选择使用MySQL读写分离实现. 1.MySQL主从同步 1.主从同步机制 1.1.主从同步介绍和优 ...
最新文章
- win7分区c盘调整容量_如何扩大C盘空间 增加C盘容量方法有哪些【详细介绍】
- 针对【H-2017年信息基础班(周一班)】某些同学恶意使用lyl洛谷的谴责
- 4.02Day12函数 装饰器
- cocos2d-x游戏实例(1)-视角跟随主角
- redhat5 oracle11g安装全程详解,RedHat5+Oracle11g安装全程详解.doc
- C#Socket通信
- cisc 和 risc_RISC和CISC | 电脑组织
- 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
- python中MySQLdb模块用法实例
- Servlet 服务器 HTTP 响应
- Redis基础(一)——NoSQL
- Python 数据结构与算法——从某个列表中找出两个彼此最接近但不相等的数
- 转:安卓android开源项目(汇总)
- hdu 1698 Just a Hook
- 大气压力换算公式_常用压力单位换算表
- jDBC连接mysql数据库的5种方式
- miui9支持android,基于Android Q的MIUI来了 小米9尝鲜
- 解决VMware虚拟机中没有vmnet0的情况
- 阿里巴巴2015秋季校园招聘研发工程师在线笔试题
- 《绝冬城之夜2》(Neverwinter Nights 2 CHT) 国际中文版(增加简体补丁)
热门文章
- Knockout.js 整理
- JAVA实验3:Java-MySQL实现银行转账系统
- ie浏览器调用本地文件无反应_win7 ie浏览器打不开本地htm文件
- Java毕业设计 社区疫情防控管理系统
- ar8171 linux网卡驱动,ar8171 8175网卡驱动(ar8171网卡驱动下载)V1.0.1 官方最新版
- 28所示范性微电子院校占地面积排名,中山大学第一!
- CSS overflow用法
- A. DS内排—直插排序
- MFC 修改字体的颜色
- Hadoop启动错误:WARNING log4j.properties is not found. HADOOP_CONF_DIR may be incomplete