成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Mongodb副本集添加節點,你學會了嗎?

數據庫 MongoDB
Mongodb副本集架構運行一段時間后如果業務發展需要新增新的成員,或者遷移集群,則可以參考本文處理。

1、準備工作

有一套mongodb 副本集的集群,部署方式參考 mongodb 4.0副本集搭建。

準備一個新節點,使用和原副本集版本一致的mongodb。

拷貝原副本集中的配置文件、keyfile文件,并注意修改keyfile文件的權限(600)。

節點

角色

192.168.56.199:27017

PRIMARY

192.168.56.198:27018

SECONDARY

192.168.56.199:27018

ARBITER

準備加入的新節點: 192.168.56.197:27017。

2、添加節點

(1)啟動新節點

例如,原節點的版本是4.2.8,新節點版本一致,路徑一致然后啟動新節點。

/usr/local/mongodb/bin/mongod -f /data/mongodb/27017/etc/mongodb.conf

(2)主庫上查看當前節點及配置信息

使用rs.config()查看配置信息。

test12:PRIMARY> rs.config()
{
"_id" : "test12",
"version" : 1,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "192.168.56.198:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {


},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "192.168.56.199:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {


},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "192.168.56.199:27018",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {


},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {


},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("61b86af0a21015e69623e18d")
}
}

rs.status() 查看狀態信息。

test12:PRIMARY> rs.status()
{
"set" : "test12",
"date" : ISODate("2021-12-14T10:07:46.561Z"),
"myState" : 1,
"term" : NumberLong(1),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
"majorityVoteCount" : 2,
"writeMajorityCount" : 2,
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"lastCommittedWallTime" : ISODate("2021-12-14T10:07:42.560Z"),
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"readConcernMajorityWallTime" : ISODate("2021-12-14T10:07:42.560Z"),
"appliedOpTime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"lastAppliedWallTime" : ISODate("2021-12-14T10:07:42.560Z"),
"lastDurableWallTime" : ISODate("2021-12-14T10:07:42.560Z")
},
"lastStableRecoveryTimestamp" : Timestamp(1639476442, 1),
"lastStableCheckpointTimestamp" : Timestamp(1639476442, 1),
"electionCandidateMetrics" : {
"lastElectionReason" : "electionTimeout",
"lastElectionDate" : ISODate("2021-12-14T09:59:22.407Z"),
"electionTerm" : NumberLong(1),
"lastCommittedOpTimeAtElection" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"lastSeenOpTimeAtElection" : {
"ts" : Timestamp(1639475952, 1),
"t" : NumberLong(-1)
},
"numVotesNeeded" : 2,
"priorityAtElection" : 1,
"electionTimeoutMillis" : NumberLong(10000),
"numCatchUpOps" : NumberLong(0),
"newTermStartDate" : ISODate("2021-12-14T09:59:22.431Z"),
"wMajorityWriteAvailabilityDate" : ISODate("2021-12-14T09:59:23.493Z")
},
"members" : [
{
"_id" : 0,
"name" : "192.168.56.198:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 514,
"optime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2021-12-14T10:07:42Z"),
"optimeDurableDate" : ISODate("2021-12-14T10:07:42Z"),
"lastHeartbeat" : ISODate("2021-12-14T10:07:45.153Z"),
"lastHeartbeatRecv" : ISODate("2021-12-14T10:07:46.542Z"),
"pingMs" : NumberLong(1),
"lastHeartbeatMessage" : "",
"syncingTo" : "192.168.56.199:27017",
"syncSourceHost" : "192.168.56.199:27017",
"syncSourceId" : 1,
"infoMessage" : "",
"configVersion" : 1
},
{
"_id" : 1,
"name" : "192.168.56.199:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1001,
"optime" : {
"ts" : Timestamp(1639476462, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2021-12-14T10:07:42Z"),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"electionTime" : Timestamp(1639475962, 1),
"electionDate" : ISODate("2021-12-14T09:59:22Z"),
"configVersion" : 1,
"self" : true,
"lastHeartbeatMessage" : ""
},
{
"_id" : 2,
"name" : "192.168.56.199:27018",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 514,
"lastHeartbeat" : ISODate("2021-12-14T10:07:44.896Z"),
"lastHeartbeatRecv" : ISODate("2021-12-14T10:07:44.896Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"configVersion" : 1
}
],
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1639476462, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1639476462, 1)
}

