阅读 50

MongoDB 4.2副本集添加/删除副本(一主一副一仲裁)

一、修改/etc/hosts

1
2
3
4
172.16.254.131 mongo1
172.16.254.132 mongo2
172.16.254.133 mongo3
172.16.254.134 mongo4

二、添加副本

172.16.254.131

1
2
3
4
5
6
7
8
9
10
11
12
handong1:PRIMARY> rs.add("mongo4:27017")
{
    "ok" : 1,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1616077141, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" : Timestamp(1616077141, 1)
}

查看副本集信息:

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
handong1:PRIMARY> rs.status()
{
    "set" "handong1",
    "date" : ISODate("2021-03-18T14:19:08.014Z"),
    "myState" : 1,
    "term" : NumberLong(6),
    "syncingTo" "",
    "syncSourceHost" "",
    "syncSourceId" : -1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "majorityVoteCount" : 3,
    "writeMajorityCount" : 3,
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1616077141, 1),
            "t" : NumberLong(6)
        },
        "lastCommittedWallTime" : ISODate("2021-03-18T14:19:01.368Z"),
        "readConcernMajorityOpTime" : {
            "ts" : Timestamp(1616077141, 1),
            "t" : NumberLong(6)
        },
        "readConcernMajorityWallTime" : ISODate("2021-03-18T14:19:01.368Z"),
        "appliedOpTime" : {
            "ts" : Timestamp(1616077141, 1),
            "t" : NumberLong(6)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1616077141, 1),
            "t" : NumberLong(6)
        },
        "lastAppliedWallTime" : ISODate("2021-03-18T14:19:01.368Z"),
        "lastDurableWallTime" : ISODate("2021-03-18T14:19:01.368Z")
    },
    "lastStableRecoveryTimestamp" : Timestamp(1616077095, 1),
    "lastStableCheckpointTimestamp" : Timestamp(1616077095, 1),
    "electionCandidateMetrics" : {
        "lastElectionReason" "priorityTakeover",
        "lastElectionDate" : ISODate("2021-03-18T13:34:33.453Z"),
        "electionTerm" : NumberLong(6),
        "lastCommittedOpTimeAtElection" : {
            "ts" : Timestamp(1616074466, 1),
            "t" : NumberLong(5)
        },
        "lastSeenOpTimeAtElection" : {
            "ts" : Timestamp(1616074466, 1),
            "t" : NumberLong(5)
        },
        "numVotesNeeded" : 2,
        "priorityAtElection" : 2,
        "electionTimeoutMillis" : NumberLong(10000),
        "priorPrimaryMemberId" : 1,
        "numCatchUpOps" : NumberLong(0),
        "newTermStartDate" : ISODate("2021-03-18T13:34:33.518Z"),
        "wMajorityWriteAvailabilityDate" : ISODate("2021-03-18T13:34:34.476Z")
    },
    "members" : [
        {
            "_id" : 0,
            "name" "172.16.254.131:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" "PRIMARY",
            "uptime" : 2690,
            "optime" : {
                "ts" : Timestamp(1616077141, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2021-03-18T14:19:01Z"),
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "electionTime" : Timestamp(1616074473, 1),
            "electionDate" : ISODate("2021-03-18T13:34:33Z"),
            "configVersion" : 7,
            "self" true,
            "lastHeartbeatMessage" ""
        },
        {
            "_id" : 1,
            "name" "mongo2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" "SECONDARY",
            "uptime" : 2686,
            "optime" : {
                "ts" : Timestamp(1616077141, 1),
                "t" : NumberLong(6)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1616077141, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2021-03-18T14:19:01Z"),
            "optimeDurableDate" : ISODate("2021-03-18T14:19:01Z"),
            "lastHeartbeat" : ISODate("2021-03-18T14:19:07.382Z"),
            "lastHeartbeatRecv" : ISODate("2021-03-18T14:19:07.541Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" "",
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "configVersion" : 7
        },
        {
            "_id" : 2,
            "name" "mongo3:27017",
            "health" : 1,
            "state" : 7,
            "stateStr" "ARBITER",
            "uptime" : 2686,
            "lastHeartbeat" : ISODate("2021-03-18T14:19:07.382Z"),
            "lastHeartbeatRecv" : ISODate("2021-03-18T14:19:07.389Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" "",
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "configVersion" : 7
        },
        {
            "_id" : 3,
            "name" "mongo4:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" "SECONDARY",
            "uptime" : 4,
            "optime" : {
                "ts" : Timestamp(1616077141, 1),
                "t" : NumberLong(6)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1616077141, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2021-03-18T14:19:01Z"),
            "optimeDurableDate" : ISODate("2021-03-18T14:19:01Z"),
            "lastHeartbeat" : ISODate("2021-03-18T14:19:07.382Z"),
            "lastHeartbeatRecv" : ISODate("2021-03-18T14:19:07.680Z"),
            "pingMs" : NumberLong(1),
            "lastHeartbeatMessage" "",
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "configVersion" : 7
        }
    ],
    "ok" : 1,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1616077141, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" : Timestamp(1616077141, 1)
}

可以看到mongo4已经变成了primary的副本。

三、测试副本集

primary插入测试数据:

1
2
3
handong1:PRIMARY> use db3
switched to db db3
handong1:PRIMARY> db.db3.inesrt({"age":"23"})
1
2
3
4
5
6
7
handong1:PRIMARY> db.db3.find()
"_id" : ObjectId("6051d08ac74d627f4b561349"), "name" "mongodb" }
"_id" : ObjectId("6053225bdebdeda2639f026e"), "name" "mongodb4.2" }
"_id" : ObjectId("60533d88504b2400d4ae3091"), "name" "jianghe" }
"_id" : ObjectId("60534e662b429cdfe156324a"), "name" "dandan" }
"_id" : ObjectId("605359a1ab6994b3520da444"), "name" "doudou" }
"_id" : ObjectId("605368ffab6994b3520da445"), "age" "23" }

