3.0.2→3.2.12分片集群升级

  

<李>


<李>

<代码> sh.enableSharding()

<李>

<代码> sh.shardCollection()

<李>

<代码> sh.addShard()

<李>

<代码> db.createCollection()

<李>

<代码> db.collection.drop()

<李>

<代码> db.dropDatabase()

<李>

任何操作,创建一个数据库

<李>

其他操作,以任何方式修改集群元数据。



1,关闭均衡器

mongos>, db.setBalancerState(假);


2升级碎片

<李>

升级其中一个次要成员

<李>

关闭mongod实例,3.0命令替换成3.2

<李>

重启该成员。等待该成员集群中的状态为二级后,再升级第二个二级

<李>

下台主节点。

<李>

当rs.status()显示主节点已经是分片的其他成员,开始升级下台的主节点(此时,只是角色是次要的)

<李>

关闭mongod实例,3.0命令替换成3.2

<李>

重启


3升级配置服务器

升级配置服务器是有顺序的。如果启动蒙戈指定的配置服务器顺序如下

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

那么,升级的顺序为:db-test03→db-test02→db-test01

<李>

关闭db-test03配置服务器,并且3.0命令替换成3.2

<李>

启动3.2版本的配置服务器,指定configsvr和港口

<李>

使用命令行启动

 mongod ——configsvr ——port  20001,——dbpath /数据/mongodb配置
<李>


<李>

使用配置文件启动

分片:
  ,,clusterRole: configsvr
  net:
  ,,端口:20001
  储存:
  ,才能dbpath:/数据/mongodb配置

依次重复启动其他configDB: db-test02, db-test01


4升级蒙戈实例

<李>

无序的。替换3.2版本的蒙戈,重启(一个一个蒙戈做替换)

关闭蒙戈时,程序会有报的错。因为蒙戈关闭,当前连接会断掉,之后程序尝试连接关闭的蒙戈连不上会连接其他蒙戈(如有多个蒙戈节点且程序配置访问多个蒙戈),不影响业务。


5,开启均衡器

mongos>, db.setBalancerState(真正);



升级过程中,使用脚本每秒向数据库写一条数据。观察数据写入情况

//报错信息   WriteResult ({   ,,,,,,,,“nInserted”:, 0,   ,,,,,,,,“writeError”:, {   ,,,,,,,,,,,,,,,“代码”,:,94年,   ,,,,,,,,,,,,,,,,“errmsg”:,“Request  contains  sharding 元数据,,but 从而server  has  not  been  made  sharding 意识到。”   ,,,,,,,}   })

可能原因:降压的未切换到其他节点,就将节点关闭了。




3.0.2→3.2.12分片集群升级