我有一个mongo 2节点集群正在运行,具有此副本集配置.
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.100:15000'}]
}
Run Code Online (Sandbox Code Playgroud)
我必须将这两个节点都移到新服务器上.我已经复制了从旧服务器到新服务器的所有内容,但由于第二个节点上的ip更改,我在重新配置副本配置时遇到了问题.
我试过这个.
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.200:15000'}]
}
rs.reconfig(config)
{
"startupStatus" : 1,
"errmsg" : "loading local.system.replset config (LOADINGCONFIG)",
"ok" : 0
}
Run Code Online (Sandbox Code Playgroud)
它显示上面的消息,但没有发生变化.
我也尝试更改副本集名称,但指向相同的数据目录.我收到以下错误:
rs.initiate()
{
"errmsg" : "local.oplog.rs is not empty on the initiating member. cannot initiate.",
"ok" : 0
}
Run Code Online (Sandbox Code Playgroud)
更改IP但在第二个节点上保留数据的正确步骤是什么,或者我是否需要重新创建/重新同步第二个节点?
Erh*_*n A 32
好吧,我遇到了同样的问题.
我不得不删除所有复制和oplog.
use local
db.dropDatabase()
Run Code Online (Sandbox Code Playgroud)
使用新的设置名称重新启动您的mongo
config = {_id: "repl1", members:[
{_id: 0, host: 'localhost:15000'},
{_id: 1, host: '192.168.2.100:15000'}]
}
rs.initiate(config)
Run Code Online (Sandbox Code Playgroud)
我希望这也适合你
Chr*_*n P 31
重新配置副本集时可以使用force选项:
rs.reconfig(config, {force: true})
Run Code Online (Sandbox Code Playgroud)
请注意,正如Adam在评论中已经建议的那样,您应该至少有3个节点:2个完整节点和1个仲裁器(最低支持配置)或3个完整节点(最低建议配置),以便可以选择主节点.
| 归档时间: |
|
| 查看次数: |
32091 次 |
| 最近记录: |