MySQL增量备份和全量备份

news2025/1/21 8:53:19

1 全量备份

1.1 创建用于备份的目录

mkdir /root/mysql.backup

1.2 创建存入备份文件的目录

mkdir /root/mysql.backup/data

1.3 进入备份目录,创建备份脚本

cd /root/mysql.backup
vim mysqlBackuoShell.sh
#!/bin/bash 
   
#保存备份个数,31条 
number=31 
#备份保存路径 
backup_dir=/root/mysql.backup/data 
#日期 
dd=`date +%Y-%m-%d_%H_%M_%S`
#备份工具 
tool=mysqldump 
#用户名 
username=root 
#密码 
password=Abc123456.
#将要备份的数据库 
database_name=test
   
#运行内容,结果用gzip压缩下
$tool -u $username -p$password --single-transaction --master-data=2 --flush-logs -B $database_name|gzip > $backup_dir/$database_name-$dd.sql.gz
   
#写创建备份日志 
echo "create $backup_dir/$database_name-$dd.sql.gz" >> $backup_dir/log.txt 
   
#找出需要删除的备份 
delfile=`ls -l -crt  $backup_dir/*.sql.gz | awk '{print $9 }' | head -1` 
   
#判断现在的备份数量是否大于$number 
count=`ls -l -crt  $backup_dir/*.sql.gz | awk '{print $9 }' | wc -l` 
   
if [ $count -gt $number ] 
then 
  rm $delfile  //删除最早生成的备份,只保留number数量的备份 
  #写删除文件日志 
  echo "delete $delfile" >> $backup_dir/log.txt 
fi

1.4 给脚本赋予执行权限

chmod +x  mysqlBackuoShell.sh

1.5 创建定时脚本

vim mysqlRollBack.cron

内容如下

# 每天凌晨三点进行一次全量备份
0 3 * * * /data/mysqlbackup/mysqlBackuoShell.sh

1.6 启动定时任务

crontab mysqlRollBack.cron

1.7 查看定时任务是否成功

crontab -l

在这里插入图片描述

1.8 删除定时任务

如果不想执行定时任务,直接删除就行了

crontab -r

1.9 编辑定时任务

如果想要修改执行时间,可以编辑

crontab -e

2 增量备份

2.1 查看是否开启binlog日志

show variables like '%log_bin%';

在这里插入图片描述

2.2 如果没开启,则修改配置文件

vim /etc/my.cnf
#节点Id,注意集群中不能重复,单节点不配置也可以
server-id=123
#开启binlog日志,指定其存放位置
log-bin=/var/lib/mysql/mysql-bin
#开启binlog自动过期
expire_logs_days=10

2.3 重启MysQL服务

service mysqld restart

2.4 查看binlog日志是否成功开启

show variables like '%log_bin%';

在这里插入图片描述

3 模拟删库恢复

3.1 先查询当前所有的二进制日志

show master logs;

在这里插入图片描述

3.2 查看当前数据库中user表中的数据

在这里插入图片描述

3.3 手动执行一次全量备份

./mysqlBackuoShell.sh

3.4 查看是否备份成功

在这里插入图片描述

3.5 再次查询当前所有的二进制日志

这时查看多出了一条mysql-bin.000019,说明刚才全量备份后,重新建立了二进制文件,备份后的数据修改操作日志只会存入最新的这条二进制文件中

show master logs;

在这里插入图片描述

3.5 对数据库进行修改操作

向user表中新增一条数据(name=王五),此时新增这条数据的操作日志会存入最新的那条二进制文件中(mysql-bin.000019)
在这里插入图片描述

3.6 删除数据库

此时删库的操作也将存入最新的二进制文件中(mysql-bin.000019)
在这里插入图片描述
此时MySQL服务中已经没有test这个数据库
在这里插入图片描述

3.7 恢复操作

1.首先刷新二进制日志,此时会新建一条新的二进制文件(mysql-bin.000020),之后所有操作都将存入这条最新的二进制文件中,接下来我们只需要分析mysql-bin.000019这个二进制文件删库的位置

flush logs;

在这里插入图片描述

2.分析二进制文件 mysql-bin.000019,查看删库的日志位置

show binlog events in 'mysql-bin.000019';

在这里插入图片描述

