mongodb复制集同步失败

mongodb复制集同步失败,mongodb,replication,Mongodb,Replication,自从我在mongodb中添加了一个新数据库后,它就停止同步replicaSet次要实例,即数据库名称在运行show dbs时出现,但显示为(空) 日志文件中的辅助中存在重复错误,该错误也出现在中 "errmsg" : "syncTail: ... 以下是主 PRIMARY> rs.status() { "set" : "contoso_db_set", "date" : ISODate("2012-11-01T13:05:22Z"), "m

自从我在mongodb中添加了一个新数据库后,它就停止同步replicaSet次要实例,即数据库名称在运行
show dbs
时出现,但显示为
(空)

日志文件中的辅助中存在重复错误,该错误也出现在中

"errmsg" : "syncTail: ...
以下是

PRIMARY> rs.status()
{
        "set" : "contoso_db_set",
        "date" : ISODate("2012-11-01T13:05:22Z"),
        "myState" : 1,
        "syncingTo" : "dbuse1d.int.contoso.com:27017",
        "members" : [
                {
                        "_id" : 0,
                        "name" : "dbuse1a.int.contoso.com:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "optime" : {
                                "t" : 1351775119000,
                                "i" : 2
                        },
                        "optimeDate" : ISODate("2012-11-01T13:05:19Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "dbuse1d.int.contoso.com:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 4108139,
                        "optime" : {
                                "t" : 1351405977000,
                                "i" : 12
                        },
                        "optimeDate" : ISODate("2012-10-28T06:32:57Z"),
                        "lastHeartbeat" : ISODate("2012-11-01T13:05:21Z"),
                        "pingMs" : 1,
                        "errmsg" : "syncTail: 10068 invalid operator: $oid, syncing: { ts: Timestamp 1351576230000|1, h: -2878874165043062831, op: \"i\", ns: \"new_contoso_db.accounts\", o: { _id: { $oid: \"4f79a1d1d4941d3755000000\" }, delegation: [ \"nE/UhsnmZ1BCCB+tiiS8fjjNwkxbND5PwESsaXeuaJw=\""
                },
                {
                        "_id" : 2,
                        "name" : "dbuse1a.int.contoso.com:8083",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 10671267,
                        "optime" : {
                                "t" : 0,
                                "i" : 0
                        },
                        "optimeDate" : ISODate("1970-01-01T00:00:00Z"),
                        "lastHeartbeat" : ISODate("2012-11-01T13:05:21Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}
PRIMARY> 

我找到的解决方案是从辅助数据库中删除整个数据库

# rm -rf /data/db
# mkdir -p /data/db
然后重新启动mongo并设置复制集

更多信息请访问

如何处理RS102同步错误

如果您的某个成员已脱机,并且现在已远远落后于 迎头赶上,您将需要重新同步。有很多方法可以做到这一点 这 执行完全重新同步。如果停止失败的mongod,删除dbpath(包括子目录)中的所有数据,然后重新启动它,它将 自动重新同步自身。显然这样会更好/更安全 首先备份数据。如果磁盘空间足够,只需移动它即可 在适当的情况下,移动到计算机上的备份位置。重新同步可能需要 如果数据库太大或网络速度太慢,甚至 理想化的1 TB数据传输需要3小时 通过千兆以太网*


PRIMARY>version()version:2.0.3新的数据库是刚刚添加的数据库吗?您能在accounts集合上运行吗?2.0.3是旧版本-在2.0上branch 2.0.7是当前版本-两个集合之间修复了许多错误。@shelman数据有效运行
db.runCommand({validate:“collection”,full:true})