检查复制状态的最佳方法是首先发出db.collection.count(),然后更精确地发出db.collection.checksum()。这些也可以通过以下 curl 调用发出:
计数:
curl http://127.0.0.1:8529/_db/_system/_api/collection/test/count
{"id":"26724522","name":"test","isSystem":false,"doCompact":true,
"isVolatile":false,"journalSize":33554432,
"keyOptions":{
"type":"traditional","allowUserKeys":true},
"waitForSync":false,"indexBuckets":8,"count":40000,"status":3,
"type":2,"error":false,"code":200}
校验和:
curl http://127.0.0.1:8529/_db/_system/_api/collection/test/checksum
{"id":"26724522","name":"test","isSystem":false,
"status":3,"type":2,"checksum":1808041899,"revision":"7926623225",
"error":false,"code":200}
关于export-API,这些取决于服务器状态。文档在创建时连续写入 WAL 文件。使用 WAL 文件,因此您不会在磁盘上进行分布式写入,这会损害性能。这些文件稍后将被移动到他们的收藏文件中。为确保导出不会损害服务器性能,仅导出集合文件中的文档。因此,文档的数量可能会根据收集器设施的状态而有所不同。
在异步状态下获得同步的最可靠方法是在从属设备上插入文档。如果发生这种情况,您可以通过发出以下命令回到理智状态:
r.applier.stop()
r.syncCollection("myCollection", {endpoint: "tcp://127.0.0.1:8529"})
r.applier.start()
但是,对从站所做的更改将会丢失。