面试题答案
一键面试1. 备份策略选择
- mongodump/restore:适用于全量备份,操作简单,可将数据导出为BSON格式文件,便于在其他环境恢复。但对于高并发读写的数据库,全量备份时间长,会对业务产生一定影响。
- oplog重放:基于操作日志(oplog),可在全量备份基础上,通过重放增量的操作日志实现数据恢复,能有效缩短恢复时间。适用于高并发场景下减少恢复数据的时间。
- 文件系统快照:利用存储系统的快照功能,对MongoDB数据文件所在文件系统创建快照,备份速度快,对业务影响小。但依赖存储系统支持,且恢复时可能需要额外操作转换数据格式。
2. 备份策略设计
- 全量备份:
- 选择在业务低峰期使用mongodump进行全量备份。例如,电商平台凌晨时段业务量相对较低。
- 配置适当的压缩参数,减少备份文件大小,节省存储空间和传输时间。例如使用
--gzip
参数。 - 将全量备份文件存储到异地存储,防止本地存储故障导致数据丢失。
- 增量备份:
- 结合oplog重放实现增量备份。在全量备份完成后,记录当前oplog的位置(如timestamp或oplog的序号)。
- 定期(如每隔15分钟)获取自上次记录位置以来的oplog,并保存为增量备份文件。
- 对增量备份文件同样进行压缩和异地存储。
- 文件系统快照辅助:
- 在业务繁忙时段,若无法进行长时间的mongodump操作,可利用文件系统快照进行快速备份。
- 对文件系统快照进行定期清理,避免占用过多存储空间。
- 利用快照数据进行快速恢复测试,确保在需要时能有效恢复数据。
3. 理由
- 满足RTO要求:通过全量备份结合oplog重放的增量备份方式,在恢复数据时,先恢复全量备份,再重放增量的oplog,大大缩短恢复时间,满足对恢复时间目标(RTO)要求较高的场景。
- 高并发读写影响最小化:选择业务低峰期进行全量备份,业务繁忙时利用文件系统快照进行快速备份,减少对高并发读写业务的影响。
- 数据安全性和可恢复性:全量备份、增量备份文件异地存储以及文件系统快照多重保障,确保数据安全性和可恢复性。同时定期对快照数据进行恢复测试,验证备份的有效性。