一 备份环境说明
正式环境的MySql数据库备份
- 系统环境:linux centos 7
- 数据库:MySql5.7
二 备份MySql
第一步:编写备份脚本
编写备份脚本,如下:
#!/bin/bash
# 设置MySQL用户名、密码和数据库名称
DB_USER="root"
DB_PASSWORD="xxxxxx"
DB_NAME="dbName"
# 设置备份目录和文件名
BACKUP_DIR="/home/data/backup_mysql"
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.sql"
# 使用mysqldump进行全量备份
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME --skip-lock-tables > $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
# 删除旧的,只保留最近3份
ls -t $BACKUP_DIR/*.gz | tail -n +4 | xargs rm -f
说明:这里编辑后保存名为backup_mysql.sh,要增加相应的权限
chmod 775 backup_mysql.sh
确保脚本正确,先执行脚本测试备份效果:
注意:
- 这里使用的是mysql自带的备份工具mysqldump,正式环境数据库,备份过程中不能影响到项目正常运行,需要加--skip-lock-tables参数不锁表。
- 由于正式服务器磁盘空间有限,所以根据业务实际只保存最近3份备份数据
第二步:增加定时任务执行
使用linux系统自带的cron作为定时任务执行
crontab -e
打开定时编辑后输入:
# 每周六1点执行
0 1 * * 6 /home/data/backup_mysql.sh
保存后提示添加成功,如下图:
也可以通过crontab -l 查看是否添加成功
crontab -l
执行后,看到刚添加的任务是成功的,如下图:
说明:
- 先使用crontab -e 编辑定时任务,这里根据实际业务需求在每周六1点钟(服务器最少人使用的时候)开始执行。
扩展资料:
关于linux系统中的 Cron表达式的字段解释如下:
- 第一个字段:分钟 (0 - 59)
- 第二个字段:小时 (0 - 23)
- 第三个字段:日期 (1 - 31)
- 第四个字段:月份 (1 - 12)
- 第五个字段:星期 (0 - 7,其中 0 和 7 都表示星期日)
请注意,星期几的取值可以使用数字(0 - 7)或缩写的英文名称(SUN, MON, TUE, WED, THU, FRI, SAT)。