定时备份mysql数据(物理备份)


一、备份

  1、安装xz压缩格式工具
    释义:相比较Linux自带的tar工具,xz压缩率较大,节省空间。第一次需要先安装
    安装:yum install xz -y

  2、备份命令
    释义:这里采用冷备份,即把mysql数据目录的所有文件打包到指定目录
    命令:tar Jcvf path_1 path_2 (path1是备份目录 path2是mysql文件目录)

  3、脚本
    # 数据库定时备份 脚本
    MYSQL_PATH=/mnt/sdc/files/mysql/data/
    BACKUP_PATH=/opt/mysql-backup
    DATETIME=$(date +%Y-%m-%d-%H-%M-%S)
    # echo "date=$DATETIME"

    echo "========备份开始========="
    echo "========备份路径=$BACKUP_PATH/mysql-$DATETIME.tar.xz==========="

    # 执行备份命令
    tar Jcvf $BACKUP_PATH/mysql-$DATETIME.tar.xz $MYSQL_PATH

    echo "==========备份完成==========="

    # 找7天前文件,并删除
    find $BACKUP_PATH -mtime +7 -name "*.tar.xz" -exec rm -rf {} \;

    # 输出备份结束信息
    echo "==========备份成功==========="

  4、将脚本添加到系统定时任务
    a、定时任务用法:

      crontab 【选项】
      -e:编辑crontab定时任务
      -l:查询crontab任务
      -f:删除当前用户所有的crontab任务
      -r:终止任务调度
      service crond restart:重启任务调度
  b、步骤
    编辑:crontab -e
    添加定时任务:1 1 * * * /root/mysql-backup/mysql-backup.sh #脚本保存的路径

           注:1 1 * * *  分别是  分钟  小时  天(1~31) 月(1~12) 星期(1~7)
    重启:service crond restart
    查看:crontab -l


二、还原

  1、命令
    tar Jxvf path1 path2 ( path1是备份文件目录 path2是要还原的目录 )

    如:tar Jxvf /opt/mysql-backup/mysql-2020-04-15-13-14-24.tar.xz /mnt/sdc/files/mysql/data/