第八章 备份与恢复 阅读总结

8.1 备份与恢复概述

可以根据不同的类烈来划分备份的方法。 根据备份的方法不同可以将备份分为:

Hot Backup (热备)

Cold Backup (冷备)

Warm Backup (温备)

        Hot Backup 是指数据库运行中直接备份, 对正在运行的数据库操作没有任何的影响。 这种方式在 MySQL 官方手册中称为 Online Backup (在线备份)。 Cold Backup 是指 备份操作是在数据库停止的情况下, 这种备份最为简单, 一般只需要复制相关的数据库物理文件即可。 这种方式在 MySQL 官方手册中称为 Offline Backup (离线备份)。 Warm Backup 备份同样是在数据库运行中进行的, 但是会对当前数据库的操作有所影响, 如加 一个全局读锁以保证备份数据的一致性。

按照备份后文件的内容, 备份又可以分为:

逻辑备份

裸文件备份

        在 MySQL 数据库中, 逻辑备份是指备份出的文件内容是可读的,一般是文本文件。内容一般是由一条条SQL语句, 或者是表内实际数据组成。如mysqldump和SELECT*INTO OUTFILE 的方法。这类方法的好处是可以观察导出文件的内容, 一般适用于数据库的升级、迁移等工作。但其缺点是恢复所需要的时间往往较长。

        裸文件备份是指复制数据库的物理文件, 既可以是在数据库运行中的复制(如ibbackup、xtrabackup这类工具), 也可以是在数据库停止运行时直接的数据文件复制。这类备份的恢复时间往往较逻辑备份短很多。若按照备份数据库的内容来分, 备份又可以分为:

完全备份

增量备份

日志备份

        完全备份是指对数据库进行一个完整的备份。增抵备份是指在上次完全备份的基础上, 对于更改的数据进行备份。日志备份主要是指对MySQL数据库二进制日志的备份,通过对一个完全备份进行二进制日志的重做(replay)来完成数据库的point-in-time的恢复工作。MySQL数据库复制(replication)的原理就是异步实时地将二进制日志重做传送并应用到从(slave/standby)数据库。

8.2 冷备

        对于InnoDB存储引擎的冷备非常简单,只需要备份MySQL数据库的frm文件,共享表空间文件,独立表空间文件(*.ibd), 重做日志文件。另外建议定期备份MySQL数据库的配置文件my.cnf, 这样有利于恢复的操作。

冷备的优点是:

备份简单,只要复制相关文件即可。

备份文件易于在不同操作系统,不同MySQL版本上进行恢复。 

恢复相当简单,只需要把文件恢复到指定位嚣即可。

恢复速度快,不需要执行任何SQL语句,也不需要重建索引。

冷备的缺点是:

InnoDB存储引擎冷备的文件通常比逻辑文件大很多,因为表空间中存放着很多其他的数据,如undo段,插入缓冲等信息。

冷备也不总是可以轻易地跨平台。操作系统、MySQL的版本、文件大小写敏感和浮点数格式都会成为问题。

8.3 逻辑备份

8.3.1 mysqldump

8.3.2 SELECT…INTO OUTFILE

        SELECT. .. INTO 语句也是一种逻辑备份的方法, 更准确地说是导出一张表中的数据。

8.3.3 逻辑备份的恢复

        mysqldump的恢复操作比较简单, 因为备份的文件就是导出的SQL语句,一般只需要执行这个文件就可以了

        因为逻辑备份的文件是由SQL语句组成的, 也可以通过SOURCE命令来执行导出 的逻辑备份文件。

8.4 二进制日志备份与恢复

        二进制日志非常关键, 用户可以通过它完成 point-in-time 的恢复工作。 MySQL 数据库的 replication 同样需要二进制日志。 在默认情况下并不启用二进制日志, 要使用二进制日志首先必须启用它。

8.5 热备

8.5.1 ibbackup

        ibbackup 是 lnnoDB 存储引擎官方提供的热备工具, 可以同时备份 MylSAM 存储引擎和 InnoDB 存储引擎表。对于 InnoDB 存储引擎表其备份工作原理如下:

1) 记录备份开始时, InnoDB 存储引擎重做日志文件检查点的 LSN。

2) 复制共享表空间文件以及独立表空间文件。

3) 记录复制完表空间文件后, lnnoDB 存储引擎重做日志文件检查点的 LSN。

4) 复制在备份时产生的重做日志。

8.6 快照备份        

        MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。备份的前提是将所有数据库文件放在同一文件分区中, 然后对该分区进行快照操作。支持快照功能的文件系统和设备包括FreeBSD的UFS文件系统,Solaris的ZFS文件系统,GNU/Linux的逻辑管理器(LogicalVolume Manager, LVM)等。这里以LVM为例进行介绍,UFS和ZFS的快照实现大致和LVM相似。

8.7 复制

8.7.1 复制的工作原理

        复制 C replication) 是 MySQL 数据库提供的一种高可用高性能的解决方案,一般用来建立大型的应用。 总体来说, replication 的工作原理分为以下 3 个步骤:

1) 主服务器 (master) 把数据更改记录到二进制日志 (binlog) 中。

2) 从服务器 (slave) 把主服务器的二进制日志复制到自己的中继日志 (relay log) 中。

3) 从服务器重做中继日志中的日志, 把更改应用到自己的数据库上, 以达到数据的最终一致性。

        复制的工作原理并不复杂,其实就是一个完全备份加上二进制日志备份的还原。不同的是这个二进制日志的还原操作基本上实时在进行中。这里特别需要注意的是,复制不是完全实时地进行同步,而是异步实时。这中间存在主从服务器之间的执行延时,如果主服务器的压力很大,则可能导致主从服务器延时较大。复制的工作原理如图8-4所示。

第八章 备份与恢复 阅读总结_第1张图片

8.7.2 快照+复制的备份架构

        复制可以用来作为备份, 但功能不仅限于备份, 其主要功能如下:

        数据分布。 由于 MySQL 数据库提供的复制并不需要很大的带宽要求, 因此可以在不同的数据中心之间实现数据的复制。

        读取的负载平衡。通过建立多个从服务器,可将读取平均地分布到这些服务器中,并且减少了主服务器的压力。一般通过DNS的Round-Robin和Linux的LVS功能都可以实现负载平衡。

        数据库备份。复制对备份很有帮助,但是从服务器不是备份,不能完全代替备份。 

        高可用性和故障转移。通过复制建立的从服务器有助于故障转移,减少故障的停机时间和恢复时间。

第八章 备份与恢复 阅读总结_第2张图片

你可能感兴趣的:(第八章 备份与恢复 阅读总结)