目前我有一个生产数据的复制集。 我正在向副本集添加新成员。新成员的状态变为次要(在启动、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()
。
在此处阅读有关初始同步的信息