代码改变世界

设置隐藏节点和不可投票节点

  abce  阅读(139)  评论(0编辑  收藏  举报

配置隐藏节点

复制集中隐藏节点不能变成主,但是可以参加选举。

隐藏节点,最常用的场景是延迟复制。如果不想某个节点变成主节点,将priority设置成0即可

如果设置了settings.chainingAllowed,支持辅助节点从另外的复制节点做数据同步,mongodb默认是优先讯在非隐藏节点来做数据同步。如果想让辅助节点从隐藏节点同步数据,就要设置replSetSyncFrom做相应的修改。

设置隐藏节点,要将members[n].priority设置为0;members[n].hidden设置成true:

1
2
3
4
5
6
{
  "_id" : <num>
  "host" : <hostname:port>,
  "priority" : 0,
  "hidden" : true
}

配置过程:

1
2
3
4
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
rs.reconfig(cfg)

members的数组下表是从0开始,不要与members[n]._id混淆了。

如果是新加成员

1
rs.add( { host: "192.168.137.11:27017", priority: 0, hidden: true } )

 

配置非不可投票节点

设置不可投票节点,要将members[n].priority设置为0;members[n].votes设置为0

1
2
3
4
cfg = rs.conf();
cfg.members[n].votes = 0;
cfg.members[n].priority = 0;
rs.reconfig(cfg);

如果是新加成员

1
rs.add( { host: "192.168.137.11:27017", priority: 0, votes: 0 } )

其它:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
> cfg=rs.conf()
{
        "_id" : "lq_mongo_rs",
        "version" : 1,
        "term" : 9,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "192.168.137.54:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
 
                        },
                        "secondaryDelaySecs" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 1,
                        "host" : "192.168.137.55:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
 
                        },
                        "secondaryDelaySecs" : NumberLong(0),
                        "votes" : 1
                },
                {
                        "_id" : 2,
                        "host" : "192.168.137.56:27017",
                        "arbiterOnly" : false,
                        "buildIndexes" : true,
                        "hidden" : false,
                        "priority" : 1,
                        "tags" : {
 
                        },
                        "secondaryDelaySecs" : NumberLong(0),
                        "votes" : 1
                }
        ],
        "protocolVersion" : NumberLong(1),
        "writeConcernMajorityJournalDefault" : true,
        "settings" : {
                "chainingAllowed" : true,
                "heartbeatIntervalMillis" : 2000,
                "heartbeatTimeoutSecs" : 10,
                "electionTimeoutMillis" : 10000,
                "catchUpTimeoutMillis" : -1,
                "catchUpTakeoverDelayMillis" : 30000,
                "getLastErrorModes" : {
 
                },
                "getLastErrorDefaults" : {
                        "w" : 1,
                        "wtimeout" : 0
                },
                "replicaSetId" : ObjectId("63103236dd0aac4d38f820c0")
        }
}
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-04-24 Warning: the "mongo" shell has been superseded by "mongosh"
2022-04-24 MongoDB not authorized on admin to execute command { replSetGetStatus: 1.0 }
2018-04-24 oradim新建服务后,登录数据库报ORA-12560错误
2017-04-24 dbms_monitor开启/关闭会话跟踪
点击右上角即可分享
微信分享提示