在副本查看数据:

172.16.254.132

1
2
3
4
5
6
7
8
9
handong1:SECONDARY> use db3
switched to db db3
handong1:SECONDARY> db.db3.find()
"_id" : ObjectId("6051d08ac74d627f4b561349"), "name" "mongodb" }
"_id" : ObjectId("6053225bdebdeda2639f026e"), "name" "mongodb4.2" }
"_id" : ObjectId("60533d88504b2400d4ae3091"), "name" "jianghe" }
"_id" : ObjectId("60534e662b429cdfe156324a"), "name" "dandan" }
"_id" : ObjectId("605359a1ab6994b3520da444"), "name" "doudou" }
"_id" : ObjectId("605368ffab6994b3520da445"), "age" "23" }

172.16.254.134

1
2
3
4
5
6
7
8
9
handong1:SECONDARY> use db3
switched to db db3
handong1:SECONDARY> db.db3.find()
"_id" : ObjectId("6051d08ac74d627f4b561349"), "name" "mongodb" }
"_id" : ObjectId("6053225bdebdeda2639f026e"), "name" "mongodb4.2" }
"_id" : ObjectId("60533d88504b2400d4ae3091"), "name" "jianghe" }
"_id" : ObjectId("605359a1ab6994b3520da444"), "name" "doudou" }
"_id" : ObjectId("60534e662b429cdfe156324a"), "name" "dandan" }
"_id" : ObjectId("605368ffab6994b3520da445"), "age" "23" }

可以看到两个副本节点数据都已经同步。

四、删除副本

primary

1
2
3
4
5
6
7
8
9
10
11
12
handong1:PRIMARY> rs.remove("mongo4:27017")
{
    "ok" : 1,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1616079484, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" : Timestamp(1616079484, 1)
}

