《Centos7——实战-完全备份和增量备份》

2023-11-06

完全备份和增量备份

一般都三种备份种类:完全备份、差异备份、增量备份。
完全备份:
备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。
差异备份:

差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。(差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,既:备份后不标记为已备份文件,换言之,不清除存档属性)。

在这里插入图片描述

增量备份:

增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,既:备份后标记文件,换言之,清除存档属性。)

在这里插入图片描述

完全备份和差异备份

在星期一进行完全备份,在星期二至星期五进行差异备份。如果在星期五数据被破坏了,则你只需要还原星期一完全的备份和星期四的差异备份。这种策略备份数据需要较少的时间,但还原数据使用较少的时间。

完全备份和增量备份

在星期一进行完全备份,在星期二至星期五进行增量备份。如果在星期五数据被破坏了,则你需要还原星期一正常的备份和从星期二至星期五的所有增量备份。这种策略备份数据需要较少的时间,但还原数据使用较多的时间。

逻辑备份(全备+差备、全备+增备)

Mysqldump   100G  1~2小时
Xtrabackup    500G,1T   还原100G数据需要时间20分钟~30分钟左右
架构备份:主从复制

物理备份(直接使用的复制命令)

从企业的角度看全量和增量:

1)对于中小公司,全量一般每天一次,在业务量低估时执行全备并锁表;
2)对于单台数据库如何实现增量。利用rsync(配合定时任务频率高点,或者inotify主从复制)把所有binlog备份到远程服务器。但是尽量还是要做主从复制!
3)对于大公司,有可能会做周备,其他时间都是增量;
4)一主多从,会有一个从库做备份,延迟同步;

需要mysql的mysqldump全量备份场合:

迁移或升级数据库;
增加从库的时候;
由于硬件或异常情况导致的主库或从库宕机,主从可互相切换,无需备份;但是由于人为操作导致主库误删,主从都会执行,此时需要备份;
做跨机房灾备,需要全量备份到异地。

需要mysql的增量恢复场合:

人为操作导致主库误删(如drop),主从都会执行,此时需要增量备份;
只有一个主库的情况下需要增量恢复。

mysqldump 变量说明
--all-databases针对所有数据库进行备份
--databases databasename 针对单个数据库进行备份
--flush-logs为结束当前日志,生成新日志文件;
--master-data 选项的作用就是将二进制的信息写入到输出文件中,在这里是写入到备份的sql文件中
用于日后恢复时参考,例如输出的备份SQL文件中含有:
CHANGE MASTER TO MASTER_LOG_FILE=’MySQL-bin.000002′, MASTER_LOG_POS=106;

1、需要开启log-bin日志

[root@localhost ~]# yum -y install mariadb mariadb-server -----安装mysql服务
[root@localhost ~]# systemctl start mariadb -----启动mysql服务

在这里插入图片描述

[root@localhost ~]# systemctl restart mariadb

2、增量和全备脚本

vim mysql_dump.sh -----编辑脚本

#!/bin/bash
#version 1
MYSQL_BACKUP=`date +%Y%m%d`
MYSQL_LOG_BIN=`ls /var/lib/mysql/mysql-bin.[0-9]* |head -n 1|sort -rg|head -n 1`
num=$1
if [ ! -d /opt/$MYSQL_BACKUP ]; then
        mkdir -p /opt/$MYSQL_BACKUP
fi

#全备 
#--all-databases针对所有数据库进行备份
#--databases databasename 针对单个数据库进行备份
#--flush-logs为结束当前日志,生成新日志文件;
#--master-data 选项的作用就是将二进制的信息写入到输出文件中,在这里是写入到备份的sql文件中
mysql_all(){
        mysqldump -uroot --flush-logs --master-data --all-databases > /opt/$MYSQL_BACKUP/${MYSQL_BACKUP}.sql 
}           
#增备      
mysql_increment(){
        mysqldump -uroot --flush-logs
        cp $MYSQL_LOG_BIN /opt/$MYSQL_BACKUP
}
case $num in
        1)
                mysql_all
        ;;
        2)
                mysql_increment 
        ;;
        *)
                exit
esac                

3、计划任务

[root@localhost ~]# crontab  -e -----编写计划任务
0 2 * * 1 sh mysql_dump.sh 1 >> /tmp/test.log -----每周一2点执行全备
0 2 * * 2-7 sh mysql_dump.sh 2 >> /tmp/increment.log -----每周二到周日2点执行增备
[root@localhost ~]# crontab -l -----查看计划任务
0 2 * * 1 sh mysql_dump.sh 1 >> /tmp/test.log
0 2 * * 2-7 sh mysql_dump.sh 2 >> /tmp/increment.log

模拟数据丢失

1、新增数据

在这里插入图片描述

2、数据备份

在这里插入图片描述

3、删除数据

在这里插入图片描述

