今天发现原来我5年前就注册了 博客园,但是一篇文章未写过。惭愧惭愧呀!!!
今天开始 新生之旅!!
断断续续的做了1年mongodb的维护,最近做了 mongodb2.6到mongodb3.0的升级工作,将升级过程记录下来以便可以帮助更多的朋友!
言归正传:
mongodb 集群一般是shard(分片)+ replicateSet(副本集)+mongos(路由)+config(配置服务)
最重要的第一部:备份 config配置服务上的所有DB
实践:
总目录为:
mongodb2.6分片
172.31.107.1:27011 cluster001
172.31.107.1:27012 cluster002
172.31.107.1:27013 cluster003
172.31.107.2:27011 cluster001
172.31.107.2:27012 cluster002
172.31.107.2:27013 cluster003
172.31.107.3:27011 cluster001
172.31.107.3:27012 cluster002
172.31.107.3:27013 cluster003
172.31.107.1:27021 config配置服务器DB
172.31.107.2:27021 config配置服务器DB
172.31.107.3:27021 config配置服务器DB
172.31.107.1:27020 mongos路由
172.31.107.2:27020 mongos路由
172.31.107.3:27020 mongos路由
//////////////////////////////////////////////////////////
mongodb3.0分片
172.31.107.1:27021 config配置服务器DB
172.31.107.2:27021 config配置服务器DB
172.31.107.3:27021 config配置服务器DB
172.31.107.1:27020 mongos路由
172.31.107.2:27020 mongos路由
172.31.107.3:27020 mongos路由
登录mongodb2.6分片上的第一组mongos(172.31.107.1:27020 ):
一、关闭 平衡器时间窗口 disable the balancer
mongos>sh.setBalancerState(false) #disable
mongos>sh.getBalancerState() #check
或者
configsvr>use admin
configsvr>db.settings.update({_id:"balancer"},{$set:{stopped:true}},{upsert:true});
二、升级分片cluster's元组 meta data数据
2.1关闭mongos:
mongos>use admin
mongos>db.shutdownServer()
>exit
2.2 开始升级 meta data
shell环境下跳转到 /root/mongodb3.0mongos/bin 目录下执行升级命令:
[root@vlnx107001 bin]# ./mongos -f /root/mongodb2.6mongos/conf/mongod.conf --upgrade
2.3验证升级日志:
2.4、重启第一组mongos 验证是否成功
2.5、紧接着升级剩余的第二第三组 mongos的 meta data
即 重复 2.1到 2.4步骤
三、升级 config配置服务器DB
3.1 导出mongodb2.6 config中的DB;
./mongodump --port 27021 -o /tmp/mongodbconfig
3.2 关闭config服务 和 mongos 服务;
[root@vlnx107001 bin]# ./mongo --port 27021
configsvr> use admin
configsvr> db.shutdownServer()
> exit
mongos>use admin
mongos>db.shutdownServer()
3.3 将导出的DB 还原到mongodb3.0的 config配置服务器的DB中
cd /root/mongodb3.0conf/bin
./mongod -f /root/mongodb3.0conf/conf/mongod.conf #启动 mongodb3.0 配置服务
./mongorestore --port 27021 --dir /tmp/mongodbconfig --drop #将备份的DB 还原到 配置 服务器对应的DB中
3.4 按照3.1到3.3的步骤 继续升级剩余的 第二第三组config
四、升级分片中的所有 复制集成员到mongodb3.0 版本
详见 《mongodb2.6 replSet 升级到 mongodb3.0 》
五、打开均衡器
mongos>sh.setBalancerState(true)
mongos>sh.getBalancerState() #check
或
configsvr>use admin
configsvr>db.settings.update({"_id":"balancer"},{$set:{stopped:false}},{upsert:true});