我有下一个情况。我在不同的服务器上有两个 mongodb 实例。例如
Mongodb instance on server "one" (host1:27017) with database: "test1"
Mongodb instance on server "two" (host2:27017) with database: "test2"
现在,我需要将“host1:27017”中的“test1”数据库与“host2:27017”中的“test2”同步。
“同步”是指下一个:
如果“test2”中不存在“test1”数据库中的某些集合,则应将该集合完全复制到“test1”数据库中。
如果集合中的某些记录在“test2”数据库中不存在,则必须添加否则更新。如果记录在“test1”数据库的A集合中不存在,但在“test2”数据库的A集合中存在,则必须从“test2”中删除记录。
顺便说一句,这里有问题。例如:“test1”数据库具有包含以下文档的集合“A”:
{
_id: "1",
name: "some name"
}
“test2”数据库具有包含以下文档的集合“A”:
{
_id: "1",
name: "some name"
}
{
_id: "2",
name: "some name2"
}
如果我执行 db.copyDatabase('test1', 'test2', "host2:27017") 我得到错误:
"errmsg" : "异常:E11000 重复键错误索引:test1.A.$ id dup key: { : \"1\" }"
与cloneDatabase
命令相同。我该如何解决?
一般来说,同步数据库的方法有哪些?我知道最简单的方法是将文件从一台服务器复制到另一台服务器,但也许有更好的方法。
请帮忙。我是mongo的新人。谢谢。