1. 程式人生 > >3.0.2→3.2.12 Sharded Cluster升級(mmapv1引擎不換)

3.0.2→3.2.12 Sharded Cluster升級(mmapv1引擎不換)

mongodb balancer upgrade

前期準備:

1)3.2.12版本準備好

2)升級過程中,保證client不會修改集合元數據。例如:不能執行下列操作:

    • sh.enableSharding()

    • sh.shardCollection()

    • sh.addShard()

    • db.createCollection()

    • db.collection.drop()

    • db.dropDatabase()

    • any operation that creates a database

    • any other operation that modifies the cluster metadata in any way.

3)關閉balancer

4)備份config數據庫



操作步驟:

1、關閉balancer

mongos> db.setBalancerState(false);


2、升級shards

  • 升級其中一個Secondary成員

    • 關閉mongod實例,3.0命令替換成3.2

    • 重啟該成員。等待該成員集群中的狀態為SECONDARY後,再升級第二個Secondary

  • Step Down主節點。

  • 當rs.status()顯示主節點已經是分片的其他成員,開始升級stepped-down的主節點(此時,只是role是Secondary)

    • 關閉mongod實例,3.0命令替換成3.2

    • 重啟


3、升級config server

升級config server是有順序的。如果啟動mongos指定的config server順序如下

//mongod_config.conf
sharding:
   configDB: db-test01:20001,db-test02:20001,db-test03:20001

那麽,升級的順序為:db-test03 → db-test02 → db-test01

  • 關閉db-test03 config server,並且3.0命令替換成3.2

  • 啟動3.2版本的config server,指定configsvr和port

    • 使用命令行啟動

mongod --configsvr --port 20001 --dbpath /data/mongodb/config
    • 使用配置文件啟動

sharding:
   clusterRole: configsvr
net:
   port: 20001
storage:
   dbpath: /data/mongodb/config

依次重復啟動其他configDB:db-test02、db-test01


4、升級mongos實例

  • 無序的。替換3.2版本的mongos,重啟(一個一個mongos做替換)

關閉mongos時,程序會有報錯。因為mongos關閉,當前連接會斷掉,之後程序嘗試連接關閉的mongos連不上會連接其他mongos(如有多個mongos節點且程序配置訪問多個mongos),不影響業務。


5、開啟balancer

mongos> db.setBalancerState(true);


本文出自 “11570138” 博客,請務必保留此出處http://11580138.blog.51cto.com/11570138/1942847

3.0.2→3.2.12 Sharded Cluster升級(mmapv1引擎不換)