08-高手点拨
12.3 高手点拨
本节视频教学录像:9分钟
前面对MySQL的备份和恢复操作进行了讲解,逻辑备份恢复和物理备份恢复需要读者下来多实践操作才能深刻理解。但是在维护数据的时候我们究竟应当选择逻辑备份还是物理备份呢?下面我们就备份的高效性、实时性和支持度来分别详细谈谈这两种备份模式的区别。
⑴高效性。
逻辑备份是基于文件级别的备份,由于每个文件都是由不同的逻辑块组成。每一个逻辑的文件块存储在连续的物理磁盘块上,但组成一个文件的不同逻辑块极有可能存储在分散的磁盘块上。逻辑备份在对非连续存储磁盘上的文件进行备份时需要额外的查找操作。这些额外的操作增加了磁盘的开销,降低了磁盘的吞吐率。所以,与物理备份相比,备份性能较差。逻辑备份模式下,文件即使一个很小的改变,也需将整个文件备份。这样如果一个文件很大的情况下,就会大幅度降低备份效率,增加磁盘开销和备份时间。
物理备份是位于文件系统之下和硬件磁盘驱动之上。增加了一个软驱动,它忽略了文件和结构,处理过程简洁,因此在执行过程中所花费在搜索操作上的开销较少,备份的性能很高。物理备份避免了当文件出现一个小的改动的时候,就需要对整个文件做备份,只是会去做改动部分的备份,有效地提高了备份效率,节省了备份时间。
⑵实时性。
逻辑备份是很难做到实时备份的,因为它的每次修改都是基于文件的,而文件的哪部分被修改,系统很难实时捕获到,所以备份的时候需要把整个文件读一遍再发到备机,实时效率不是很高。
物理备份可以做到高效的实时备份,因为在每次主机往磁盘写数据的时候,都需要同时将数据写入到备机,这种写入操作都是基于磁盘扇区的,所以,很快就能被识别。只有在备机完成之后,才会返回给上层的应用系统来继续下一步工作。
⑶支持度。
逻辑备份是以单个文件为单位对数据进行复制,所以它受文件系统限制,仅能对部分支持的文件系统做备份,不支持RAW分区。
物理备份是在文件系统之下对数据进行复制,所以它不受文件系统限制,可以支持各种文件系统包括RAW分区。
不妨再更深刻地总结一下关于备份的知识,首先需要知道备份的本质就是将数据集另存一个副本,但是原数据会不停地发生变化,所以利用备份只能恢复到数据变化之前的数据。那变化之后的呢?所以制定一个好的备份策略很重要。
1.备份的目的
⑴做灾难恢复:对损坏的数据进行恢复和还原。
⑵需求改变:因需求改变而需要把数据还原到改变以前。
⑶测试:测试新功能是否可用。
2.备份需要考虑的问题
⑴可以容忍丢失多长时间的数据。
⑵恢复数据要在多长时间内完成。
⑶恢复的时候是否需要持续提供服务。
⑷恢复的对象,是整个库,多个表,还是单个库,单个表。
3.备份的类型
⑴根据是否需要数据库离线。
冷备(Cold Backup):需要关MySQL服务,读写请求均不允许状态下进行。
温备(Warm Backup):服务在线,但仅支持读请求,不允许写请求。
热备(Hot Backup):备份的同时,业务不受影响。
注:
①这种类型的备份,取决于业务的需求,而不是备份工具。
②MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具。
⑵根据要备份的数据集合的范围。
完全备份(full backup):备份全部字符集。
增量备份(incremental backup):上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。
差异备份(differential backup):上次完全备份以来改变了的数据。
建议的恢复策略:
①完全+增量+二进制日志;
②完全+差异+二进制日志。
⑶根据备份数据或文件。
①物理备份:直接备份数据文件。
优点:备份和恢复操作都比较简单,能够跨MySQL的版本,恢复速度快,属于文件系统级别的。
建议:不要假设备份一定可用,要测试“mysql→check tables”。
②检测表是否可用逻辑备份: 备份表中的数据和代码。
优点:恢复简单,备份的结果为ASCII文件,可以编辑,与存储引擎无关,可以通过网络备份和恢复。
缺点:备份或恢复都需要MySQL服务器进程参与,备份结果占据更多的空间,浮点数可能会丢失,精度还原之后缩影需要重建。
4.备份的对象
⑴数据。
⑵配置文件。
⑶代码:存储过程、存储函数、触发器。
⑷OS相关的配置文件。
⑸复制相关的配置。
⑹二进制日志。