数据库备份脚本
数据库备份脚本:畅享丝滑
先放个链接,万一有人关注呢
运维book思议
李小白,一个北漂的运维。希望能够通过本公众号与业内各位大神交流技术问题。
公众号
优质文章推荐
↓ ↓ ↓ ↓ ↓
今天分享两个数据库备份脚本,直接上车!
数据全量备份
# ##mysql用户
user="root"
# ##mysql密码
userPWD="jft@zjk2022.com"
# ##需要定时备份的数据库列表
dbNames=(pemass mysql)
# ##备份数据以日期创建文件夹存放,同时删除过期备份
DATE=`date -d "now" +%Y%m%d-%H%M%S`
ODATE=`date -d "-7day" +%Y%m%d-%H%M%S`
newdir=/opt/db_bak/mysql/$DATE
olddir=/opt/db_bak/mysql/$ODATE
# ##删除过期备份数据
if [ -d $olddir ];
then
rm -rf $olddir
fi
# ##创建新备份文件夹
mkdir $newdir
# ##对备份数据库列表的所以数据库备份
for dbName in ${dbNames[*]}
do
dumpFile=$dbName-$DATE.sql.gz
/usr/bin/mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile
done
数据库增量备份
#增量备份时复制mysql--bin.00000*的目标目录
backupDir=/opt/db_bak/mysql/bakdir_add
#mysql的数据目录
mysqlDir=/var/lib/mysql
#mysql的index文件路径,,放在数据目录下的
logFile=/opt/db_bak/mysql/bakdir_add.log
BinFile=/var/lib/mysql/mysql-bin.index
#生产新的mysql--bin.00000*文件
mysqladmin -uroot -pjft@zjk2022.com flush-logs
#awk切片并统计行数
Counter=`wc -l $BinFile |awk '{print $1}'`
NextNum=0
#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的
for file in `cat $BinFile`
do
base=`basename $file`
echo $base
#basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $Counter ]
then
echo $base skip! >> $logFile
else
dest=$backupDir/$base
if (test -e $dest)
#test -e用于检测目标文件是否存在,存在就写exist!到$logFile去
then
echo $base exist! >> $logFile
else
cp $mysqlDir/$base $backupDir
echo $base copying >> $logFile
fi
fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ! >> $logFile
恢复全量备份
mysql -h localhost -uroot -pjft@zjk2022.com < bakdup.sql
在恢复全量备份之后,要将全量备份之后的增量备份也恢复回数据库中。
mysql> show master status;
mysql> select * from users;
mysqlbinlog /var/lib/mysql/mysql-bin.000*** | mysql -uroot -ppjft@zjk2022.com name;
执行命令source /root/20151010.sql 执行数据库导入命令
备份表
mysqldump -h 127.0.0.1 -uroot -p pemass ec_order > /tmp/ec_order.sql
Enter password:shjft99@pe#mass
导入表
mysql -h 127.0.0.1 -uroot -p
Enter password:shjft99@pe#mass
mysql> use pemass;
mysql> source /tmp/ec_order.sql
来不及解释了,快上车!(进群看公告)
欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,无需赞赏!
收录于合集 #数据库
8个上一篇基于Docker容器部署MySQL数据库
运维book思议
关注后可发消息