zoukankan      html  css  js  c++  java
  • mongodb sharding upgrade

    今天发现原来我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});
  • 相关阅读:
    JS数组(JSON)整合篇-方法整理
    C#匿名对象(转JSON)互转、动态添加属性
    js操作ListBox列表(select)内移动
    w5cValidator【AngularJS】 2.0 版本发布
    {{angular.js 使用技巧}}
    {{angular.js 使用技巧}}
    关于cocoapods添加静态库的奇葩配置
    寻觅[Getting Answers]
    前端和后端开发的异同
    micro-service构建平台
  • 原文地址:https://www.cnblogs.com/zhaowenzhong/p/5163604.html
Copyright © 2011-2022 走看看