备份、恢复与性能调优
备份与恢复
概述
根据备份的方法将备份分为:
- Hot Backup(热备)(在线备份)
- Cold Backup(冷备)(离线备份)
- Warm Backup(温备)
热备是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响;
冷备是指备份操作是在数据库停止的情况下,一般只需要复制相关的数据库物理文件即可;
温备同样是在数据库运行中备份,但是会对当前数据库的操作有所影响。
按照备份后的内容,备份又可以分为:
- 逻辑备份
- 裸文件备份
在MySQL数据库中,逻辑备份是指备份出的文件内容是可读的,一般是文本文件;
裸文件备份是指复制数据库的物理文件,既可以是在数据库运行中的复制,也可以是在数据库停止运行时直接的数据文件复制。
按照备份数据库的内容来分,备份又可以分为:
- 完全备份(对数据库进行一个完整的备份)
- 增量备份(在上次完全备份的基础上,对于更改的数据进行备份)
- 日志备份(对MySQL数据库二进制日志的备份)
冷备的优缺点
冷备的优点有:
- 备份简单,只要复制相关文件极客
- 备份文件易于在不同操作系统、不同MySQL版本上进行恢复
- 恢复相当简单,只需要把文件恢复到指定位置即可
- 恢复速度快,不需要执行任何SQL语句,也不需要重建索引
冷备的缺点有:
- InnoDB存储引擎冷备的文件通常比逻辑文件大很多,因为表空间中存放着很多其他的数据,如 undo 段,插入缓冲等信息。
- 冷备也不总是可以轻易地跨越平台。操作系统、MySQL的版本、文件大小写敏感和浮点数格式都会成为问题。
快照备份
MySQL数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。
备份的前提是将所有数据库文件放在同一文件分区中,然后对该分区进行快照操作。
复制
复制是MySQL数据库提供的一种高可用性能的解决方案,一般用来建立大型的应用。总体来说,复制的工作原理分为3个步骤:
- 主服务器把数据更改记录到二进制日志中。
- 从服务器把主服务器的二进制日志复制到自己的中继日志中。
- 从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性。
下图为快照 + 复制的备份架构:
性能调优
InnoDB存储引擎的性能问题:
- 选择合适的CPU
- 内存的重要性
- 硬盘对数据库性能的影响
- 合理地设置RAID
- 操作系统的选择也很重要
- 不同文件系统对数据库的影响
- 选择合适的基准测试工具