面试题答案
一键面试全量备份
- 优点:
- 备份完整,恢复时简单直接,只需还原全量备份文件,无需依赖其他备份文件,能快速恢复到备份时间点的数据库状态。
- 操作相对简单,对备份和恢复技术要求较低,易于理解和实施。
- 缺点:
- 备份数据量大,占用大量存储空间,特别是数据库数据量庞大时,存储成本高。
- 备份时间长,影响数据库性能,因为备份过程可能需要锁定数据库或表,在高并发场景下,会对业务产生较大影响。
- 适用场景:
- 数据库数据量较小,存储空间和备份时间不是主要限制因素时。
- 对恢复时间要求极高,希望能在最短时间内恢复到某个时间点状态的场景。
增量备份
- 优点:
- 备份数据量小,每次备份只记录上次备份(全量或增量)后变化的数据,节省存储空间。
- 备份时间短,因为备份的数据量少,对数据库性能影响相对较小,适合在生产环境中利用业务低峰期进行备份。
- 缺点:
- 恢复过程复杂,需要先恢复全量备份,再依次恢复后续的增量备份,恢复时间可能较长,且任何一个增量备份文件损坏都可能影响恢复。
- 管理难度较大,需要记录和管理多个备份文件及其顺序,对备份和恢复的技术要求较高。
- 适用场景:
- 数据库数据量大且变化频繁,对存储空间有限制,能接受相对复杂恢复过程的场景。
- 生产环境中,在业务低峰期进行备份,以减少对业务的影响。
结合方式及备份恢复流程举例
- 备份流程:
- 每周日凌晨进行一次全量备份,比如使用
mysqldump -uusername -ppassword --all -databases > full_backup.sql
命令生成全量备份文件full_backup.sql
。 - 周一到周六凌晨进行增量备份,利用二进制日志(binlog)实现。先使用
FLUSH LOGS
命令刷新二进制日志,然后将新生成的二进制日志文件复制保存,例如通过cp /var/lib/mysql/mysql-bin.00000X /backup/mysql - bin.00000X
命令将二进制日志文件复制到备份目录。
- 恢复流程:
- 首先恢复全量备份,使用
mysql -uusername -ppassword < full_backup.sql
命令将全量备份数据导入数据库。 - 然后按照备份顺序依次应用增量备份,通过
mysqlbinlog /backup/mysql - bin.00000X | mysql -uusername -ppassword
命令将每个增量备份的二进制日志应用到数据库,从而恢复到最新状态。