重新启动复制集MongoDB

重新启动复制集MongoDB,mongodb,windows-10,Mongodb,Windows 10,我刚刚在Mongo db中创建了副本集,我很好奇什么时候关闭cmd窗口,或者什么时候键入ctrl+c,所以如果我想再次运行副本集,我该怎么做?需要采取哪些步骤?希望我不必重新开始创造rs 多谢各位 这是我得到的 MongoDB Enterprise > rs.status() { "set" : "rs0", "date" : ISODate("2017-11-26T03:14:48.098Z"), "myState" : 1, "term" : Numbe

我刚刚在Mongo db中创建了副本集,我很好奇什么时候关闭cmd窗口,或者什么时候键入ctrl+c,所以如果我想再次运行副本集,我该怎么做?需要采取哪些步骤?希望我不必重新开始创造rs

多谢各位

这是我得到的

MongoDB Enterprise > rs.status()
{
    "set" : "rs0",
    "date" : ISODate("2017-11-26T03:14:48.098Z"),
    "myState" : 1,
    "term" : NumberLong(2),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
            "lastCommittedOpTime" : {
                    "ts" : Timestamp(1511666085, 1),
                    "t" : NumberLong(2)
            },
            "appliedOpTime" : {
                    "ts" : Timestamp(1511666085, 1),
                    "t" : NumberLong(2)
            },
            "durableOpTime" : {
                    "ts" : Timestamp(1511666085, 1),
                    "t" : NumberLong(2)
            }
    },
    "members" : [
            {
                    "_id" : 0,
                    "name" : "mario:27017",
                    "health" : 1,
                    "state" : 1,
                    "stateStr" : "PRIMARY",
                    "uptime" : 818,
                    "optime" : {
                            "ts" : Timestamp(1511666085, 1),
                            "t" : NumberLong(2)
                    },
                    "optimeDate" : ISODate("2017-11-26T03:14:45Z"),
                    "electionTime" : Timestamp(1511665273, 1),
                    "electionDate" : ISODate("2017-11-26T03:01:13Z"),
                    "configVersion" : 7,
                    "self" : true
            },
            {
                    "_id" : 1,
                    "name" : "mario:27018",
                    "health" : 1,
                    "state" : 2,
                    "stateStr" : "SECONDARY",
                    "uptime" : 804,
                    "optime" : {
                            "ts" : Timestamp(1511666085, 1),
                            "t" : NumberLong(2)
                    },
                    "optimeDurable" : {
                            "ts" : Timestamp(1511666085, 1),
                            "t" : NumberLong(2)
                    },
                    "optimeDate" : ISODate("2017-11-26T03:14:45Z"),
                    "optimeDurableDate" : ISODate("2017-11-26T03:14:45Z"),
                    "lastHeartbeat" : ISODate("2017-11-26T03:14:46.565Z"),
                    "lastHeartbeatRecv" : ISODate("2017-11-26T03:14:46.575Z"),
                    "pingMs" : NumberLong(0),
                    "syncingTo" : "mario:27017",
                    "configVersion" : 7
            },
            {
                    "_id" : 2,
                    "name" : "mario:27019",
                    "health" : 1,
                    "state" : 7,
                    "stateStr" : "ARBITER",
                    "uptime" : 39,
                    "lastHeartbeat" : ISODate("2017-11-26T03:14:46.570Z"),
                    "lastHeartbeatRecv" : ISODate("2017-11-26T03:14:47.762Z"),
                    "pingMs" : NumberLong(0),
                    "configVersion" : 7
            }
    ],
    "ok" : 1

}

如果关闭所有服务器,复制配置仍将存在,因此如果再次重新启动服务器,它们将从上次状态继续。 如果您想要与以前的设置相同的设置,则无需重新配置所有内容

您只需使用-replSet参数启动mongo服务器,方法与最初启动时相同

mongod-replSet rs0


以下是重新启动MongoDB副本集的步骤。首先从辅助节点开始

用于辅助节点 步骤1:在辅助服务器上登录mongo shell

$mongo-u user123-p-authenticationDatabase admin(如果您的数据库已启用身份验证)

步骤2:使用以下命令停止辅助服务器:

>使用管理员 >数据库关闭服务器 步骤3转到辅助服务器上的Linux shell并键入以下命令:

>sudo服务mongod站

启动MongoDB复制

步骤4转到辅助服务器上的Linux shell并键入以下命令:

>sudo服务mongod启动

步骤5检查状态

>sudo systemctl状态mongod.service

对于主节点 步骤1登录到主服务器,如步骤1所示

步骤2:降压主节点

>rs.降压120

将mongo shell连接到主节点,并使用rs.steppdown退出主节点,并允许其中一个次节点被选为新的主节点。指定120秒的等待时间,以防止该成员再次当选为主要成员


执行步骤2、步骤3、步骤4和步骤5。

我认为这是正确的答案。我刚刚注意到我还有一个问题,就是没有在/data/db文件夹中设置db。。复制现在是否自动完成,当我写入主数据库时,它将自动复制到辅助数据库?是的,一旦启动服务器,复制将自动将文档复制到所有辅助服务器。