1. 程式人生 > 其它 >mongodb3.6升級4.2

mongodb3.6升級4.2

技術標籤:資料庫自動運維mongodb運維

目錄

初始環境資訊

mongodb版本下載:
https://repo.mongodb.org/yum/redhat/7/mongodb-org/

1. 原始叢集資訊

節點主機版本副本集名稱配置檔案資料/日誌路徑
primaryx.x.x.1713.6.327017mongo0/mongo/mongodb36/mongodb.yaml/mongo/public;/mongo/logs
secondaryx.x.x.1723.6.327017mongo0/mongo/mongodb36/mongodb.yaml/mongo/public;/mongo/logs
secondaryx.x.x.1733.6.327017mongo0/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)
}

在這裡插入圖片描述