(3)將新節點添加至集群

在主庫上執行rs.add()將新節點添加進集群中.

生產環境添加節點時,建議將priority及votes設為0,即不會選為主(priority默認1),也沒有投票特性(votes默認1,有投票權)。

test12:PRIMARY> rs.add( { host: "192.168.56.197:27017", priority: 0, votes: 0 } )
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1639476997, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1639476997, 1)
}

另外,生產環境是從主庫拉取全量數據,如果數據量較大,則需要觀察主庫的壓力及對線上業務的影響。

同步數據的過程中,新節點的狀態stateStr 為STARTUP2,待同步完成后會變為SECONDARY。

(4)重置新節點的屬性

此時再用rs.config()查看新節點狀態,priority及votes是之前設的0,可以使用 rs.recofig()命令進行調整

test12:PRIMARY> rs.config()
{
"_id" : "test12",
"version" : 2,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "192.168.56.198:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "192.168.56.199:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "192.168.56.199:27018",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 3,
"host" : "192.168.56.197:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 0
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {

},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("61b86af0a21015e69623e18d")
}
}

從上面可以看到新節點的id為3 ,則可以通過如下命令調整對應的屬性。

var cfg = rs.conf()
cfg.members[3].priority = 1
cfg.members[3].votes = 1
rs.reconfig(cfg)

調整后再查看,屬性已調整。

test12:PRIMARY> rs.config()
{
"_id" : "test12",
"version" : 3,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "192.168.56.198:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "192.168.56.199:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "192.168.56.199:27018",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 3,
"host" : "192.168.56.197:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {

},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {

},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("61b86af0a21015e69623e18d")
}
}

至此,新節點便加入了副本集中。

3、注意點總結

  • 一個副本集,最多可以擁有50個secondary,最多可以有7個投票成員,在副本集里面添加一個新成員,如果之前副本集已經有了7個成員,那么可以設置成非投票成員,或者你從移除之前一個投票成員出來。
  • 新節點的版本、配置建議與原集群一致。
  • 注意添加新節點前確定網絡互通。
  • 如果集群數據量較大,則選擇業務低峰期添加節點,并觀察壓力情況。
  • 新節點加入時建議將priority及votes設為0。
責任編輯:姜華 來源: 今日頭條
相關推薦

2022-07-26 08:03:27

Kubernetes節點磁盤

2023-10-23 19:35:33

數據節點MongoDB

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-02 12:05:26

Java并發編程

2023-10-10 11:04:11

Rust難點內存

2024-05-06 00:00:00

InnoDBView隔離

2024-07-31 08:39:45

Git命令暫存區

2023-01-30 09:01:54

圖表指南圖形化

2022-07-08 09:27:48

CSSIFC模型

2023-12-12 08:02:10

2024-08-06 09:47:57

2024-03-06 08:28:16

設計模式Java

2022-06-16 07:50:35

數據結構鏈表

2022-12-06 07:53:33

MySQL索引B+樹

2023-01-31 08:02:18

2023-10-06 14:49:21

SentinelHystrixtimeout
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品三级在线观看 | 国产在线精品一区二区三区 | 亚洲免费人成在线视频观看 | 中文成人无字幕乱码精品 | 草久视频 | 伊人免费在线观看高清 | 成人免费淫片aa视频免费 | 日韩综合网 | 亚洲一区二区三区在线视频 | 在线亚洲一区 | 91人人看| 欧美成ee人免费视频 | 午夜网站视频 | 日韩一区二区在线免费观看 | 天堂精品| 国产丝袜一区二区三区免费视频 | 国产免费福利在线 | 亚洲国产精品人人爽夜夜爽 | 久久精品亚洲欧美日韩久久 | 麻豆av在线免费观看 | 久久久久一区二区 | 精品视频一区二区三区四区 | 国产精品电影网 | 亚洲视频二区 | 在线播放中文字幕 | 亚洲欧美第一视频 | 国产一区二区在线免费观看 | 91精品国产91久久久久福利 | 日韩国产精品一区二区三区 | 国产九九av | 成人精品福利 | 在线中文字幕av | 在线观看黄色大片 | 日本精品一区二区 | 久久亚洲一区二区三区四区 | 亚洲国产精品va在线看黑人 | 自拍 亚洲 欧美 老师 丝袜 | av天空| 成人在线中文字幕 | 秋霞电影一区二区三区 | 男女免费视频网站 |