面试题答案
一键面试备份策略
- 定期全量备份:选择业务低峰期,例如凌晨2 - 4点进行全量备份。可以使用
mysqldump
工具对整个数据库进行备份,生成一个.sql文件。此体现了“完整性原则”,确保所有数据都能被备份。由于数据量庞大,为避免影响主库性能,可从从库进行备份。 - 增量备份:在两次全量备份之间,使用二进制日志(binlog)进行增量备份。主库开启binlog日志功能,通过定期记录binlog的位置,利用
mysqlbinlog
工具备份自上次全量备份或增量备份以来的所有更改。这体现了“效率原则”,减少备份数据量,提高备份效率。 - 备份验证:定期对备份数据进行恢复测试,确保备份数据的可用性。这体现了“可靠性原则”,验证备份数据在需要恢复时能够成功恢复。
- 多副本存储:将备份数据存储在多个不同的存储介质和地理位置,例如本地磁盘、网络存储(NAS)、云存储等。这体现了“安全性原则”,防止因存储介质损坏或单一地点的灾难导致备份数据丢失。
故障恢复
- 数据丢失故障:如果主库发生数据丢失,首先利用最近一次的全量备份文件恢复数据到全量备份时的状态。然后,应用从全量备份时间点到故障发生时间点之间的增量备份(通过重放binlog日志),使数据尽可能恢复到故障前的状态。
- 备份过程故障:如果在全量备份过程中出现故障,记录故障发生的位置,重新运行
mysqldump
工具并加上适当的参数从故障位置继续备份。对于增量备份故障,记录binlog位置,重新运行mysqlbinlog
工具从故障位置继续备份。 - 存储故障:当存储备份数据的介质发生故障时,切换到其他存储副本进行恢复操作。同时及时更换故障存储介质,并将备份数据重新复制到新的介质上,确保多副本的完整性。