当前位置: 首页 > news >正文

【MySQL系列】- MySQL自动备份详解

【MySQL系列】- MySQL自动备份详解

文章目录

  • 【MySQL系列】- MySQL自动备份详解
    • 一、需求背景
    • 二、Windows mysql自动备份方法
      • 2.1 复制date文件夹备份
        • 实验备份环境
        • 创建bat直接备份脚本
      • 2 .2 mysqldump备份成sql文件
        • 创建mysqldump备份脚本
      • 2 .3 利用WinRAR对MySQL数据库进行定时备份
      • 创建WinRAR备份脚本
    • 三、Linux Mysql自动备份
      • 3.1 查看磁盘空间情况
      • 3.2 创建备份目录
      • 3.3 编写备份shell脚本
      • 3.4 Shell压缩备份
      • 3.5 清除历史备份文件
      • 3.6 添加计划任务
      • 3.7 测试任务是否执行
    • 四、参考链接

在这里插入图片描述

一、需求背景

数据库在一个系统中处于非常重要的地位,是整个系统底层也是核心,当数据库被误删会造成非常严重的失误,所有数据库备份可以说是重中之重。本文将梳理Mysql在windows与Liunx中的备份方法。

二、Windows mysql自动备份方法

2.1 复制date文件夹备份

  • 实验备份环境

  1. MySQL 安装位置:D:\Program Files\MySQL
  2. 数据库名称为:GoyeerDB
  3. 数据库备份目的地:F:\Mysql\db_bak\
  • 创建bat直接备份脚本

*******************************Code Start*****************************
net stop mysql
xcopy D:\Program Files\MySQL\data\GoyeerDB\*.* F:\Mysql\db_bak\goyeerdb_bak\%date:~0,10%\ /S /I
net start mysql
*******************************Code End *****************************

然后使用Windows的“计划任务”定时执行该批处理脚本即可。(例如:每天凌晨1点执行back_db.bat)
解释:备份和恢复的操作都比较简单,完整性比较高,控制备份周期比较灵活,例如,用%date:0,10%。此方法适合有独立主机但对mysql没有管理经验的用户。缺点是占用空间比较多,备份期间mysql会短时间断开(例如:针对30M左右的数据库耗时5s左右),针对%date:0,10%的用法参考 .

2 .2 mysqldump备份成sql文件

  • 创建mysqldump备份脚本

rem *******************************Code Start*****************************
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
D:\Program Files\MySQL\bin\mysqldump --opt -u root --password=123456 GoyeerDB > F:\Mysql\goyeerdb_bak\goyeerdb_%Ymd%.sql
@echo on
rem *******************************Code End*******************************

将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨2点执行back_db.bat)

说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。

通过%date:5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:,20%得到的当前计算机日期格式),所以通过%date:5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:5,2%则可以得到02。(日期的字符串的下标是从0开始的)

2 .3 利用WinRAR对MySQL数据库进行定时备份

对于MySQL的备份,最好的方法就是直接备份MySQL数据库的Data目录。下面提供了一个利用WinRAR来对Data目录进行定时备份的方法。

首先当然要把WinRAR安装到计算机上。

创建WinRAR备份脚本

*******************************Code Start***************************
net stop mysql
c:\Program Files\winrar\winrar a -ag -k -r -s F:\Mysql\goyeerdb_bak\goyeerdb_%Ymd%.rar   D:\Program Files\MySQL\data\GoyeerDB\
net start mysql
*******************************Code End*****************************

保存,然后将文本文件的扩展名修改成CMD。进入控制面版,打开计划任务,双击“添加计划任务”。在计划任务向导中找到刚才的CMD文件,接着为这个任务指定一个运行时间和运行时使用的账号密码就可以了。 这种方法缺点是占用时间比较多,备份期间压缩需要时间,mysql断开比第一种方法更多的时间,但是对于文件命名很好。

三、Linux Mysql自动备份

3.1 查看磁盘空间情况

既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果,推荐使用NAS做为备份存储。

df -h  #查看磁盘空间

3.2 创建备份目录

在有磁盘空间的目录上创建文件夹,下面例子已在/home文件夹下创建目录

cd /home     #切换目录到home下
mkdir backup #常见目录并进入backup
cd backup

3.3 编写备份shell脚本

语法:mysqldump -u数据库用户名 -p密码 数据库名称 > /路径/备份文件名.sql

#!/bin/bash
mysqldump -uroot -p123456 demo > /home/backup/demo_$(date +%Y%m%d_%H%M%S).sql  #按日期时间备份

