mongodb - mongodb slave 上的数据库与 master 不相同

标签 mongodb mongodb-query replication master-slave database

我的问题 - 设置简单的主从复制 mongodb,但从属数据库和主数据库的大小 - 不相同。

在从站上开始复制(resync = true)。等待 6 小时(大型数据库)。 slave 上的卷/var/lib/mongodb = 20GB master 上的卷/var/lib/mongodb = 100GB

24 小时后没有任何变化 - 从服务器上为 20GB。这是正常的? 检查 slave 上的一些集合 - 与 master 相等的集合中的项目数。

mongodb.log的部分内容:

/usr/bin/mongod(_ZN5mongo10ReplSource14applyOperationERKNS_7BSONObjE+0x32) [0xb951f2]
/usr/bin/mongod(_ZN5mongo10ReplSource29sync_pullOpLog_applyOperationERNS_7BSONObjEb+0x11ad) [0xba5bed]
 /usr/bin/mongod(_ZN5mongo10ReplSource14sync_pullOpLogERi+0x207d) [0xba802d]
/usr/bin/mongod(_ZN5mongo10ReplSource4syncERi+0x2d3) [0xbaad43]
/usr/bin/mongod(_ZN5mongo9_replMainERSt6vectorIN5boost10shared_ptrINS_10ReplSourceEEESaIS4_EERi+0xea) [0xbad81a]
/usr/bin/mongod(_ZN5mongo8replMainEv+0xc1) [0xbadf21]
/usr/bin/mongod(_ZN5mongo15replSlaveThreadEv+0x4c) [0xbae3ac]
/usr/bin/mongod() [0xe318b9]
/lib64/libpthread.so.0(+0x79d1) [0x7ffff7bc79d1]
/lib64/libc.so.6(clone+0x6d) [0x7ffff6f6c9dd]
Sun Dec  7 20:23:47.987 [replslave] sync: caught db exception 12583 unexpected index insertion failure on capped collection while applying op: { ts: Timestamp 1417973112000|19, op: "i", ns: "test.customdata", o: { _id: ObjectId('54848d781eff6701f2b577e4'), key: "uservariables", value: { autoexpandfeed: "no" }, vuid: "5483fb42b4182e0e448b4595" } }
Sun Dec  7 20:23:48.332 [replslave] replication update of non-mod failed: { ts: Timestamp 1417973112000|26, op: "u", ns: "test.customdata", o2: { _id: ObjectId('548489da1eff6701f2b54a69') }, o: { $set: { value: { autoexpandfeed: "no" } } } }
Sun Dec  7 20:23:48.332 [replslave] replication info adding missing object
Sun Dec  7 20:23:48.332 [replslave] replication missing doc, but this is okay for a capped collection (test.customdata)
Sun Dec  7 20:23:48.332 [replslave] replication missing object not found on source. presumably deleted later in oplog
Sun Dec  7 20:23:48.332 [replslave] replication o2: { _id: ObjectId('548489da1eff6701f2b54a69') }
Sun Dec  7 20:23:48.332 [replslave] replication o firstfield: $set
Sun Dec  7 20:23:54.059 [replslave] Saving repl source: { host: "192.168.205.1", source: "main", syncedTo: Timestamp 1417973118000|13 }
Sun Dec  7 20:23:54.059 [replslave] repl:   checkpoint applied 1125 operations
Sun Dec  7 20:23:54.059 [replslave] repl:   syncedTo: Dec  7 20:25:18 54848d7e:d
Sun Dec  7 20:24:10.485 [DataFileSync] flushing mmaps took 279ms  for 16 files
Sun Dec  7 20:24:10.768 [journal] lsn set 113299808
Sun Dec  7 20:24:13.401 [TTLMonitor] query test.system.indexes query: { expireAfterSeconds: { $exists: true } } ntoreturn:0 ntoskip:0 nscanned:128 keyUpdates:0 locks(micros) r:212 nreturned:0 reslen:20 0ms
Sun Dec  7 20:24:13.402 [TTLMonitor] query local.system.indexes query: { expireAfterSeconds: { $exists: true } } ntoreturn:0 ntoskip:0 nscanned:2 keyUpdates:0 locks(micros) r:69 nreturned:0 reslen:20 0ms

PS> centos 6.5,oplog = 2GB,mongodb 版本。 2.4.10 PS> 对不起语言

最佳答案

有可能主数据库高度碎片化,导致它比辅助数据库大很多。 http://docs.mongodb.org/manual/reference/command/compact/

请参阅此关于类似 EC2 相关问题的答案:https://stackoverflow.com/a/23922416/68567

关于mongodb - mongodb slave 上的数据库与 master 不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345582/

相关文章:

java - Postgresql Replication 解决方案及其性能

postgresql - PostgreSQL 11 中的逻辑复制和声明性分区

javascript - 对象的 Mongoose 部分更新

node.js - 连接到 Cosmos DB 模拟器

c# - 使用 `in` 运算符从 id 列表中查找所有 MongoDB 文档

mongodb - 聚合查询以获取不包含空白 (""的数据或空值无法正常工作

linux - 从本地工作站到远程服务器的代码库复制

mongodb - 如何不在 MongoDB 的 reduce() 函数中保存数据?

node.js - MongoDB 不报告关闭连接

聚合查询中的 Mongodb 限制数组