发现删库操作在621这个位置,所以我们只需要把数据恢复621之前的位置(485)就可以了
3. 先进行全量恢复
进入存放备份文件的目录

cd /root/mysql.backup/data/

解压备份文件

gzip -d 备份文件

在这里插入图片描述
执行恢复命令

mysql -uroot -p -v  </root/mysql.backup/data/test-2023-03-08_14_32_02.sql

此时上一次全量备份的数据已经恢复完成,最新增加的那条(name=王五)还没恢复
在这里插入图片描述
4 增量恢复,恢复上一次全量恢复后到删库之前的数据
进入二进制文件存放位置,执行增量恢复操作

mysqlbinlog 常用参数选项解释:
--start-position=875 起始pos点
--stop-position=954 结束pos点
--start-datetime="2016-9-25 22:01:08" 起始时间点
--stop-datetime="2019-9-25 22:09:46" 结束时间点
--skip-gtids是忽略GTIDs报错
-d 指定数据库
mysqlbinlog --stop-position=485 -d test  mysql-bin.000019 | mysql -uroot -pAbc123456.

此时最新的那条数据(name=王五)已经恢复过来了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Infineon Aurix 系列网络安全概述

目录 硬件安全 其它 1999年&#xff0c;英飞凌推出了第一代AUDO(汽车统一处理器)系列。基于统一的以RISC/MCU/DSP处理器为核心&#xff0c;这款32位TriCore™微控制器是一款强大的计算机器。其不断改进和优化TriCore的概念&#xff0c;最终形成了现在的第六代TriCore™,由于其…

