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

MySQL8备份脚本的制作

数据中心知识 2023-05-16
487

具体诉求

    公司数据库存放于NAS共享的路径上,NAS服务器通过备份服务器,每天会备份。可是数据是最重要的资产,多一个备份安全性更高。

    手头有一台现成的CentOS8云服务器,没有太多的用途,正好用作数据备份使用,如何备份到云服务器的操作就不多介绍了,公众号前面的文章都有类似的。无非就是云服务器上弄个NFS共享到数据库服务器上加载成一个目录。然后使用脚本将数据库备份到云服务器空间,后期再通过linux自带的定时任务工具,实现自动备份。

脚本分享

#!/bin/bash


#one backup every,totol 31 days


number=31


#path of backup


backup_dir=/data/backup


#date


dd=`date +%Y-%m-%d-%H-%M-%S`

tm=$(date '+%Y-%m-%d %T')

#tool


tool=mysqldump


#user


username=root


#password


password=‘请更换为数据库密码’


#database


database_name=ErpDb


if [ ! -d $backup_dir ];


then

        mkdir -p $backup_dir

fi


$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql


echo "$tm create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt


delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9}' | head -1`


count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`


if [ $count -gt $number ]

then

        rm $delfile

        echo "$tm delete $delfile" >> $backup_dir/log.txt

fi

脚本解析

    其实脚本很简单,只是程序员习惯于用变量表示而已。最上面设置了几个变量,分别是:

备份保留的份数:31份,就是一个月内每天一份的计划;

备份文件路径:这个就是云服务器映射过来的路径

时间变量:定义时间变量是为了给备份文件命名的时候带上时间,另外写日志的时候留下操作的时间。

下面定义采用的工具、数据库名称、账号、密码等。

下面的操作很容易看懂,要是不明白的话,直接将变量更改成数值,命令就完整显示出来了。分别是:

创建路径

备份数据库

写入日志文件

判断备份文件个数并删除最早的文件。

备份结果

因为近期还在整数据库,下图为手动执行脚本的备份结果。

日志文件的记录信息为:




感谢各位的阅读,本公众号会持续分享实际的服务案例,若感兴趣请关注该公众号。

需要作者分享内容的资源,请关注此公众号,后台发送 【共享资源】 获取下载链接

需要上门解决问题时,请及时联系我们

更多案例文章,请点击!

文章转载自数据中心知识,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论