数据库备份脚本

数据库备份脚本:畅享丝滑

李小白 运维book思议 2023-09-13 18:07 发表于河北

先放个链接,万一有人关注呢

运维book思议
李小白,一个北漂的运维。希望能够通过本公众号与业内各位大神交流技术问题。
184篇原创内容

优质文章推荐

↓ ↓ ↓ ↓ 

只会用scp?那也太Low了

很多人安装了Ubuntu第一步就做错了

服了!新来的运维3个操作把我整蒙了

Docker容器镜像的本质是什么?

不会吧!Linux系统磁盘分区只会fdisk吗?


 

今天分享两个数据库备份脚本,直接上车!

数据全量备份

#!/bin/bash# ##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/$DATEolddir=/opt/db_bak/mysql/$ODATE# ##删除过期备份数据if [ -d $olddir ];  then    rm -rf $olddirfi# ##创建新备份文件夹mkdir $newdir# ##对备份数据库列表的所以数据库备份for dbName in ${dbNames[*]}do  dumpFile=$dbName-$DATE.sql.gz  /usr/bin/mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFiledone

数据库增量备份

#!/bin/bash#增量备份时复制mysql--bin.00000*的目标目录backupDir=/opt/db_bak/mysql/bakdir_add#mysql的数据目录mysqlDir=/var/lib/mysql#mysql的index文件路径,,放在数据目录下的logFile=/opt/db_bak/mysql/bakdir_add.logBinFile=/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 fidoneecho `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.sqlEnter password:shjft99@pe#mass

导入表

mysql -h 127.0.0.1 -uroot -pEnter password:shjft99@pe#massmysql> use pemass;mysql> source /tmp/ec_order.sql

 

图片

 

来不及解释了,快上车!(进群看公告)

图片

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

               点个在看,无需赞赏!

收录于合集 #数据库
 8
上一篇基于Docker容器部署MySQL数据库
 
阅读 635
运维book思议
 
 
关注后可发消息
 
 
 
posted @ 2023-09-18 16:36  往事已成昨天  阅读(49)  评论(0编辑  收藏  举报