ACWING蓝桥杯每日一题python(持续更新

ACWing蓝桥杯每日一题 一直没时间去总结算法&#xff0c;终于有空可以总结一下刷的acwing了&#xff0c;因为没时间所以最近只刷了ACWING的蓝桥杯每日一题。。。真是该死 1.截断数组 首先我们要知道&#xff0c;如果sum(a)不能被3整除或者len(a) < 3 &#xff0c;那么他肯…

Android使用移动智能终端补充设备标识获取OAID

官网http://www.msa-alliance.cn/col.jsp?id120首先到官网注册账号&#xff0c;申请下载相关sdk和授权证书2.把 oaid_sdk_x.x.x.aar 拷贝到项目的 libs 目录&#xff0c;并设置依赖&#xff0c;其中x.x.x 代表版本号3.supplierconfig.json 拷贝到项目 assets 目录下&#xff0…

keepalived实现nginx高可用

文章目录前言keepalived简介软件架构简单理解环境准备一、keepalived安装1.1 下载keepalived 安装包1.2 解压/下载依赖1.3 编译1.4 创建软连接1.5 增加系统服务1.6 启动keepalived二、实现Nginx高可用2.1 创建keepalived配置文件2.2 Nginx监控脚本2.4 重启keepalived2.5 查看虚…

自己DIY装机后,如何使用U盘装系统

最近自己整了一台主机&#xff0c;然后需要装一下系统&#xff0c;这边就讲一下如何用U盘给新电脑装系统。 安装Windows 10 光盘映像 首先你需要一个内存大于8GB的U盘&#xff0c;并且是纯净的&#xff0c;里面没有东西。 这边以Windows 10 为例&#xff1a; 百度搜索 下载…

IMX6ULL 启动方式之启动设备的选择

一. 硬件启动方式选择 汇编程序启动 LED 灯实验&#xff0c;是从SD卡读取 bin 文件并启动&#xff0c;说明 IMX6ULL 支持从 SD 卡启动。 IMX6ULL 支持多种启动方式。 注意&#xff1a;硬件原理图中&#xff0c;标注 DNP ( do not pupulate) 的意思是不焊接&#xff0c;即没…

【AcWing】归并排序及其应用

&#x1f386;音乐分享 &#xff08;点击链接可以听哦&#x1f60e;&#xff09; 无名之辈 - 陈雪燃 目录 归并排序 归并排序应用 文章中的图片来源&#xff1a; (2条消息) 归并排序&#xff08;分治法&#xff09;_分治法 归并排序_小小的香辛料的博客-CSDN博客 AcWing…

Springboot怎么实现WebSocket通信(二)

前言上一篇文章分享了单机模式下&#xff0c;websocket的基本使用方法&#xff0c;但在实际的业务中&#xff0c;通常是不会这样使用的&#xff0c;大部项目都是分布式部署的&#xff0c;一个工程布署了多个服务节点&#xff0c;前端并不直接请求具体服务节点&#xff0c;而是先…

C51---PWM 脉冲宽度调制

1.PWM:脉冲宽度调制,它是通过一系列脉冲宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;。对模拟信号电平进行数字编码。也就是说通过调节占空比的变化来调节信号、能量等的变化&#xff0c;占空比就是指在一个周期内&#xff0c;信号处于…

第九届省赛——6打印大X

题目&#xff1a;本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是&#xff1a;1. 先用1,2,3&#xff0c;...的自然数拼一个足够长的串2. 用这个串填充三角形的三条边。从上方顶点开始&#xff0c;逆时针填充。比如&#xff0c;当三角形高度是8时&#xff1a…

【Java开发】JUC进阶 06:异步回调、JMM、Volatile

1 异步回调异步是多线程的一种特殊实现方式&#x1f4cc; 举例我需要一个计算时间5秒方法的返回值我不想等这5秒钟&#xff0c;我想要继续执行下面的代码&#xff0c;那就异步执行这个方法当我通过get去获取这个返回值时&#xff0c;如果已经过了5秒&#xff0c;也就是方法执行…

16、参数估计

概率基本定义先验分布&#xff1a;似然函数&#xff1a;后验分布&#xff1a;贝叶斯公式&#xff1a;&#xff0c;其中后验分布 似然函数 先验分布 / P(D)贝叶斯公式假设&#xff0c;现在有两个一定概率发生的事件A和B&#xff0c;且它们之间存在一定的关系P(A) 表示事件A发生…

UNIX网络编程卷一 学习笔记 第八章 基本UDP套接字编程

UDP是无连接不可靠的数据报协议&#xff0c;不同于TCP提供的面向连接的可靠字节流。使用UDP编写的常见程序有&#xff1a;DNS、NFS、SNMP。 以下是典型的UDP客户/服务器程序的函数调用&#xff0c;客户不与服务器建立连接&#xff0c;而是只使用sendto函数给服务器发送数据报&…

03_Linux压缩解压,用户用户组,文件权限

目录 Linux下常用的压缩格式 gzip 压缩工具 gzip 对文件夹进行压缩 bzip2 压缩工具 tar打包工具 对.tar.bz2 进行压缩和解压缩 对.tar.gz 进行压缩和解压缩 rar格式 zip格式 Linux用户 Linux用户组 创建用户和用户组 Linux文件权限 Linux文件权限修改 Linux下常用…

windows10安装nodejs

一、下载 官网 Download | Node.js 某云盘 链接&#xff1a;https://pan.baidu.com/s/1PCd4fh4ohEvAc8qSrb4-WA 提取码&#xff1a;yola 二、安裝 双击安装程序&#xff1a;具体步骤如下&#xff1a; 设置环境变量 验证安装是否安装成功 进入cmd命令行窗口&#xff0c;输入…

SQL优化操作1

一.存储过程建表 建两张30万条数据的表以做测试用 1.user_course_info delimiter $$ # 定义结束符 drop procedure if exists addTestDataOne; # 存储过程名叫&#xff1a;addTestData create procedure addTestDataOne() begin declare number int; set number 1; w…

node 配置 vue npm配置

下载node 版本16https://nodejs.org/download/release/v16.16.0/node-v16.16.0-x64.msi复制安装地址&#xff0c;省空间&#xff0c;生报错老老实实复制就好D:\Program\nodejs新建node_cache和node_globalD:\Program\nodejs\node_cacheD:\Program\nodejs\node_global运行命令np…

Sentinel架构篇 - 熔断降级

熔断降级 概念 除了流量控制以外&#xff0c;对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用其它模块&#xff0c;可能是一个远程服务、数据库、或者第三方 API 等。然而&#xff0c;被依赖的服务的稳定性是不能保证的。如果依赖的服…

原生HTML放大镜

该放大区域用背景图片放大 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compat…

Linux - buff和cache的区别

free -h命令可以查看内存的使用情况 [rootzabbix-server ~]# free -htotal used free shared buff/cache available Mem: 1.8G 432M 894M 10M 492M 1.2G Swap: 2.0G 0B 2.0G为什…