暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL备份恢复故障小结

原创 从小就很霸道的胖虎 2023-07-10
241

1、任务执行的备份sql文件大小为0k,手动执行正常。



思路:大概率是任务执行时没有执行mysqldump这一行,问题就在这。

查看shell脚本文件内容。


自己检查为发现问题,经过请教同事,问题出在mysqldump未被识别,所以语句没执行,需要加上mysqldump路径。

修改过程:

原脚本:


查看mysqldump路径


修改路径


重新修改定时,任务运行成功。

2、MySQL5.7MySQL8.0定时备份脚本--亲测好用

脚本内容

#! /bin/bash

#保存备份个数,备份7天数据
number=7
#备份保存路径 看具体情况配置此目录
backup_dir=/data/mysqlbackup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具-- 先用which mysqldump 查看备份工具位置再配置tool
#tool=mysqldump
#用户名
username=root
#密码
#password=123456
#将要备份的数据库
#database_name=edoctor
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#$tool -u $username -p$password -A > $backup_dir/$dd.sql
#压缩备份
#$tool -u $username -p$password -A -B -R --triggers --master-data=2 --single-transaction |gzip > /data/mysqlbackup/$dd.sql.gz
#标准写法
$tool -u $username -p$password -A -B -R --triggers --master-data=2 --single-transaction > /data/mysqlbackup/$dd.sql
#写创建备份日志
echo "create $backup_dir/$dd.dupm" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi

crontab -e中的内容

30 2 * * * /data/mysqlbackup.sh

最后修改时间:2023-07-10 14:19:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论