我有两台 IP 地址为 10.1.1.52 和 10.1.1.11 的 PC。我想配置 mongo 复制(不分片),一个主节点和一个辅助节点在 10.1.1.52 上运行,一个辅助节点在 10.1.1.11 上运行。
我已按照以下步骤操作:
使用以下命令在 10.1.1.11 PC 上运行三个配置服务器:
mongod --configsvr --port 26050 --logpath /data/db/log.cfg0 --logappend --dbpath /data/db/cfg0 –fork
mongod --configsvr --port 26051 --logpath /data/db/log.cfg1 --logappend --dbpath /data/db/cfg1 –fork
mongod --configsvr --port 26052 --logpath /data/db/log.cfg2 --logappend --dbpath /data/db/cfg2 –fork
之后,我创建了一个副本集 ('a') 并使用以下命令向其中添加了三个节点(第一个在 10.1.1.11 上,另外两个在 10.1.1.52 上):
mongod --replSet a --dbpath /data/a/a0 --logpath /data/a/log.a0 --port 27000 --fork --logappend --smallfiles --oplogSize 50
mongod --replSet a --dbpath /data/a/a1 --logpath /data/a/log.a1 --port 27001 --fork --logappend --smallfiles --oplogSize 50
mongod --replSet a --dbpath /data/a/a2 --logpath /data/a/log.a2 --port 27002 --fork --logappend --smallfiles --oplogSize 50
我使用以下命令在 10.1.1.11 上设置查询路由器:
mongos --configdb gaugedata-elastic:26050,gaugedata-elastic:26051,gaugedata-elastic:26052 --fork --logappend --logpath /data/db/log.mongos --port 26060
之后,我输入以下命令从 mongos 连接并启动副本集:
mongo --port 27000
rs.initiate()
面临的问题是添加节点后:
rs.add("10.1.1.52:27001")
rs.add("10.1.1.52:27002")
在远程 PC 上运行的节点(即 10.1.1.52)不可访问且不健康。但是,在我的 PC 上运行的节点(即 10.1.1.11)会自动声明为 SECONDARY。