MST

星途 面试题库

面试题:MongoDB备份方案的选择依据

在一个电商业务场景中,数据库使用MongoDB,业务需求要求既能保证数据的完整性,又要尽可能减少备份对线上业务性能的影响,请问你会如何选择备份方案,并阐述理由。
47.6万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

备份方案选择

选择使用 MongoDB 的 oplog 重放结合定期全量备份的方案。

理由

  1. 保证数据完整性
    • 定期全量备份:通过定期(例如每周或每月)进行全量备份,可以获取数据库在某一时刻的完整状态,这确保了在发生灾难性数据丢失时,能够恢复到全量备份时的状态,保证了数据的完整性基础。
    • oplog 重放: oplog(操作日志)记录了 MongoDB 数据库的所有写操作。在全量备份的基础上,利用 oplog 重放可以将备份时间点之后的所有写操作重新应用,从而恢复到故障发生前的最新状态,进一步保证数据完整性。
  2. 减少对线上业务性能影响
    • oplog 重放:oplog 是 MongoDB 内部机制,它的记录和使用对线上业务的额外开销相对较小。在备份时,主要是记录 oplog 日志,而重放是在恢复阶段进行,不影响线上业务运行。
    • 定期全量备份:可以选择在业务低峰期进行全量备份,如凌晨等时段,这样对线上业务性能的影响可以降到最低。同时,MongoDB 支持在副本集的从节点进行备份,从节点分担了主节点的读负载,从节点进行备份也能减少对主节点(线上业务主要操作节点)性能的影响。