Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
作者:yanlaile 发布时间:2024-01-17 11:52:41
一、需求说明:
数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。
物理备份:使用相关的复制命令直接将数据库的数据目录中的数据复制一份货多分副本,常使用工具:XtraBackup。
逻辑备份:使用mysql自带的mysqldump命令把需要备份的数据以sql语句的形式存储起来。
下边我们将使用mysqldump命令进行数据备份。使用自动任务进行每日备份。
二、执行文件编写:
1、创建文件夹,执行的sh文件和数据库的备份文件都存在这个文件夹下
mkdir /usr/local/mysqlDataBackup
cd /usr/local/mysqlDataBackup
2、创建sh文件并编写shell脚本:
backup.sh
单数据库脚本:
#!/bin/bash
#This scripts is for auto backup databases
#create by weijb at 2021-07-28
#delete data from 7 day before
DATAdelete=‘date +%F -d "-7 day"‘
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz
MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=账号
MYSQL_PWD=密码
DATA=‘date +%F‘
DBname=test_db
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
解析:
(1)删除7天前的备份数据,节省空间:
DATAdelete=‘date +%F -d "-7 day"‘ 当前时间前7天的日期
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz 删除前7天的备份数据,节省空间,只保留最新的7天数据
(2)定义变量:
MYSQL_CMD=/usr/bin/mysqldump mysql自带的mysqldump命令所在的位置
MYSQL_USER=账号 mysql连接的账号
MYSQL_PWD=密码 mysql连接的密码
DATA=‘date +%F‘ 获取当前日期,%F 表示格式:%Y-%m-%d 例如:2021-07-28
DBname=test_db 需要备份的数据库名,当前的数据库名为:test_db
(3)执行备份命令:
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
--compact 优化输出信息
-B 包含建库的语句
gzip 压缩备份,减少备份的文件大小
usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz 备份文件保存的路径以及名字
多数据库备份:
#!/bin/bash
#This scripts is for auto backup databases
#create by weijb at 2021-07-28
#delete data from 7 day before
DATAdelete=‘date +%F -d "-7 day"‘
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz
MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=账号
MYSQL_PWD=密码
DATA=‘date +%F‘
DBname=‘ mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "show databases;" | sed '1,5d'‘
for DBname in ${DBname}
do
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
done
解析:
(1) 截取需要备份的数据库
-e "show databases;" | sed '1,5d'‘ 显示所有的数据库,并截取mysql自带的information_schema、mysql、performance_schema、sys意外的所有数据库。
(2) 其他的和单库备份相同
3、验证脚本是否编写成功:
(1)脚本文件授权:
cd /usr/local/mysqlDataBackupchmod +x backup.sh
(2) 执行脚本:
sh backup.sh
/usr/local/mysqlDataBackup 下生成文件说明编写成功。
4、编写自动任务:
每天凌晨1点对数据库进行备份:
crontab -e
输入i进行编辑:
00 01 * * * /usr/local/mysqlDataBackup/backup.sh
使用esc退出文件编辑,输入 :wq 保存并退出。
查询任务是否设置成功:
crontab -l
重启crontab服务:
service crond restart
至此,mysql的自动任务脚本备份数据库到此完成。
来源:https://www.cnblogs.com/yanlaile/archive/2021/07/28/15070558.html


猜你喜欢
- 前言大家都看过彩带飘落吧?这个在比较喜庆的场合是很常见的:还有“跑马灯”效果,听起来很陌生,其实很常见,下面的就是:来源:https://w
- 微信小程序实现一个简单的select下拉框,供大家参考,具体内容如下用的是transform过渡,没用动画看看效果废话不多说,直接上代码wx
- 初步认识对于熟悉matplotlib三维画图的人来说,最常用的应该是plot_surface,但这个函数的绘图逻辑是,将xy平面映射到z轴,
- 本文实例讲述了JavaScript预解析及相关技巧。分享给大家供大家参考,具体如下:变量同样,以这两个小例子的错误对比提示开始。alert(
- 使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉。对于访问速度
- 主要用到 str.charCodeAt()和 String.fromCharCode()方法--》使用 charCodeAt() 来获得字符
- 慢查询日志概念MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过lon
- 阅读:Dreamweaver量身打造Wordpress留言板(一)虽然说在Dreamweaver量身打造Wordpress留言板(二)这一篇
- var tipsWidth = $(".Loading").css("width").replace
- 实这本是说明一个问题 : 每个人在提高自己能力这件事情上, 需要持续不断地努力。以最典型的例子来看,只有通过学习,程序员才能保证不断进步。
- 前置从https://studygolang.com/dl下载go1.14.6.windows-amd64.msi安装即可,安装路径选择默认
- 有关itchat接口的知识,小编是初步学习,这里先给大家分享一段代码用法示例。sudo pip3 install itchat今天用了下it
- 1、myisamchk 使用 myisamchk 必须暂时停止 MySQL 服务器。例如,我们要检修 discuz 数据库。执行以下操作:
- python如何将字母转化为数字?将英文字母转成数字:转换ord('F')反转chr(70)python ord() 函数是
- 论文:Interactive Image Warping(1993年Andreas Gustafsson)算法思路:以眼睛中心为中心点,对眼
- 国庆期间准备写三篇博客,介绍和总结下接口测试,由于国庆期间带娃,没有按照计划完成,今天才完成第二篇,惭愧惭愧。这里我第一篇博客的地址:htt
- 该模块用perl的数组代表一个文件,文件的每一行对应数组的一个元素,第一行为元素0,第二回为1,... 文件本身实际并不加载到内
- 一、使用replace+空格ordersdetaildf['商品名称2']=ordersdetaildf['商品名称
- 1. css背景图1.1 背景属性<!DOCTYPE html><html lang="en">
- 第一类:对于下面的这些option的可选参数,value应该被设置一个bool类型的值:选项可选value值备注CURLOPT_AUTORE