首页 > 数据库 >使用docker 搭建xtrabackup服务,实现mysql全量和增量备份

使用docker 搭建xtrabackup服务,实现mysql全量和增量备份

时间:2023-11-21 15:13:25浏览次数:53  
标签:恢复 数据库 xtrabackup 全量 mysql 备份 物理

mysql数据库的备份是运维的重中之重,是保障服务灾难恢复的最后一道屏障

在我的构想里,一个完备的 mysql 容灾体系应该包括高可用架构和一套基础的数据库备份方案

高可用架构:MM+ Keepalived,PXC(Percona XtraDB Cluster)或者GR(Group Replication),来保证故障恢复,并附带一个延迟备库(延迟1小时同步数据)来防止误删等问题

基础的数据库备份方案:根据这段时间的调研,得出结论,可以按数据库大小分两种备份方案:30G以内,推荐使用mysql自带的mysqldump工具实现备份,超过30G使用xtrabackup工具实现备份。

下面为基础的数据库备份方案的调研:

首先了解下物理备份和逻辑备份

物理备份 VS 逻辑备份

物理备份,顾名思义,就是备份物理文件。其优缺点如下:

优点:

  • 备份、恢复速度快。

    尤其是恢复速度,直接关系着数据库服务的RTO( Recovery time objective )。

  • 无需实例在线。

    在实例关闭的情况下,可直接拷贝文件,不用担心备份的一致性。

    关闭实例进行备份,也称之为 “冷备” 。

缺点:

  • 备份文件大。
  • 恢复时,对平台、操作系统、MySQL版本有要求,必须一致或兼容。
  • 只能在本地发起备份。
  • 因为是拷贝物理文件,即使文件中存在很多“空洞”(大量DELETE导致),也无法通过恢复来收缩 。
  • 对表的存储引擎有要求,无法备份MEMORY表。

逻辑备份,备份表的逻辑记录。其优缺点如下:

优点:

  • 可移植性强。恢复时,对平台、操作系统、MySQL版本无要求。
  • 灵活。尤其是在恢复时,可只恢复一个库或一张表。
  • 对表的存储引擎没有要求,任何类型的表都可备份。
  • 备份文件较小。
  • 可远程发起备份。
  • 恢复后,能有效收缩空间。

缺点:

    • 备份、恢复速度慢。

      实际上,单论备份速度,多线程备份其实也不慢。但恢复速度呢,即使是多线程恢复,也很慢。

    • 备份会"污染"Buffer Pool。

      业务热点数据会被备份数据驱逐出Buffer Pool 。

 

 

 

参考文档:https://zhuanlan.zhihu.com/p/422120352

标签:恢复,数据库,xtrabackup,全量,mysql,备份,物理
From: https://www.cnblogs.com/allay/p/17846599.html

相关文章

  • MySQL索引结构演变历史
    MySQL索引结构演变历史什么是索引索引定义:索引是依靠某些数据结构和算法来组织数据,最终引导用户快速检索出所需要的数据例如新华字典中,我们可以通过偏旁部首或者拼音快速找到我们需要查找的字;这里的偏旁部首和拼音就是索引索引选择数据结构历史1.有序数组优点:可以通过下标随机访问......
  • phpstudy无法启动MySQL服务的解决方案
        MySQL这个服务,一直启动不了,原因是phpstudy里的MySQL服务与本地的MySQL占用的都是3306端口,产生了冲突。   在不想卸载好不容易在本地安装的MySQL服务,那么就可以采用以下办法解决服务冲突:        首先按下win+R执行services.msc进入服务,查找到M......
  • django连接mysql pycharm操作sqlite和mysql
    1如果项目使用sqlite,不需要额外配置,直接操作即可2django默认情况链接mysql,用的驱动是mysqldb模块,python3.x以后,这个模块用不了了,咱们用的全都是pymysql,需要做个替换3showmigrations:查看哪些记录更改了,但是没有同步到数据库中3如果使用mysql,需要配置如下: -1配置文件中配置......
  • 使用Java与MySQL开发计算器
    [实验目的]1.掌握软件开发的基本流程2.掌握常用的软件开发方式和工具。[实验内容]设计一个包含登录界面的计算器软件,该软件可以实现第一次作业中的全部功能,同时可以保存用户的历史计算记录(保存数据最好使用数据库)。[实验环境及开发工具]使用MicrosoftVisio作绘图工具使用......
  • MySQL主从搭建及Django实现读写分离
    mysql主从搭建#1主从同步的流程或原理1)master会将变动记录到二进制日志里面;2)master有一个I/O线程将二进制日志发送到slave;3)slave有一个I/O线程把master发送的二进制写入到relay日志里面;4)slave有一个SQL线程,按照relay日志处理slave的数据;#2在home目录下创建mys......
  • mysql 统计所有表的数据量
    在mysql里是可以查询​​information_schema.tables​​这张表的,然后获取我们想要的信息:SELECTtable_rows,table_nameFROMinformation_schema.tablesWHERETABLE_SCHEMA='mysql'andtable_namenotin('db','func')ORDERBYtable_rowsDESC;转自:https://z......
  • 02-MySQL的安装与配置(Windows)
    MySQL数据库MySQL关是一种关系数据库管理系统,所使用的SQL语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在Web应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之......
  • 01-MySQL概述
    数据库相关概念目前主流的关系型数据库管理系统 ......
  • MySQL
    MySQL下载方法下载路径https://www.mysql.com/MD5校验下载的软件包[root@localhost~]#md5summysql-5.7.38-1.el7.x86_64.rpm-bundle.tar826ce05d0379574a03935b62ae02db88mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar解压下载的软件包[root@localhost~]#tar-xvfmy......
  • pycharm链接数据库 django链接MySQL
    #找到pycharmdatabase选项(三个地方查找)#选取对应的数据库下载对应的驱动"""明明链接上了数据库但是看不到表无法操作这个时候你只需要将刚刚创建的链接删除重新链接一次即可"""  #1.配置文件中配置DATABASES={'default':{'ENGINE':'django.db.back......