第83讲:MySQL数据库备份工具及备份策略的核心概念

文章目录

    • 1. MySQL数据库库数据备份的理念
    • 2.MySQL数据库备份工具介绍
    • 3.逻辑备份与物理备份的比较
    • 4.数据库的备份策略

1. MySQL数据库库数据备份的理念

数据备份是作为运维来说必不可少的一个环节,无论是数据库数据、程序中间件都需要定期备份。

在进行备份之前首先要去设计,是要增量备份还是全量备份,是全部全量备份,还是一周一次全备,剩下每天都是增量备份,以及备份周期是否自动备份等等,都需要提前设计好。

数据虽然备份好了,但是我们要每天的看一看备份的存在性,也就是检查备份是否成功。

还要针对备份的空间做出详细的告警,避免磁盘空间不够用导致无法备份。

虽然每天都在备份,但是如果不进行定期的恢复演练,我们也不知道备份的数据是否是可用的,需要定义的拿备份文件到测试环境进行演练。

MySQL的备份类型分为以下几种:

  • 热备
    • 在数据库正常工作的情况下吗,备份数据,并且能够进行一致性恢复,只有InnoDB存储引擎能够实现。
  • 温备
    • 锁表时进行备份数据,只能查询不能修改,影响写入操作,只有myisam存储引擎能实现。
  • 冷备
    • 关闭数据库业务的状态下,在数据库没有任何变更时,进行备份数据。

2.MySQL数据库备份工具介绍

MySQL的备份工具分为两类

  • 逻辑备份工具
    • 逻辑备份是基于SQL语句进行备份的,包括建表语句、数据的SQL语句等等。
    • 常用的MySQL逻辑备份工具就是MySQL自带的mysqldump以及mysqlbinlog两种,大多数生产环境中都是使用mysqldump和mysqlbinlog进行数据备份以及还原。
  • 物理备份工具
    • 物理备份是基于磁盘数据文件的备份。
    • 常用的MySQL物理备份工具有Xtrabackup(XBK),第三方厂家开源的备份工具,还有MEB(MySQL Enterprise Backup)MySQL企业版备份工具,付费使用。

3.逻辑备份与物理备份的比较

逻辑备份的代表工具就是mysqldump,物理备份的代表工具就是XBK。

1)逻辑备份

mysqldump是MySQL自带的逻辑备份工具,也是企业中使用最频繁的备份工具。

mysqldump的优点:

  • 不需要下载安装,安装完MySQL后自带备份工具。
  • mysqldump备份出来的数据都是数据库中的SQL文件,文本格式,可读性很高,并且非常便于备份处理。
  • mysqldump的压缩比较高,可以节省更多的磁盘空间。

mysqldump的缺点:

  • mysqldump是逻辑备份,备份出来的都是SQL文件,因此mysqldump依赖于数据库存储引擎,需要将磁盘中的数据读取到内存,然后转换成SQL再进行存储,比较耗费主机的CPU、磁盘IO、内存等资源,如果数据量很大的情况小,备份的效率会很低。

使用mysqldump备份100G以内的数据,大概花费1小时左右。

使用mysqldump备份数据库数据时,建议100G以内的使用mysqldump进行备份,当然如果超过TB的数据量也可以使用mysqldump进行备份,但是硬件资源一定要给到位,TB以上的数据量如果磁盘空间很充足的话,建议使用XBK进行备份,效率比mysqldump要高。

2)物理备份

XBK是物理备份的典型代表,是第三方公司开发的物理备份工具。

XBK的优点:

  • XBK是物理备份,是基于磁盘数据文件的备份,类似于直接备份磁盘上的数据文件,不需要进行逻辑结构的转换,性能较高备份时间段。

XBK的缺点:

  • 可读性较差,因为备份的是数据文件,并不是易读的SQL文件。
  • XBK备份的压缩占比较低,需要占用很多的磁盘空间。

当数据量小的时候使用XBK备份也可以,备份的时间快,只是占用的磁盘空间很高,建议在大于100G小于1TB的场景下使用XBK物理备份,如果数据量很大几TB甚至PB,那么用XBK进行备份,所占用从磁盘空间是无法想象的。

无需纠结应该使用逻辑备份还是物理备份,要根据自己的需求量来决定,大多数企业还是使用mysqldump进行数据备份的。

4.数据库的备份策略

对于数据量不大的数据库,百G以内,备份方式一般都是全库备份,每天晚上都会进行全库备份。

对于数据量很大的数据库,建议使用全库备份+增量备份,一周一次全量备份,然后每天进行增量备份。

全量备份指的是备份库中所有的数据库,增量备份指的是,从全量备份开始处备份变化的数据。

逻辑备份实现全量备份使用mysqldump即可,增量备份就是备份Binlog日志。

物理备份XBK有全量备份的工具xtrabackup_full和增量备份工具xbtrabackup_incr,XBK的增量备份也是要靠Binlog进行备份,并且比较复杂,因此可以不用XBK的增量备份,直接备份Binlog即可。

备份周期可以按照周日全备,周一到周六增量备份,或者每天全量备份都可以。

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

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

相关文章

计算机毕业设计-----SSM场地预订管理系统

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 用户角色包含以下功能: 按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商品详情,加入购物车,提交订单,查看订单,修改个人信息等功能。 管理员角…

