为自托管分片集群安排备份窗口
概述
在分片集群中,均衡器进程负责在集群中分配分片数据,以便每个分片具有大致相同的数据量。
然而,在从分片集群创建备份时,您需要禁用均衡器,以确保备份过程中捕获的备份内容不受块迁移的影响。
注意
只有在手动备份时才需要禁用均衡器,例如通过调用mongodump
或安排一个在特定时间调用 mongodump
的任务。
当使用协调的备份和恢复过程时,无需禁用均衡器。
按照第 禁用均衡器 章节中概述的流程,您可以手动暂时停止均衡器进程。作为替代方案,您可以使用以下流程定义一个均衡窗口,以确保在自动备份操作期间均衡器始终处于禁用状态。
技巧
要使用 mongodump
和 mongorestore
作为分片集群的备份策略,请参阅 使用数据库转储备份自托管分片集群。
分片集群还可以使用以下协调的备份和恢复过程之一,这些过程维护跨分片的事务原子性保证
程序
如果您有自动备份计划,您可以暂时禁用所有均衡操作一段时间。例如,考虑以下命令
use config db.settings.updateOne( { _id : "balancer" }, { $set : { activeWindow : { start : "06:00", stop : "23:00" } } }, true )
此操作配置均衡器在服务器时间的上午6:00至晚上11:00之间运行。安排您的备份操作在此时间之外运行并完成。确保备份可以在均衡器运行的时间窗口之外完成,并且均衡器可以有效地在分配给每个分片的时间窗口内平衡集合。