![78ea4158ddf76061fc1d2a74bc8cf67a.png](https://img-blog.csdnimg.cn/img_convert/78ea4158ddf76061fc1d2a74bc8cf67a.png)
根据备份方法区分
- Hot backup 热备,指在数据库运行中直接备份,对正在运行的数据库没有任何影响。
- Cold backup 冷备,指在数据库停止的情况下进行备份,一般只需要拷贝相关的数据库物理文件即可。
- Warm backup 温备,指在数据库运行时进行,但是会对当前数据库的操作有所影响,可能会增加一个全局读锁。
根据备份文件格式区分
- 逻辑备份,指备份后的文件内容是可读的,通常是文本文件,内容一般是SQL语言,或者表内的实际数据,如 mysqldump 和 select * into outfile的方法。
- 裸文件备份,指拷贝数据库的物理文件。
根据备份内容区分
- 完全备份,指对数据库进行一个完整的备份。
- 增量备份,不支持。
- 日志备份,指对数据库二进制日志的备份,通过对一个完全备份进行二进制日志的重做 Replay 来完成数据库的的恢复工作。这就是数据库复制的原理。
日志备份实现了读写分离,那么有可能原来在一个事务中执行的业务被分配到两个事务之中。如果备份就发生在多个事务执行之间,就有可能导致数据不一致。
为了规避这一情况,必须在逻辑上将读写分离与事务分开。
快照备份
MySQL 数据库本身并不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。LVM Logical Volume Manager 是 Linux 系统下对磁盘分区进行管理的一种机制,LVM 在硬盘和分区之上建立一个逻辑层来提高磁盘分区管理的灵活性。
当然,日志备份也可以在逻辑上实现快照备份。
性能调优
CPU 的重要性
数据库应用分为两类,
- OLTP Online Transaction Processing,在线事务处理
- OLAP Online Analytical Processing,在线分析处理
OLAP 一般运用于复杂 SQL 查询的数据仓库型业务,是典型的 IO 密集型业务。
InnoDB 一般用于 OLTP,是典型的 CPU 密集型业务。这种应用有如下特点:
- 并发大
- 事务处理的时间一般都比较短
- 查询的语句较为简单,一般都走索引
- 复杂的查询较少
内存的重要性
内存的大小直接反应数据库的性能。
InnoDB 存储引擎将大量的数据和索引缓存在缓冲池 InnoDB Buffer Pool 中。可以通过对缓存的命中率判断内存大小是否合适。
硬盘的重要性
传统机械硬盘和固态硬盘读写差距巨大。
选择合适的基准测试工具
sysbench、mysql-tpcc 可用来测试数据库性能。