分布式【Zookeeper】

1.1 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面,ZooKeeper 并没有直接采用 Paxos 算法&…

爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>

前言: scrapy-redis没被部署,感觉讲起来很无力;因为实在编不出一个能让scrapy-redis发挥用武之地的案子;所以,索性直接先把分布式爬虫的部署问题给讲清楚!! 然后,曲线救国式地再在部署的服务器上,讲scrapy redis我感觉这样才好! 正文: 现在还有不少人在用scrapy web进行爬虫管…

【深入探索Python库】操作系统功能的接口OS库(2)

系列文章目录 深入探索Python库之操作系统功能的接口OS库(1) 深入探索Python库之操作系统功能的接口OS库(2) 文章目录 系列文章目录引言系统信息进程管理结论 引言 前篇文章介绍了python库中os库的核心用途,包括文件…

2024,启动(回顾我的2023)

零.前言 打开博客想写个年度总结,发现已经半年没有更新文章了,排名从几千掉到了几万,不过数据量还是不错的。 时间过得可真快,2023年是充满动荡的一年,上半年gpt横空出世,下半年各种翻车暴雷吃瓜吃到嘴软…

系统编程--VIM

这里写目录标题 vim三种工作模式进入文本模式的快捷键在命令模式下进行文本编辑 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 vim 三种工作模式 具体可见第二章对vim的详细介绍 …

前端vue部署nginx多端口文件配置

nginx.conf 文件 worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;# 开启gzip压缩gzip on;gzip_static on;# 不压缩临界值,大于1K的才…

C:宏:编程风格:井号与define之间的空格

在这一篇中有提到,井号与define之间空格,可能导致搜索上的一些问题。 https://mzhan017.blog.csdn.net/article/details/135289451 今天看到有专门做这个空格的修改: https://sourceware.org/git/?pglibc.git;acommitdiff;hfcf70d4114db9ff…

第二节 linux操作系统安装与配置

一:Vmware虚拟机安装与使用   ①VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC ,以此来实现在一台机器上真正同时运行多个独立的操作系统。   ②VMware主要特点&#xff1a…

ES6 Module详解

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

SELinux 基本原理

本文讲述 SELinux 保护安全的基本原理 首发公号:Rand_cs 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败通常会得到一些 error 信息,通过查看全局变量 errno …

Python PDF转换为图片的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Kingbase单实例场景下更新license步骤

查进程 确定在运行的kingbase服务是在用的服务,避免因多个kingbase服务混淆 [kingbasenode1 V8]$ ps -ef | grep Kingbase kingbase 3190 1 0 10:06 ? 00:00:00 /KingbaseES/V8/Server/bin/kingbase -D /data 查看license信息 license文件位置&…

基于Flutter构建小型新闻App

目录 1. 概述 1.1 功能概述 1.2 技术准备 1.3 源码地址 2. App首页 2.1 pubspec依赖 2.2 热门首页组件 2.2.1 DefaultTabController 2.2.2 Swiper 2.3 新闻API数据访问 2.4 热门首页效果图 3. 新闻分类 3.1 GestureDetector 3.2 新闻分类效果图 4. 收藏功能 4…

sentinel相关面试题及答案

数据结构和算法 1、什么是哨兵值?它在算法中是如何使用的? 哨兵值是在计算中用作标记或信号的特殊值,通常用于指示数据结构的边界或结束,或者作为检测特定条件的触发器。在算法中,哨兵值的使用可以简化代码并提高效…

知识付费小程序系统源码:轻松实现 一站啊运营模式+完整的代码包 附安装部署的矫教程

在当今社会,知识的价值愈发凸显。人们对于优质内容的渴求,使得知识付费市场不断扩大。然而,对于许多内容创作者而言,搭建和维护一个知识付费平台的成本较高,技术门槛也相对较高。下面小编来和大家分享一款知识付费小程…

静态类成员分配

{ // set size // allot storage // initialize pointer // set object count 这条语句将静态成员 num_strings的值初始化为0。请注意,不能在类声明中初始化静态成员变量,这 是因为声明描述了如何分配内存,但并不分配内存。您可以使用这种格式来创建对象,从而分配和初始化 内…

【Reading Notes】(2)

文章目录 FreestyleHip-hop dance and MusicProgrammerMaster Freestyle 都说人的成长有三个阶段,第一个阶段认为自己独一无二,天之骄子;第二个阶段发现自己原来如此渺小,如此普通,沮丧失望;第三阶段&#…

K8S学习指南(58)-K8S核心组件Kubelet简介

文章目录 前言一、设计思想1.1 分而治之的原则1.2 声明式管理 二、主要功能2.1 容器生命周期管理2.2 资源管理2.3 网络管理 三、内部工作原理3.1 Pod描述同步3.2 容器运行时接口3.3 健康检查和自愈 四、常见的故障排查4.1 日志分析4.2 资源不足4.3 网络问题 五、总结 前言 Kub…

软考高级哪个简单?

对于没有相关知识基础的考生而言,软考高级考试具有一定的难度。软考高级考试包括五个科目,分别是信息系统项目管理师、系统分析师、系统规划与管理师、系统架构设计师以及网络规划设计师。 不同科目的难易度并不会相差太大,不过在高级考试中&…