zoukankan      html  css  js  c++  java
  • mysql多线程备份修复主从1062错误

    #/bin/bash
    ##该脚本主要用于修复主从同步中的1062错误
    ##执行脚本前,先检查是哪一个复制线程出错,即获取WORKER_ID的值
    user=root
    passwd=Fuck@anquan1.COM
    while true
    do
    mysql -u$user -p$passwd -e "show slave statusG" 2>/dev/null | grep 1062 1>/dev/null
    if [ $? -eq 0 ];then
    #sql thread状态
    sql_status=`mysql -u$user -p$passwd -e "show slave statusG" 2>/dev/null | grep 'Slave_SQL_Running' | awk '{print $2}' | head -1`
    #错误id
    error_id=`mysql -u$user -p$passwd -e "show slave statusG" 2>/dev/null | grep Last_Errno | awk '{print $2}'`
    if [ "$sql_status" == No ] && [ "$error_id" == 1062 ];then
    #获取冲突主键值
    value=`mysql -u$user -p$passwd -e "show slave statusG" 2>/dev/null | grep Last_SQL_Error | awk -F ";" '{ print $2 }' | awk -F "'" '{ print $2}'`
    #获取表名
    db_table_name=`mysql -u$user -p$passwd -e "select LAST_ERROR_MESSAGE from performance_schema.replication_applier_status_by_worker where WORKER_ID=0G" 2> /dev/null | grep "LAST_ERROR_MESSAGE" | awk -F ":" '{print $2}' | awk -F ";" '{print $1}' | awk '{print $NF}'`
    database_name=`echo $db_table_name | awk -F "." '{print $1}'`
    table_name=`echo $db_table_name | awk -F "." '{print $2}'`
    #备份数据
    mysqldump -u$user -p$passwd --socket=/var/lib/mysql/mysql.sock $database_name $table_name --where="id>=$value" 2>/dev/null | gzip > /data/$(date "+%Y-%m-%d").gz
    #删除错误数据
    mysql -u$user -p$passwd -e 2>/dev/null "delete from $db_table_name where id >= $value;"
    if [ $? -eq 0 ];then
    echo "delete from $table_name where id = $value; $(date "+%Y-%m-%d %H:%M:%S")" >> /data/$(date "+%Y-%m-%d").log
    fi
    mysql -u$user -p$passwd -e 2>/dev/null "stop slave sql_thread;"
    mysql -u$user -p$passwd -e 2>/dev/null "start slave sql_thread;"
    sleep 5
    fi
    else
    echo "Slave_SQL_Running OK"
    exit 0
    fi
    done

  • 相关阅读:
    输出函数
    curl
    页眉的章名和章名不统一
    水平柱状图
    目录和正文的页码生成
    protobuf的使用
    yarn vue安装
    nvm node的安装
    win安装postman
    机器码
  • 原文地址:https://www.cnblogs.com/lishug/p/13215366.html
Copyright © 2011-2022 走看看