MySql数据库定时备份

  一 备份环境说明

 正式环境的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

保存后提示添加成功,如下图: 

MySql数据库定时备份_第1张图片 也可以通过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)。

你可能感兴趣的:(linux,mysql,运维)