确保在MongoDB复制期间数据不会丢失



目前我有一个生产数据的复制集。 我正在向副本集添加新成员。新成员的状态变为次要(在启动、STARTUP2等之后(。

这是否保证主成员中的所有数据都已复制到新成员?

有没有办法确保复制后不会丢失任何数据?

(MongoDB的官方文档中是否指定了任何内容-任何保证数据不会丢失之类的内容。我正在使用MongoDB 3.2(

  • 初始同步完成后(从源克隆数据并应用oplog来维护数据集中的更改(,您可以从主mongodb shell调用rs.printSlaveReplicationInfo()

rs.printSlaveReplicationInfo((

这将返回应用于辅助数据库的最后一个oplog条目,这些条目是从主数据库 oplog.rs 集合中复制的。

响应返回为:

source: m1.example.net:27017
syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
0 secs (0 hrs) behind the primary
source: m2.example.net:27017
syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
0 secs (0 hrs) behind the primary

请注意,两个辅助成员都比主成员晚 0 秒,这表示没有复制滞后。

这本质上是在主设备上记录的最后一个操作的黑白差异,并且时间应用于辅助操作。

  • 作为额外的预防措施,您可以在开始同步并从新同步的辅助数据库收集相同的统计信息(db.stats()(之前记下主数据库右侧的db.stats()

在此处阅读有关初始同步的信息

最新更新