目录

 

一、MySQL的备份方式

二、备份方案


一、MySQL的备份方式

(1)按照备份后的内容来划分:

    1. 全量备份(Full Backup)

    全量备份也叫做完全备份,指的是对某个时间点的所有数据进行一个完全的备份,对应时间点的所有数据都包含在完全备份中。

    2. 差异备份(Differential Backup)

    差异备份是对上一次全量备份以后变化的数据的备份。

mysql 数据每天备份 mysql全备份_MySQL

    3. 增量备份(Incremental Backup)

    增量备份是对上一次备份(无论上一次是全量还是差异)以后变化的数据的备份。

mysql 数据每天备份 mysql全备份_MySQL_02

增量备份和差异备份:

  当数据量很庞大时,一个常见的策略是做定期的增量或差异备份。它们之间的区别有点容易让人混淆。

  差异备份随时对上次全量备份后的所有改变的部分数据而做的备份;增量备份则是自从任意类型的上次备份后所有的修改做的备份。例如,假如每周日做一个全备。在周一,对自周日以来所有的改变做一个差异备份。在周二,就有两个选择:备份自周日以来所有的改变(差异),或只备份从周一备份后所有的改变(增量)。

(2)按备份时,数据库的运行状态来划分:

  1. 冷备

  需要关闭 mysqld 服务,读写请求均不允许进行。好处是可以保证数据库的完整性,备份过程简单并且恢复速度相对快一些,但是数据库的关闭也就意味着会影像现有业务的进行,无法继续向用户提供服务。

  所以一般冷备用于不是很重要的、非核心业务上面。在 mysql 中,我们有时会在复制架构中的从库上做冷备。

  2. 温备

  服务在线,但仅支持读请求,不允许写请求的情况下备份。

  3. 热备

  备份的同时,业务不受影响。最为常用。

  要注意的是,在 mysql 中,InnoDB 存储引擎是支持热备的,但是 MyISAM 存储引擎是不支持热备的。

(3)逻辑备份和物理备份

  1. 逻辑备份

  逻辑备份就是将数据从数据库中导出,并且将导出的数据进行归档备份。速度慢、丢失浮点数精度,但其方便使用文本处理工具直接对其处理。

  典型工具:mysqldump、mydumper

  2. 物理备份

  物理备份就是直接备份数据库所对应的数据文件,物理备份相对逻辑备份来说,速度要快。

  典型工具: XtraBackup

 

 

二、备份方案

备份数据的最终目的在于将来在某一时刻对数据进行恢复。在规划备份和恢复策略时,必须要考虑一些因素。

  (1)可以容忍丢失多少数据?是否有法律法规的要求?

  (2)恢复需要在多长时间内完成?如果需要中断服务进行恢复,在多长时间内是用户可以接受的?

  (3)需要恢复什么?是恢复整个服务器?还是单个库?单个表?又或者仅仅是特定的事务或语句?

 

  备份 MySQL 比看起来要复杂不少,我们需要考虑应用程序的要求、业务的性质、MySQL 存储引擎的架构、系统配置等因素。

  (1)在生产线上,对于大数据库来说,物理备份是必须的:逻辑备份太慢并受到资源限制,从逻辑备份中恢复需要很长时间。XtraBackup无疑是最好的选择。对于较小的数据库,逻辑备份可以很好地胜任。

  (2)一定要保留多个备份集。

  (3)定期从备份集中抽取数据进行恢复测试。

  (4)保存二进制日志以应对基于故障时间点的恢复。expire_logs_days 参数应该设置得足够长,至少可以从最佳两次备份中做基于时间点的恢复。

  (5)完全不借助备份工具备份来监控备份和备份得过程。需要验证备份是否正常。

  (6)通过演练整个恢复过程来测试备份恢复。测算恢复所需要的资源(CPU负载、磁盘空间、实际时间、以及网络带宽等)。

  (7)对安全性要仔仔细细的考虑。如果有人能接触生产服务器,他是否能访问备份服务器呢?

  (8)对关键性数据,要考虑那些不可预料的情况,例如机房着火。