在Ubuntu上配置MongoDB复制集涉及几个步骤。以下是一个基本的指南,帮助你设置一个MongoDB复制集。
在每个节点上启动MongoDB实例。你可以使用以下命令:
sudo service mongod start
编辑每个节点的MongoDB配置文件(通常是/etc/mongod.conf),添加或修改以下内容:
主节点(Primary):
replication:
replSetName: "rs0"
net:
port: 27017
从节点(Secondary):
replication:
replSetName: "rs0"
net:
port: 27018 # 可以不同,但必须唯一
连接到主节点并初始化复制集。使用mongo shell连接到主节点:
mongo --port 27017
在mongo shell中,运行以下命令来初始化复制集:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "primary_ip:27017" },
{ _id: 1, host: "secondary_ip:27018" },
{ _id: 2, host: "tertiary_ip:27019" } // 可选,添加更多节点
]
})
在mongo shell中,运行以下命令来验证复制集的状态:
rs.status()
你应该看到所有节点的状态都是SECONDARY或PRIMARY。
你可以配置节点的优先级,以控制哪个节点成为主节点。例如,设置主节点的优先级为2,从节点的优先级为1:
cfg = rs.conf()
cfg.members[0].priority = 2
cfg.members[1].priority = 1
cfg.members[2].priority = 1
rs.reconfig(cfg)
如果你需要一个隐藏节点,可以这样配置:
cfg = rs.conf()
cfg.members[2].hidden = true
cfg.members[2].priority = 0 // 隐藏节点不能成为主节点
rs.reconfig(cfg)
通过以上步骤,你应该能够在Ubuntu上成功配置一个MongoDB复制集。