面试题答案
一键面试备份时间选择
- 业务低谷期:选择业务访问量最低的时间段进行备份,比如凌晨 2 - 6 点。此时系统负载较小,备份操作对业务的影响能降至最低。可以通过监控工具(如 Prometheus + Grafana)长期跟踪业务流量,准确找出业务低谷时段。
- 避免关键业务时段:避开重要业务操作集中的时间段,例如电商平台的促销活动期间、金融系统的交易高峰时段等,防止备份影响关键业务的正常运行。
备份方式
- 逻辑备份与物理备份结合
- 逻辑备份:
- 优点:逻辑备份是基于 SQL 语句的备份,它可读性强,便于跨平台恢复,适用于数据量较小且对恢复灵活性要求高的场景。例如,mysqldump 工具可用于逻辑备份。在高并发环境下,可使用 --single - transaction 选项,它会在开始备份时创建一个一致性读视图,确保备份期间数据的一致性,且不会长时间锁定表,对业务影响较小。
- 缺点:逻辑备份速度相对较慢,特别是对于大数据量的数据库。
- 物理备份:
- 优点:物理备份是对数据库物理文件(如数据文件、日志文件等)的直接拷贝,速度快,适合大数据量备份。如 XtraBackup 工具,它是一种热备份工具,在备份过程中可以不影响数据库的正常读写操作。它通过复制数据文件和记录重做日志来实现备份的一致性,在高并发环境下能有效减少对业务的影响。
- 缺点:物理备份恢复时依赖于特定的操作系统和数据库版本,可移植性不如逻辑备份。
- 结合方式:定期进行物理备份(如每周一次),以获取数据库的完整物理镜像,确保数据的完整性。在两次物理备份之间,使用逻辑备份(如每天)来记录增量数据,这样既保证了备份的效率,又兼顾了恢复的灵活性和数据一致性。
- 逻辑备份:
- 增量备份与全量备份结合
- 全量备份:定期执行全量备份(如每周一次),全量备份可以提供一个完整的数据副本,是恢复的基础。但全量备份耗时较长,占用存储空间大。
- 增量备份:在全量备份的基础上,每天执行增量备份。增量备份只备份自上次全量备份或增量备份以来更改的数据,大大减少了备份时间和存储空间。恢复时,先恢复全量备份,再依次应用增量备份。
备份频率
- 依据数据重要性和变更频率
- 关键业务数据:对于数据变更频繁且至关重要的业务数据,备份频率应相对较高。例如金融交易数据,可能需要每小时甚至更短时间进行一次增量备份,每天进行一次逻辑全量备份,每周进行一次物理全量备份,以确保在发生故障时能最大程度恢复数据。
- 一般业务数据:对于变更相对较少的一般业务数据,可以适当降低备份频率。如每周进行一次物理全量备份,每天进行一次增量备份。
- 考虑存储资源和恢复时间目标 (RTO):如果存储资源有限,不能支持过于频繁的备份,可以适当降低备份频率,但要确保满足恢复时间目标。例如,如果 RTO 要求在故障后 2 小时内恢复数据,那么备份频率要保证在故障前 2 小时内的数据能够有效恢复。同时,定期对备份数据进行恢复测试,验证备份的有效性以及实际恢复所需的时间,根据测试结果调整备份频率。