查看副本集信息

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
handong1:PRIMARY> rs.status()
{
    "set" "handong1",
    "date" : ISODate("2021-03-18T14:58:45.070Z"),
    "myState" : 1,
    "term" : NumberLong(6),
    "syncingTo" "",
    "syncSourceHost" "",
    "syncSourceId" : -1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "majorityVoteCount" : 2,
    "writeMajorityCount" : 2,
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1616079517, 1),
            "t" : NumberLong(6)
        },
        "lastCommittedWallTime" : ISODate("2021-03-18T14:58:37.438Z"),
        "readConcernMajorityOpTime" : {
            "ts" : Timestamp(1616079517, 1),
            "t" : NumberLong(6)
        },
        "readConcernMajorityWallTime" : ISODate("2021-03-18T14:58:37.438Z"),
        "appliedOpTime" : {
            "ts" : Timestamp(1616079517, 1),
            "t" : NumberLong(6)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1616079517, 1),
            "t" : NumberLong(6)
        },
        "lastAppliedWallTime" : ISODate("2021-03-18T14:58:37.438Z"),
        "lastDurableWallTime" : ISODate("2021-03-18T14:58:37.438Z")
    },
    "lastStableRecoveryTimestamp" : Timestamp(1616079507, 1),
    "lastStableCheckpointTimestamp" : Timestamp(1616079507, 1),
    "electionCandidateMetrics" : {
        "lastElectionReason" "priorityTakeover",
        "lastElectionDate" : ISODate("2021-03-18T13:34:33.453Z"),
        "electionTerm" : NumberLong(6),
        "lastCommittedOpTimeAtElection" : {
            "ts" : Timestamp(1616074466, 1),
            "t" : NumberLong(5)
        },
        "lastSeenOpTimeAtElection" : {
            "ts" : Timestamp(1616074466, 1),
            "t" : NumberLong(5)
        },
        "numVotesNeeded" : 2,
        "priorityAtElection" : 2,
        "electionTimeoutMillis" : NumberLong(10000),
        "priorPrimaryMemberId" : 1,
        "numCatchUpOps" : NumberLong(0),
        "newTermStartDate" : ISODate("2021-03-18T13:34:33.518Z"),
        "wMajorityWriteAvailabilityDate" : ISODate("2021-03-18T13:34:34.476Z")
    },
    "members" : [
        {
            "_id" : 0,
            "name" "172.16.254.131:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" "PRIMARY",
            "uptime" : 5067,
            "optime" : {
                "ts" : Timestamp(1616079517, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2021-03-18T14:58:37Z"),
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "electionTime" : Timestamp(1616074473, 1),
            "electionDate" : ISODate("2021-03-18T13:34:33Z"),
            "configVersion" : 8,
            "self" true,
            "lastHeartbeatMessage" ""
        },
        {
            "_id" : 1,
            "name" "mongo2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" "SECONDARY",
            "uptime" : 5063,
            "optime" : {
                "ts" : Timestamp(1616079517, 1),
                "t" : NumberLong(6)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1616079517, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2021-03-18T14:58:37Z"),
            "optimeDurableDate" : ISODate("2021-03-18T14:58:37Z"),
            "lastHeartbeat" : ISODate("2021-03-18T14:58:44.264Z"),
            "lastHeartbeatRecv" : ISODate("2021-03-18T14:58:44.595Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" "",
            "syncingTo" "172.16.254.131:27017",
            "syncSourceHost" "172.16.254.131:27017",
            "syncSourceId" : 0,
            "infoMessage" "",
            "configVersion" : 8
        },
        {
            "_id" : 2,
            "name" "mongo3:27017",
            "health" : 1,
            "state" : 7,
            "stateStr" "ARBITER",
            "uptime" : 5063,
            "lastHeartbeat" : ISODate("2021-03-18T14:58:44.266Z"),
            "lastHeartbeatRecv" : ISODate("2021-03-18T14:58:44.263Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" "",
            "syncingTo" "",
            "syncSourceHost" "",
            "syncSourceId" : -1,
            "infoMessage" "",
            "configVersion" : 8
        }
    ],
    "ok" : 1,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1616079517, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    },
    "operationTime" : Timestamp(1616079517, 1)
}

可以看到刚才加入的副本成员mongo4已经删除。

 

原文:https://www.cnblogs.com/chenguopa/p/15228713.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