mongodb复制集同步失败
自从我在mongodb中添加了一个新数据库后,它就停止同步replicaSet次要实例,即数据库名称在运行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
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})