本文汇总云数据库 MongoDB 在数据备份、误删恢复、回档时间与磁盘规格等方面的高频问题。
MongoDB 如何进行自动备份和手动备份?
云数据库 MongoDB 支持两种备份方式,备份数据默认保留7天:
自动备份:实例每天自动备份一次。可在控制台单击实例 ID 进入管理页,在备份与回档页查看备份文件和调整备份策略。
手动备份:在备份与回档页单击手动备份,填写备注后提交即可发起。
误删数据后如何恢复?
云数据库 MongoDB 提供三种恢复方式,可按数据丢失范围选择:
整实例回档(克隆实例):数据被大面积误删或误改时,基于备份文件将整个实例回档到指定时间点的新实例。参见 克隆实例。
库表回档:仅需恢复个别库或集合时,勾选目标库表并选择时间点,将数据恢复到当前实例或新实例。参见 库表回档。
按 Key 闪回:因业务异常或误操作导致部分文档错乱时,基于已开启闪回备份的集合,按闪回 Key(默认
_id)秒级恢复指定文档到独立的闪回集合。误删库表后如何恢复?
当您误删除或误修改了实例中的个别数据库或集合时,MongoDB 支持基于备份文件对指定库表进行回档,在 MongoDB 控制台 的备份与回档页中单击库表回档,勾选需恢复的库或集合,并选择回档时间点,将数据恢复至当前实例或新实例。具体操作,请参见 库表回档。
注意:
注意:若误删的库表已不存在于当前实例,需先在实例中创建同名空库表,使其在库表回档列表中可见后再发起回档。
回档时间取决于什么?
回档基于"最近一次全量备份镜像 + oplog 回放"完成,回档耗时主要取决于需回放的 oplog 数据量。若回档时间点距离最近全量备份较远,oplog 回放量大,耗时也相应增加。
支持回档到多久以前?
目前支持最近7天内的任意时间点回档。副本集和分片集群均支持实例级别和库表级别的备份与回档。
备份期间出现性能抖动如何优化?
说明:
该问题仅针对存量无隐藏节点的实例,已包含隐藏节点的实例可忽略。
平台默认在凌晨对集群做全量与增量备份。随着数据量增长,备份期间因系统资源负载升高,可能出现访问时延增加、慢日志增加、CPU 使用率升高等抖动现象。
优化方式:为实例增加隐藏节点,在该节点上执行备份且对客户端不可见,从而避免备份占用对业务的影响。
回档所需空间超过当前磁盘规格会怎样?
当实例数据大量减少并缩容过磁盘后,回档到数据减少前的时间点时,平台会临时放开磁盘规格限制以完成回档。但回档完成后因数据超过当前磁盘规格,实例会进入写封禁状态,需尽快提升磁盘规格恢复可写。具体操作,请参见 变更 Mongod 节点配置规格 。如果实例所在宿主机的磁盘资源不足,回档任务将暂时挂起,请您 提交工单 咨询解决。
说明:
数据回档之前,请确保回档时间点与当前时间点之间没有进行过磁盘缩容操作。如果已进行缩容操作,请提前将磁盘扩容至回档时间点的规格,以免影响回档任务和业务。