mongodb3.6升級4.2
阿新 • • 發佈:2021-02-03
目錄
初始環境資訊
mongodb版本下載:
https://repo.mongodb.org/yum/redhat/7/mongodb-org/
1. 原始叢集資訊
節點 | 主機 | 版本 | 埠 | 副本集名稱 | 配置檔案 | 資料/日誌路徑 |
---|---|---|---|---|---|---|
primary | x.x.x.171 | 3.6.3 | 27017 | mongo0 | /mongo/mongodb36/mongodb.yaml | /mongo/public;/mongo/logs |
secondary | x.x.x.172 | 3.6.3 | 27017 | mongo0 | /mongo/mongodb36/mongodb.yaml | /mongo/public;/mongo/logs |
secondary | x.x.x.173 | 3.6.3 | 27017 | mongo0 | /mongo/mongodb36/mongodb.yaml | /mongo/public;/mongo/logs |
配置檔案:
processManagement:
fork: true
pidFilePath: /mongo/logs/mongod.pid
net:
bindIp: 127.0.0.1,xx.xx.xx.171
port: 27017
storage:
dbPath: /mongo/public
systemLog:
destination: file
path: "/mongo/logs/mongod.log"
logAppend: true
storage:
journal:
enabled: true
replication:
replSetName: mongo0
security:
keyFile: "/mongo/public/mongod.key"
2. 升級過程需要的版本資訊
mongodb-org-server-4.0.18-1.el7.x86_64.rpm
mongodb-org-shell-4.0.18-1.el7.x86_64.rpm
mongodb-org-shell-4.2.3-1.el7.x86_64.rpm
mongodb-org-server-4.2.3-1.el7.x86_64.rpm
mongodb3.6升級4.0
1. 確認primary節點
在配置mongodb叢集時,primary 171主機設定的叢集選舉權重是2,其他節點是1;所以在叢集節點都正常的情況下,171主機始終是primary
1. 進庫確認
進入mongodb,執行rs.status(),確認primary節點
2. mongodb shell確認
mongo x.x.x.171:27017/admin?replicaSet=mongo0 -uroot -proot123 --authenticationDatabase admin --eval 'printjson(db.isMaster())'
2. 安裝mongodb4.0–secondary節點
1)安裝4.0版本
1. 兩臺節點:
# rpm -ivh mongodb-org-shell-4.0.18-1.el7.x86_64.rpm mongodb-org-server-4.0.18-1.el7.x86_64.rpm
2. 確認版本
# /usr/bin/mongo --version | head -n1; /usr/bin/mongod --version | head -n1
MongoDB shell version v4.0.18
db version v4.0.18
2)停起服務並更改配置
1. 停止secondary節點服務
# mongod -f /mongo/mongodb36/mongodb.yaml --shutdown
2. 修改配置檔案
1)將原配置檔案替換到/etc/mongod.conf
#cp /mongo/mongodb36/mongodb.yaml /etc/mongod.conf
2)修改pidFilePath值為:/var/run/mongodb/mongod.pid
#sed -i 's#pidFilePath: .*#pidFilePath: /var/run/mongodb/mongod.pid#' /etc/mongod.conf
3)修改path值為:/var/log/mongodb/mongod.log
#sed -i 's#path: .*#path: /var/log/mongodb/mongod.log#' /etc/mongod.conf
4)給資料路徑mongod的使用者屬主:chown -R mongod:mongod /mongo/public
3. 啟動secondary節點
#systemctl start mongod.service
3)檢查簡稱確認日誌正常
1.檢視狀態
systemctl status mongod.service
2. 觀察日誌
tail -f /var/log/mongodb/mongod.log
3. 安裝mongodb4.0–primary節點
1)下線並安裝4.0版本
1. 下線primary節點
# mongo x.x.x.171:27017/admin?replicaSet=mongo0 -uroot -proot123 --authenticationDatabase admin --eval 'printjson(rs.stepDown())'
2. 確認當前primary節點下線並且primary漂移
# mongo x.x.x.171:27017/admin?replicaSet=mongo0 -uroot -proot123 --authenticationDatabase admin --eval 'printjson(rs.status())'
觀察其他節點已經變成primary後,執行下面停止動作
3. 停止primary節點
# mongod -f /mongo/mongodb36/mongodb.yaml --shutdown
4. 當前節點安裝4.0版本
#rpm -ivh mongodb-org-shell-4.0.18-1.el7.x86_64.rpm mongodb-org-server-4.0.18-1.el7.x86_64.rpm
5. 確認版本資訊
#/usr/bin/mongo --version | head -n1; /usr/bin/mongod --version | head -n1
2)停起服務並更改配置
1. 修改配置檔案
1)將原配置檔案替換到/etc/mongod.conf
#cp /mongo/mongodb36/mongodb.yaml /etc/mongod.conf
2)修改pidFilePath值為:/var/run/mongodb/mongod.pid
#sed -i 's#pidFilePath: .*#pidFilePath: /var/run/mongodb/mongod.pid#' /etc/mongod.conf
3)修改path值為:/var/log/mongodb/mongod.log
#sed -i 's#path: .*#path: /var/log/mongodb/mongod.log#' /etc/mongod.conf
4)給資料路徑mongod的使用者屬主:chown -R mongod:mongod /mongo/public
2. 啟動secondary節點
#systemctl start mongod.service
3)檢查簡稱確認日誌正常
1.檢視狀態
systemctl status mongod.service
2. 觀察日誌
tail -f /var/log/mongodb/mongod.log
4)修改相容性
1. 修改相容性版本命令
mongo0:PRIMARY> db.adminCommand({setFeatureCompatibilityVersion: "4.0"})
{
"ok" : 1,
"operationTime" : Timestamp(1611210420, 2),
"$clusterTime" : {
"clusterTime" : Timestamp(1611210420, 2),
"signature" : {
"hash" : BinData(0,"9ERWsU9TGvVU0S76b/chdJpR7h4="),
"keyId" : NumberLong("6919651888241573889")
}
}
}
2. 檢視當前相容性版本是否修改成功
mongo0:PRIMARY> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{
"featureCompatibilityVersion" : {
"version" : "4.0"
},
"ok" : 1,
"operationTime" : Timestamp(1611210433, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1611210433, 1),
"signature" : {
"hash" : BinData(0,"c8RTsyhpYPc5JdOvDVDKZD0jA6c="),
"keyId" : NumberLong("6919651888241573889")
}
}
}
mongodb4.0升級4.2
1. 確認primary節點
同上面步驟確認。
2. 安裝mongodb4.2–secondary節點
1)安裝4.2版本
1. 兩臺節點:
# rpm -ivh --force mongodb-org-shell-4.2.3-1.el7.x86_64.rpm mongodb-org-server-4.2.3-1.el7.x86_64.rpm
2. 確認版本
# /usr/bin/mongo --version | head -n1; /usr/bin/mongod --version | head -n1
MongoDB shell version v4.2.3
db version v4.2.3
2)重啟服務
1. 重啟secondary節點服務
# systemctl restart mongod.service
3)檢查簡稱確認日誌正常
1.檢視狀態
systemctl status mongod.service
2. 觀察日誌
tail -f /var/log/mongodb/mongod.log
3. 安裝mongodb4.2–primary節點
1)下線並安裝4.2版本
1. 下線primary節點
# mongo x.x.x.171:27017/admin?replicaSet=mongo0 -uroot -proot123 --authenticationDatabase admin --eval 'printjson(rs.stepDown())'
2. 確認當前primary節點下線並且primary漂移
# mongo x.x.x.171:27017/admin?replicaSet=mongo0 -uroot -proot123 --authenticationDatabase admin --eval 'printjson(rs.status())'
觀察其他節點已經變成primary後,執行下面停止動作
3. 當前節點安裝4.2版本
#rpm -ivh --force mongodb-org-shell-4.2.3-1.el7.x86_64.rpm mongodb-org-server-4.2.3-1.el7.x86_64.rpm
4. 重啟primary節點
# systemctl restart mongod.service
5. 確認版本資訊
#/usr/bin/mongo --version | head -n1; /usr/bin/mongod --version | head -n1
2)檢查簡稱確認日誌正常
1.檢視狀態
systemctl status mongod.service
2. 觀察日誌
tail -f /var/log/mongodb/mongod.log
3)修改相容性
1. 修改相容性版本命令
mongo0:PRIMARY> db.adminCommand({setFeatureCompatibilityVersion: "4.2"})
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1611212068, 8),
"signature" : {
"hash" : BinData(0,"dCQe3dv00Yj27OmZBs1jpep52Zw="),
"keyId" : NumberLong("6919651888241573889")
}
},
"operationTime" : Timestamp(1611212068, 8)
}
2. 檢視當前相容性版本是否修改成功
mongo0:PRIMARY> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{
"featureCompatibilityVersion" : {
"version" : "4.2"
},
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1611212068, 8),
"signature" : {
"hash" : BinData(0,"dCQe3dv00Yj27OmZBs1jpep52Zw="),
"keyId" : NumberLong("6919651888241573889")
}
},
"operationTime" : Timestamp(1611212068, 8)
}