database_name_ ( d a t e + (date +%Y%m%d%H%M%S)为生成的备份文件名称,可自定义,这里文件名是数据库名 + 下划线 + 具体时间, (date+(date +%Y%m%d%H%M%S)可获取到当前日期,%Y %m %d %H %M %S 分别对应年、月、日、时、分、秒

3.4 Shell压缩备份

语法:mysqldump -u数据库用户名 -p密码 数据库名称 | gzip > /路径/备份文件名.sql.gz

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

3.5 清除历史备份文件

#!/bin/shfind /usr/local/backups -mtime +10 -name "*DatabaseName_*" -exec rm -rf {} \;

#删除七天之前的备份
find $backup_dir -name $db_name".sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1
#删除一分钟之前的备份
find $backup_dir -name $db_name".sql.gz" -type f -mmin +1 -exec rm -rf {} ; > /dev/null 2>&1

关键字说明

-type f 表示查找普通类型的文件,f 表示普通文件,可不写
-mtime +7 按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是-mmin +7表示文件更改时间距现在7分钟以前
-exec rm {} ; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对{ },一个空格和一个\,最后是一个分号;
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。

3.6 添加计划任务

执行命令:crontab -e

*/1 * * * * /home/backup/bkDatabaseName.sh

分 时 日 月 周 执行命令
第 1 列 分钟 1~59,每分钟用 或者/1表示,整点分钟数为00或0
第 2 列 小时 1~23(0 表示 0 点)
第 3 列 日 1~31
第 4 列 月 1~12
第 5 列 星期 0~6(0 表示星期天)
第 6 列 要运行的命令
例子 :0 3 * * * /backup.sh,此命令表示在每天的凌晨三点执行一次脚本,可自行调整时间

3.7 测试任务是否执行

如果任务执行失败了,可以通过以下命令查看任务日志:

tail -f /var/log/cron

四、参考链接

  1. https://blog.csdn.net/qq_32684319/article/details/86996369
  2. https://www.jianshu.com/p/be1e581acb8e
  3. https://www.cnblogs.com/taomylife/p/8022253.html
  4. https://blog.csdn.net/stonexmx/article/details/72974500

相关文章:

【MySQL系列】- MySQL自动备份详解

【MySQL系列】- MySQL自动备份详解 文章目录 【MySQL系列】- MySQL自动备份详解一、需求背景二、Windows mysql自动备份方法2.1 复制date文件夹备份实验备份环境创建bat直接备份脚本 2 .2 mysqldump备份成sql文件创建mysqldump备份脚本 2 .3 利用WinRAR对MySQL数据库进行定时备…...

指针笔试题讲解-----让指针简单易懂(2)

目录 回顾上篇重点 : 一.笔试题 ( 1 ) 二.笔试题 ( 2 ) 科普进制知识点 (1) 二进制 (2) 八进制 (3)十六进制 三.笔试题( 3 ) 四.笔试题( 4 ) 五.笔试题( 5 ) 六.笔试题( …...

使用windbg分析dump文件的方法

https://zhuanlan.zhihu.com/p/613434365 一般操作如下: 准备工作。 打开dump文件。指定符号表文件的路径。指定可执行文件的路径。指定源码文件的路径。在windbg的命令行,输入并执行如下命令 .reload,重新加载前述数据文件。!analyze -v&a…...

【论文阅读 07】Anomaly region detection and localization in metal surface inspection

比较老的一篇论文,金属表面检测中的异常区域检测与定位 总结:提出了一个找模板图的方法,使用SIFT做特征提取,姿态估计看差异有哪些,Hough聚类做描述符筛选,仿射变换可视化匹配图之间的关系&#xf…...

SSM - Springboot - MyBatis-Plus 全栈体系(十一)

第二章 SpringFramework 五、Spring AOP 面向切面编程 6. Spring AOP 基于 XML 方式实现(了解) 6.1 准备工作 加入依赖和基于注解的 AOP 时一样。准备代码把测试基于注解功能时的 Java 类复制到新 module 中,去除所有注解。 6.2 配置 Sp…...

深度剖析贪心算法:原理、优势与实战

概述 贪心算法是一种通过每一步的局部最优选择来寻找整体最优解的方法。在每个步骤中,贪心算法选择当前状态下的最佳选项,而不考虑未来可能的影响。尽管它不能保证一定能找到全局最优解,但贪心算法通常简单且高效,适用于许多实际…...

Docker搭建DNS服务器--use

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …...

“顽固”——C语言用栈实现队列

解题图解: 1、 先用stack1存储push来的数据 2、每当要pop数据时,从stack2中取,如果 stack2为空,就先从stack1中“倒”数据到stack2。 这就是用栈实现队列的基本操作 这道题看起来比较容易,但是!如果你用C语…...

linux内网渗透

一、信息收集 主机发现: nmap -sP 192.168.16.0/24 端口探测 masscan -p 1-65535 192.168.16.168 --rate1000 开放端口如下 nmap端口详细信息获取 nmap -sC -p 8888,3306,888,21,80 -A 192.168.16.168 -oA ddd4-port目录扫描 gobuster dir…...

还没用熟 TypeScript 社区已经开始抛弃了

根据 rich-harris-talks-sveltekit-and-whats-next-for-svelte 这篇文章的报道, Svelte 计划要把代码从 TS 换到 JS 了。 The team is switching the underlying code from TypeScript to JavaScript. That and the update will then allow the team to incorporate…...

2023年9月19日

2> 完成文本编辑器的保存工作 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QFontDialog> #include <QMainWindow> #include <QFont> #include <QMessageBox> #include <QDebug> #include <QColorDialog> #include &l…...

PowerDesigner 与 mysql 同步数据

PowerDesigner 连接上数据库 创建数据库表 table_5 选择&#xff1a; 点击确认后弹出 点击run执行 刷新数据库表&#xff0c;已创建成功 修改测试表1&#xff0c;新增一个字段 取消全选 选择数据库&#xff0c;勾选修改的表&#xff0c;如果全部勾选的话&#xff0c;就…...

[python 刷题] 271 Encode and Decode Strings

[python 刷题] 271 Encode and Decode Strings 题目&#xff1a; Design an algorithm to encode a list of strings to a string. The encoded string is then sent over the network and is decoded back to the original list of strings. Machine 1 (sender) has the func…...

[QT]day3

1.一个闹钟 widget.cpp: #include "widget.h" #include "ui_widget.h"#include <QWidget> #include <QTimerEvent> //定时器事件处理类 #include <QTime>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {//给播…...

《PostgreSQL事务管理深入解析》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…...

深度分析Oracle中的NULL

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 关键点 特殊值NULL意味着没有数据&#xff0c;它声明了该值是未知的事实。默认情况下&#xff0c;任何类型的列和变量都可以取这个值&#xff0c;除非它们有一个NOT N…...

Python入门教学——类和对象

目录 一、面向过程和面向对象 1、面向过程 2、面向对象 二、类 三、类对象与类属性 1、类对象 2、类属性 四、类方法与静态方法 1、类方法 2、静态方法 一、面向过程和面向对象 1、面向过程 是一种以过程为中心的编程思想&#xff0c;强调事件的流程和顺序。思想&…...

【数据库系统概论】关系数据库中的关系数据结构

前言关系关系模式关系数据库关系模型的存储结构感谢 &#x1f496; 前言 上一篇文章【数据库系统概论】数据模型介绍了数据库系统中的数据模型的基本概念。其中提到了关系模型是最重要的一种数据模型。下面将介绍支持关系模型的数据库系统——关系数据库。 按照数据模型的三大…...

LabVIEW对Table中同一行数据分多次增加

LabVIEW对Table中同一行数据分多次增加 在对多个设备采集数据&#xff0c;同时需要记录到表格中。很多时候多台数据并不是同时更新&#xff0c;比如有的是在开关之前读取更新&#xff0c;有的则是在开关闭合后更新。只是用Number Indicator的方式&#xff0c;需要很多个&#…...

微信小程序实现删除功能

1. 前端 项目列表展示是使用的wx&#xff1a;for遍历 每个项目展示有3个模块 1. project-title 2. project-content 3. project-foot 全部代码如下 <t-sticky><view class"search"><t-search model:value"{{conditions.keyword}}" pl…...

整合Shiro+Jwt

整合ShiroJwt大体思路 springboot整合shiro大体上的思路&#xff1a; 1.自定义一个类Realm extends AuthorizingRealm{} 主要是对token授权和认证 重写2个方法 doGetAuthorizationInfo //授权 doGetAuthenticationInfo //认证 认证 代码中手动加上对token校验的判断2.自…...

Python 图形化界面基础篇:创建工具栏

Python 图形化界面基础篇&#xff1a;创建工具栏 引言 Tkinter 库简介步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a;创建工具栏步骤4&#xff1a;向工具栏添加工具按钮步骤5&#xff1a;处理工具按钮的点击事件步骤6&#xff1a;启动…...

基于matlab实现的卡尔曼滤波匀加速直线运动仿真

完整程序&#xff1a; clear clc %% 初始化参数 delta_t 0.1; %采样时间 T 8; %总运行时长 t 0:delta_t:T; %时间序列 N length(t); %序列的长度 x0 0; %初始位置 u0 0; %初速度 U 10; %控制量、加速度 F [1 delta_t 0 1]; %状态转移矩阵 B …...

windows Visual Studio 2022 opengl开发环境配置

1. 安装glew(GL), GLFW, glm, soil2-debug 还需要premake生成visual studio solution cmake for windows也要安装一个&#xff0c; 但是不用安装MinGW64, bug多 下载源码&#xff0c;找到xxx.sln文件用visual stidio打开solution编译代码&#xff0c;找到xxx.lib, xxx.dll文件…...

中国财政科学研究院党委书记、院长刘尚希一行莅临麒麟信安调研

为贯彻落实省委第十二届四次全会精神&#xff0c;加快推动湖南高质量发展&#xff0c;9月16日下午&#xff0c;由中国财政科学研究院党委书记、院长刘尚希&#xff0c;中国电子信息产业发展研究院总工程师秦海林&#xff0c;省委改革办副主任梁仲&#xff0c;省发展改革委党组成…...

基于element-ui的年份范围选择器

基于element-ui的年份范围选择器 element-ui官方只有日期范围和月份范围选择器&#xff0c;根据需求场景需要&#xff0c;支持年份选择器&#xff0c;原本使用两个分开的年份选择器实现的&#xff0c;但是往往有些是不能接受的。在网上找了很多都没有合适的&#xff0c;所以打…...

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题&#xff0c;不支持jsapi服务&#xff0c;可以访问该网址了解如何获取有效密钥。详情查看&#xff1a;http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的&#xff0c;点击以后就进入…...

JS操作数组方法学习系列(1)

目录 数组添加元素 (push)数组移除末尾元素 (pop)数组添加元素到开头 (unshift)数组移除开头元素 (shift)数组查找元素索引 (indexOf)数组反向查找元素索引 (lastIndexOf)数组切割 (slice)数组连接 (concat)数组元素查找 (find 和 findIndex)数组元素过滤 (filter)数组元素映射…...

翻牌闯关游戏

翻牌闯关游戏 3关&#xff1a;关卡由少至多12格、20格、30格图案&#xff1a;12个玩法&#xff1a;点击两张卡牌&#xff0c;图案一到即可消除掉 记忆时长(毫秒)&#xff1a;memoryDurationTime:5000 可配置&#xff1a;默认5000 提示游戏玩法&#xff1a;showTipsFlag:1 可…...

CilckHouse创建表

一、引擎 一开始没注意有引擎选择&#xff0c;要用什么引擎去官方文档看看自己建的表适合什么引擎&#xff0c;大部分用MergeTree 二、用sql语句生成表 1、MergeTree引擎 原文地址&#xff1a;https://blog.csdn.net/qq_21383435/article/details/122812921?ops_request_misc%…...

wordpress的标签有什么用/seo整站优化多少钱

一、前言 时间子系统中的tick device layer主要涉及kernel/time/tick-*相关的文件&#xff0c;本文的主要内容就是从high level层次&#xff08;不纠缠在具体的每行代码&#xff09;描述tick device layer的运作逻辑。 如果说每个.c文件是一个模块的话&#xff0c;我们可以首…...

用flash做网站超链接/网络营销服务外包

题目描述 多多进幼儿园了&#xff0c;今天报名了。只有今晚可以好好放松一下了&#xff08;以后上了学后会很忙&#xff09;。她的叔叔决定给他买一些动画片DVD晚上看。可是爷爷规定他们只能在一定的时间段L看完。&#xff08;因为叔叔还要搞NOIP不能太早陪多多看碟&#xff0c…...

提供手机自适应网站公司/如何创建自己的网站

欢迎关注头条号&#xff1a;Java小野猫web项目部署到tomcat上之后&#xff0c;有时需要打断点单步调试&#xff0c;如果用的是Intellij idea&#xff0c;可以通过如下方法实现&#xff1a;开启debug端口&#xff0c;启动tomcat以tomcat7.0.75为例&#xff0c;打开bin目录下的ca…...

给女朋友做网站的素材/seo基础篇

一、Scrapy简介 Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 其可以应用在数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的&#xff0c; 也可以应用在获取API所返回的数据…...

a5wordpress模板/免费引流在线推广

文章目录- 写在开头的话ssh的基本概念ssh的登录验证模式账户密码验证格式密钥对验证ssh(secure shell)的服务搭建Linux服务器的建立(VMware克隆形式)ssh&#xff08;secure shell&#xff09;服务的搭建安全防护的关闭Linux上用户名密码登录ssh服务器端查看是否安装openssh安装…...

厦门网站建设外包/中国国家人事人才培训网证书查询

某些查询条件确定范围between and&#xff0c;not between and确定集合in&#xff0c;not in字符匹配like&#xff0c;not like空值is null&#xff0c;is not null多重条件and&#xff0c;or&#xff0c;not1。确定范围 查询年龄在&#xff08;不在&#xff09;21到24之间的学…...