0

我有两台 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。

4

2 回答 2

1

有必要检查规则接受端口是否已激活。否则,sudo ufw allow <start port number>:<end port number>ubuntu OS上使用该命令来启用起始端口号结束端口号之间的所有端口。

于 2021-04-28T10:20:25.137 回答
0

好的..这里几乎没有错误。如果您不需要分片,则不需要 mongoS 或配置服务器......纯副本集(在这种情况下)只是这两台机器,它们都只运行 mongod 进程......

因此,启动 mongod 进程(在两台不同的机器上)

mongod --replSet=a --dbpath=/data/ --logpath=/data/mongod.log --port=27017 --fork --logappend --smallfiles --oplogSize=50

然后使用 mongo 连接到其中一个节点:

蒙戈 10.1.1.11

然后你使用一个命令来初始化副本集:

rs.initiate({_id:“a”,版本:1,成员:[{_id:0,主机:“10.1.1.11:27017”,优先级:2},{_id:1,主机:“10.1.1.52: 27017",优先级:1 } ] })

如果你真的想在一台物理机上拥有两个不同的 RS 节点,当然可以多加一个不同的端口...

这是一台机器的工作示例:

#> mkdir /data 
#> mkdir /data2

#> mongod --replSet=a --dbpath=/data --logpath=/data/mongod.log --port=27001 --fork --logappend --smallfiles --oplogSize=50

#> mongod --replSet=a --dbpath=/data2 --logpath=/data2/mongod.log --port=27001 --fork --logappend --smallfiles --oplogSize=50

#> mongo --port=27000

MongoDB Enterprise > rs.initiate({_id:"a", version:1, members:[{_id:0,host:"127.0.0.1:27000",priority:2},{_id:1,host:"127.0.0.1:27001",priority:1}]})
{ "ok" : 1 }
MongoDB Enterprise a:OTHER>
MongoDB Enterprise a:PRIMARY> rs.status()
{
        "set" : "a",
        "date" : ISODate("2016-12-04T08:47:33.254Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "heartbeatIntervalMillis" : NumberLong(2000),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "127.0.0.1:27000",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 451,
                        "optime" : {
                                "ts" : Timestamp(1480841055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-12-04T08:44:15Z"),
                        "electionTime" : Timestamp(1480841054, 1),
                        "electionDate" : ISODate("2016-12-04T08:44:14Z"),
                        "configVersion" : 1,
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "127.0.0.1:27001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 209,
                        "optime" : {
                                "ts" : Timestamp(1480841055, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2016-12-04T08:44:15Z"),
                        "lastHeartbeat" : ISODate("2016-12-04T08:47:32.831Z"),
                        "lastHeartbeatRecv" : ISODate("2016-12-04T08:47:33.128Z"),
                        "pingMs" : NumberLong(0),
                        "syncingTo" : "127.0.0.1:27000",
                        "configVersion" : 1
                }
        ],
        "ok" : 1
}
于 2016-11-19T06:56:56.213 回答