将辅助节点转换为仲裁者

在本页面

如果replica set中有一个secondary不再需要保留数据,而是需要保留在集合中以确保该集合可以选小学,则可以使用本教程中的任一过程将辅助副本转换为arbiter。这两个过程在操作上是等效的:

有关此过程,请参见将辅助转换为仲裁器并重新使用端口号

有关此过程,请参见将 Secondary 转换为在新端口号上运行的仲裁器

Note

对于以下 MongoDB 版本,具有仲裁器的副本集与pv0相比,pv1增加了w:1回滚的可能性:

  • MongoDB 3.4.1

  • MongoDB 3.4.0

  • MongoDB 3.2.11 或更早版本

See 副本集协议版本.

将辅助转换为仲裁器并重新使用端口号

rs.remove("<hostname><:port>")
rs.conf()
mv /data/db /data/db-old

Optional

您可以改为删除数据。

mkdir /data/db

Warning

绑定到非 localhost(例如可公开访问)的 IP 地址之前,请确保已保护群集免受未经授权的访问。有关安全建议的完整列表,请参见Security Checklist。至少考虑enabling authentication加强网络基础设施

mongod --port 27021 --dbpath /data/db --replSet rs  --bind_ip localhost,<ip address of the mongod host>
rs.addArb("<hostname><:port>")
rs.conf()

仲裁员应包括以下内容:

"arbiterOnly" : true

将辅助端口转换为在新端口号上运行的仲裁器

mkdir /data/db-temp

Warning

绑定到非 localhost(例如可公开访问)的 IP 地址之前,请确保已保护群集免受未经授权的访问。有关安全建议的完整列表,请参见Security Checklist。至少考虑enabling authentication加强网络基础设施

mongod --port 27021 --dbpath /data/db-temp --replSet rs --bind_ip localhost,<ip address of the mongod host>
rs.addArb("<hostname><:port>")
rs.conf()

仲裁员应包括以下内容:

"arbiterOnly" : true
rs.remove("<hostname><:port>")
rs.conf()
mv /data/db /data/db-old

Optional

您可以改为删除数据。

首页