MySql数据库定时备份

发布时间:2024年01月05日

? 一 备份环境说明

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

文章来源:https://blog.csdn.net/qyhua/article/details/135407294
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。