mariadb全量恢复从库脚本
Posted 雅冰石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于mariadb全量恢复从库脚本的主要内容,如果未能解决你的问题,请参考以下文章