4、数据的恢复

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Centos7——实战-完全备份和增量备份》 的相关文章

  • 将 Wamp 服务器升级到 MySQL 8.0.15

    因此 我最近在几个月前安装了 WampServer 并预装了 mySQL 5 7 但我想利用 mySQL 8 附带的 NoSQL 功能 为了更新它 我下载了最新的MySQL版本 将文件夹解压到wamp64的bin目录中 然后 我从 5 7
  • NodeJS MySQL - 如何知道连接是否释放

    我正在开发 NodeJS MySQL Web API 我在用mysql https www npmjs com package mysqlnpm 模块 我想知道连接是否已释放 是否有任何函数或变量 喜欢 if connection isRe
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • Node.js - 我可以在 PhoneGap / Cordova 应用程序上安装 NPM 包吗?

    感谢 Cordova 我正在构建一个移动应用程序 并且由于 Cordova 基于 Node js 我认为我可以在应用程序中使用 NPM 包 例如 我希望我的移动应用程序能够与远程 MySQL 数据库通信 我想我可以使用 mysql NPM
  • 在 LAMP 配置中创建个性化 URL

    在 LAMP 配置下创建用户个性化 URL 的最佳方法是什么 例如 可以按如下方式访问用户个人资料页面 http www website com profile php id 1 http www website com profile p
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • mysql - 如果日期不与现有日期重叠,则将日期范围插入日期列

    我有以下表结构 表名 available id autoincremetn acc id start date end date 1 175 2015 05 26 2015 05 31 2 175 2015 07 01 2015 07 07
  • 当服务器时区不是 UTC 时,从 Java 中的 MySQL 检索 UTC DATETIME 字段

    我正在尝试编写代码以使用 Java 和 MySQL 与第三方开发的数据库进行互操作 该数据库有一个字段 用于存储时间戳DATETIME字段作为 UTC 日期 运行数据库和客户端的服务器的时区设置为非 UTC 时区 Europe London
  • 如何在 Eclipse 中使用 MySql 数据库

    我对编程非常陌生 所以请耐心等待 如果一开始我没有理解的话 请提前道歉 我正在做一个本科编程项目 需要在 Java 程序中创建一些数据库 我正在使用 eclipse galilo 来编写我的程序 我已经下载了一个连接器 J 但还不知道应该如
  • PHP PDF生成问题

    我使用 FPDF 在 PHP 中创建 pdf 我使用会话变量将变量在一种表单之间传递到另一种表单 当我提供一个值时 Report php
  • PHP 和 MySQLi 中没有选择数据库错误[重复]

    这个问题在这里已经有答案了 我必须从 MySQL 数据库中选择数据 我一直在寻找答案 但仍然没有找到 我正在学习W3School http www w3schools com php php mysql select asp 我的 MySQ
  • 在 Entity-Framework Core 中批量插入到 MySQL [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个由约 10 000 个对象组成的列表 比方说类Person 我需要将其插入到 MySQL 表中
  • 排除任何字段中具有 NULL 值的行结果?

    我有一个像这样的简单选择 SELECT FROM table WHERE fk id 10020 它可以工作 但有一些字段为 NULL 没有模式所以做了 SELECT FROM table WHERE fk id 10020 AND NOT
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • 如何将另一列的整数值添加到日期列?

    我试图将整数添加到日期 但出现以下错误 1064 你的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在第 6 行的 wp OrderDate INTERVAL WPProduct Duration DAY AS
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml

随机推荐

  • mmcls 多标签模型部署在torch serve

    GitHub仓库 gy 7 mmcls multi label torchserve github com 各个文件说明 cls requests demo 分类模型请求api服务的demo det requests demo 检测模型请求
  • linux hostname设置步骤

    查询hostname 设置步骤 其它相关点 hostid etc hosts EDA工具license破解注意事项 以RHEL 6 5为例 查询hostname uname a hostname 设置步骤 vim etc sysconfig
  • 最小年龄仅5岁!盘点全球最“天才”少年黑客 TOP 10

    你还能想起自己8岁的时候 每天都在玩什么吗 可能是在楼下和小朋友一起捉迷藏 在家追一本连载的漫画书 又或者在电脑上玩种菜偷菜的小游戏 当同龄人还在沉迷于这些比较 基础 的小游戏时 有这样一批和互联网 打交道 的少年 已经在忙着发现并修补游戏
  • ciclop读音,购机必备,15种 3D扫描 设备 优缺点汇总

    原标题 购机必备 15种 3D扫描 设备 优缺点汇总 小编总结了市场上常见的15种 可用于3D扫描的软件和设备 并详细列出有关它们的价格 优缺点等特征 以供大家在购机时有比较实用性参考 一 软件选择 根据研究表明 很多人可能不需要买一个3D
  • Android实现倒计时的几种方案

    前言 关于倒计时可以说我们App开发中常见的一种场景了 比如Splash倒计时跳转首页 比如发送短信之后倒计时60秒显示等等 关于倒计时的实现方式 大家可能有不同的做法 这里做一下总结看看你使用的是哪一种呢 一 CountDownTimer
  • 3、Nginx系列之: location和alias的区别

    Nginx系列之 location和alias的区别 一 概述 root 语法 root path 默认值 root html 配置段 http server location if alias 语法 alias path 配置段 loca
  • 【多线程】三种实现方案

    目录 1 多线程中的并发和并行概念 2 多线程中的进程和线程概念 3 多线程的实现方案 3 1 方式1 继承Thread类的方式进行实现 3 2 方式2 实现Runnable接口 3 3 方式3 Callble和Future 可以获取返回结
  • 关于MaxCompute的基本了解

    大数据计算服务 MaxCompute 原名 ODPS 是一种快速 完全托管的 GB TB PB 级数据仓库解决方案 MaxCompute 为您提供了完善的数据导入方案以及多种经典的分布式计算模型 能够更快速的解决海量数据计算问题 有效降低企
  • 【高数】导数存在,导数就连续吗?

    高数 导数存在 导数就连续吗 一 概念理解 二 问题讨论 三 小结 一 概念理解 函数连续 y f x 在 x 0 的某邻域有定义 且满足下式 也就说明 连续意味着 x 0 处 f x 的极限存在 也即 f x 的左极限 右极限 该点函数值
  • 【STM32】【HAL库】遥控关灯1主机

    相关连接 STM32 HAL库 遥控关灯0 概述 STM32 HAL库 遥控关灯1主机 STM32 HAL库 遥控关灯2 分机 STM32 HAL库 遥控关灯3 遥控器 需求 主机需要以下功能 接收来自物联网平台的命令 发送RF433信号给
  • crmeb多商户系统安装(1)

    服务器配置 以阿里云ECS服务器为例 1 在阿里云控制台 云服务器ECS 实例 点击最右侧更多 实力状态 停止 2 选择停止 点击确定 3 输入短信验证码 4 等待服务器状态为 已停止 点击最右侧更多 磁盘和镜像 更换系统盘 5 点击确定
  • 踩坑日记:java.lang.IllegalStateException: For queries with named parameters you need to use provide ...

    今天的错误是这个 java lang IllegalStateException For queries with named parameters you need to use provide names for method para
  • SQLI-labs-第五关和第六关

    目录 1 判断注入点 2 判断当前表的字段数 3 爆库名 4 爆表名 5 爆字段名 6 爆值 知识点 布尔盲注 思路 1 判断注入点 首先 我们看看正常的回显内容 id 1 接着输入 id 1 结果出现语句错误 这里说明存在单引号的闭合错误
  • 【信号分解】基于辛几何模态SGMD实现信号数据分解附Matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • 【网络工程】如何本地调试微信公众号开发教程(Nginx代理方法)

    目录 前言 目的 通过Nginx代理实现本地调试微信公众号 实现工具 实现步骤 1 启动本地前端项目 2 首先配置Nginx 3 填写app conf内容 把本地前端项目与域名形成映射 4 把app conf加入到Nginx配置中 5 打开
  • vue-cordova修改app图标+文字以及启动图

    前言 在使用 vue cordova 打包成apk的时候 我们一定会根据项目改把app的图标还有显示文字 加载图片也有可能改动 这里来说一说这个 1 修改显示文字 地址 D cordova app config xml 修改name里面的文
  • 鸿蒙相符合的图片,鸿蒙操作系统亮相——目标是未来的物联网

    原标题 鸿蒙操作系统亮相 目标是未来的物联网 本文由什么值得买用户原创 太空铁 咱们好 我是太空铁 这两天 华为开发者大会很热闹 华为接连发布了鸿蒙 凌霄以及才智屏等软硬件产品 其间最让人等待的当属鸿蒙操作体系了 鸿蒙操作体系早前可说是进行
  • 系统环境变量修改后需要重启qt才能响应

    修改系统环境变量 不需要重启系统 但需要重启qt才能感知新的环境变量
  • 物业小区管理系统登录页面以及逻辑实现

    学习vue3和springboot那肯定是少不了写项目的 在各个项目中肯定是离不开登录和注册的事情的 这也是一个项目起步的需求 接下来我们来看看我们所写的项目起步 首先搭建vue3和springboot的项目环境 这些搭建大家自行完成即可
  • 《Centos7——实战-完全备份和增量备份》

    目录 完全备份和增量备份 1 需要开启log bin日志 2 增量和全备脚本 3 计划任务 模拟数据丢失 1 新增数据 2 数据备份 3 删除数据 4 数据的恢复 完全备份和增量备份 一般都三种备份种类 完全备份 差异备份 增量备份 完全备