想起来,腾讯云的服务器挂了,数据恢复不了,导致一家行业垂直的公司直接GG。这影响是及其严重啊。企鹅大厂也会挂。所以备份是很重要的。接下来我们就做数据备份。
备份是基于mysqldump 在linux 的下的crontab 定时任务 定时执行shell 脚本完成。
废话不多说
先创建备份目录
mkdir /home/mysql_back
vim mysql_back.sh //创建shell 脚本文件
shell脚本代码
#!/bin/bash
#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
backUpFolder=/home/mysql_back
username="root"
password="root"
db_name="mysqlback"
#定义备份文件名
fileName="${db_name}_${date_now}.sql"
#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
/usr/bin/mysqldump -u${username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd ${backUpFolder}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}
date_end=$(date "+%Y%m%d-%H%M%S")
echo "finish backup mysql database ${db_name} at ${date_end}."
Shell
Copy
脚本完成
以上指定执行的数据库的 用户 和 密码。备份的目录 文件命名 打包等,
shell 脚本完成
去写入crontab脚本。按照产品需求
crontab 如下
数据库定时备份 9-20每小时整点备份
0 9-20 * /home/mysql_back/mysql_back.sh
这是 公司要求的这样的。为什么是 9-20点的每个小时呢。额。其实吧是 是具体业务要求的。
比如 你需要每日凌晨1点备份一次则如下
0 1 *在/home/mysql_back/mysql_back.sh
这样就没每天凌晨1点。
这样过一段时间 你就会发现在/home/mysql_back 目录下就会有 .sql 和 .tar.gz 文件就ok了