3.0.2→3.2.12 Sharded Cluster升級(mmapv1引擎不換)
前期準備:
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引擎不換)