前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL——定时备份,保留最新31天的数据

MySQL——定时备份,保留最新31天的数据

作者头像
凡人飞
发布2020-09-20 20:18:04
1.2K0
发布2020-09-20 20:18:04
举报
文章被收录于专栏:指缝阳光

一、背景

概述: 对于我们的生产数据库,都需要定时做备份,以免数据丢失。比如每日备份,同时也需要将以前的进行清理。此处我展示的是只保留最新的 31 天数据。

二、备份命令使用

  1. mysqldump 命令是 mysql 可以直接用来进行数据库备份的命令。使用方式如下:# 语法 mysqldump -u<username> -p<password> dbname tablename1 tablename2... > /path/to/***.sql # 示例 mysqldump -u root -p '123456' mytest student > /home/back/student_bak.sql
  2. 由于在使用时要输入账号密码,可能有的版本会不成功直接输明文,此时我们需要在 mysql 的配置文件(cnf配置)添加账号密码。# 编辑文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf 具体的配置如下:# 备份 [mysqlddump] user=root password=123456
  3. 保存退出,然后重启 mysqlsystemctl restart mysql

三、编写备份脚本

  1. 创建一个文件夹用来保存备份数据,我的是:/home/blog/back
  2. 添加备份脚本 mysql_blog_backup.sh(只保留最新的 31 天数据):#!/bin/bash #保存备份个数,备份31天数据 number=31 #备份保存路径 backup_dir=/home/blog/back/sql #日期 dd=`date +%Y-%m-%d-%H-%M-%S` #备份工具 tool=mysqldump #用户名 username=root #密码 password=你的密码 #将要备份的数据库 database_name=blog #如果文件夹不存在则创建 if [ ! -d $backup_dir ]; then mkdir -p $backup_dir; fi #简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql $tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql #写创建备份日志 echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt #找出需要删除的备份 delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1` #判断现在的备份数量是否大于$number count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l` if [ $count -gt $number ] then #删除最早生成的备份,只保留number数量的备份 rm $delfile #写删除文件日志 echo "delete $delfile" >> $backup_dir/log.txt fi
  3. 给脚本赋值执行权限chmod u+x mysql_blog_backup.sh
  4. 此时可以直接执行该 sh 脚本来验证执行情况

四、定时任务

  1. linux 自带的 corntab 命令,精确到分。此处用到的两个命令crontab -e # 编辑crontab定时任务 crontab -l # 查询crontab任务
  2. 以下为常用的定时任务服务的命令service cron start //启动服务 service cron stop //关闭服务 service cron restart //重启服务 service cron reload //重新载入配置 service cron status //查看服务状态
  3. 添加执行我们备份脚本的定时任务# 进入定时任务编辑 crontab -e # 添加,每天凌晨 3 点执行一次脚本 00 03 * * * /home/blog/back/mysql_blog_backup.sh
  4. 此时再重新载入配置就可以了。

结果

  1. 看到下图就代表任务添加成功

借鉴博客 https://www.cnblogs.com/letcafe/p/mysqlautodump.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、备份命令使用
  • 三、编写备份脚本
  • 四、定时任务
  • 结果
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档