Board logo

标题: 使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-3 [打印本页]

作者: look_w    时间: 2017-12-19 19:55     标题: 使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-3

备份过程和脚本现在我们已经有一个全面设置的 MongoDB 数据库,可以开始备份了。我们选择使用 LVM                快照来获得系统的时间点备份的主要原因之一是,如果没有完全关闭每个 MongoDB 备份实例,则无法保证能够得到完美的时间点备份。MongoDB 方法                    fsynclock()可用于停止针对数据库的写入操作,但事实证明,MongoDB 中的                fsynclock() 方法无法保证它的存储引擎 WiredTiger                会实际停止写入。因为这会导致数据完整性问题,所以我们使用了 LVM                快照。实际上,这会让备份过程变得更简单,而且我们剩下的唯一问题是停止平衡器,尝试让 IBM Spectrum Protect 代理同步执行备份。
部分需要脚本化的工作包括停止平衡器。此平衡器是锁定机制,它管理 MongoDB 集群中的分片间的数据重新分布。例如,如果按 Last Name                字段对某个集合进行了分片,那么两个分片之间的拆分位置可能是字母“L”。如果 MongoDB                注意到“A-L”分片中的条目比“M-Z”分片中的条目明显多得多,它可能将拆分点从“L”更改为“K”。在本例中,所有包含以“L”开头的姓氏的数据都会从分片                1 转移到分片                2。明智的做法是关闭平衡器,因为您不想让平衡器在备份过程中转移数据。新数据仍将基于其分片键而存放在正确的分片中,但分片点在平衡器关闭时不会更改。这意味着在平衡器关闭时,MongoDB                仍能接受新的写入和读取操作。
如果从分片键的一部分中流入大量数据,数据可能在此期间变得不平衡。要减少这种不平衡,可以使用更复杂的分片键,比如井号键,或者按不同的值进行分片。无论如何,MongoDB                都会在重新启用平衡器后重新平衡自身。必须注意的是,平衡器需要处于停止并禁用的状态,而不仅仅是其中一个状态。可能会遇到平衡器卡顿的问题。我们发现,处理此问题的最佳方法是,找到导致问题的                mongos 实例并将它软关闭。可通过以下过程完成此操作:





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0