我如何从主节点切换到辅助节点

How I can switch to secondary node from primary

我正在使用具有 3 个节点的副本集。主节点名称为 n1,端口为 27018,辅助节点 n2 端口为 27019,n3 端口为 27020。

我想从主节点切换到任何辅助节点。我试过 mongo -host n2 -port 27019 但对我不起作用 returns: “未捕获的异常:语法错误:意外标记:标识符: @(shell):1:12"

还有别的办法吗?我查看了文档,但什么也没找到

谢谢

  • 在命令终端你可以试试。

mongo "mongodb://host1:27017,host2:27017,host3:27017/myDB?replicaSet=myRS"

  • 在shell中,您可以先打开一个mongo会话而不连接到mongo副本集

mongo --nodb

  • 在 mongo shell 中,您可以连接到副本集。

conn = new Mongo("myRS/host1:27017,host2:27017,host3:27017")

db = conn.getDB("myDB")

请 运行 来自 CLI 的相同命令,而不是 Mongo Shell。还可以考虑在指定全名选项时使用双破折号,如上所示:

mongo --host n2 --port 27019

这样您就可以在read-only模式下访问数据。为了导航数据库,您首先需要 运行 以下命令:

rs.secondaryOk()

相反,如果您需要将主节点切换到“n2”节点,则需要在主节点中运行执行以下查询:

cfg = rs.config()
cfg.members[1].priority = 10 \ "set a value higher than the primary node"
rs.reconfig(cfg)
rs.stepDown()

通过这种方式,您将设置选举优先级,运行执行降级命令将强制 n2 节点成为主要节点