第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即可。

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

你可能感兴趣的:(数据库,mysql,云计算,dba,运维,运维开发)