mariadb全量恢复从库脚本

一 需求描述

有时mariadb主从复制出现问题,找不到解决办法的时候,可使用主库数据恢复从库,重新配置主从复制

二 脚本内容

需要在从库执行该脚本,且执行该脚本前注意修改脚本里Usr和Pwd的变量值为自己环境的复制用户账号密码

: << !
a.脚本用途:
 此脚本用于拿主库备份全量恢复mariadb从库,当从库复制出问题,实在没有其他办法处理时,可在从库上执行该脚本重配主从复制(请谨慎操作,该操作会将从库数据库删除再重建)。
b.脚本使用说明:
 sh recoverySlave.sh 参数1 参数2 参数3 参数4
 参数含义介绍:
  参数1:主库ip
  参数2:主库端口
  参数3:从库端口
  参数4:主库root密码
!

if [[ $1  = "" ]] || [[ $2  = "" ]] || [[ $3  = "" ]] || [[ $4  = "" ]]
then
    echo '请在调用该脚本时传入四个参数(主库ip,主库端口,从库端口,主库root密码)'
    exit
else
    Master=$1
    Usr=复制用户
    Pwd=复制用户的密码
    MasterPort=$2
    SlavePort=$3
    RootPwd=$4
    date=`date "+%Y%m%d%H%M"`
    
    export LANG=en_US
    echo '1.备份主库...'
    mysqldump --all-databases --master-data=1 --gtid --single-transaction -uroot -p$RootPwd -h$Master -P $MasterPort >/tmp/data.sql_$date
    
    echo '2.停掉从库复制...'
    mysql -uroot -P $SlavePort -p${RootPwd}<<!
    stop slave;
    reset master;
!
    
    echo '3.用主库数据恢复从库...'
    mysql -uroot -p${RootPwd} -P $SlavePort </tmp/data.sql_$date
    
    echo '4.配置从库复制...'
    mysql -uroot -P $SlavePort -p${RootPwd}<<!
    CHANGE MASTER TO master_host='$Master',
    master_port=$MasterPort,
    master_user='$Usr', master_password='$Pwd',MASTER_USE_GTID=slave_pos;
    start slave;
    flush privileges;
!
    
    sleep 5
    echo '5.检查主从复制状态...'
    mysql -uroot -p${RootPwd} -P $SlavePort -e "show slave status \G;"
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值