zoukankan      html  css  js  c++  java
  • mongodb 3.4 学习 (五)备份&恢复

    备份恢复命令

    mongodump -h 127.0.0.1 -p 27017 -o /opt/backup -u app -p '@app' --collection demo --db app --oplog 
    mongorestore -h 127.0.0.1 -p 27017 -u app -p '@app' /opt/backup/mongodump-2013-10-24 --oplogReplay
    

    配置Hidden Secondary用于备份

    conf = rs.conf()
    {
    ......
        "members" : [
            {
                "_id" : 0,
                "host" : "10.0.70.105:27021",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : false,
                "priority" : 1,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            },
            {
                "_id" : 1,
                "host" : "10.0.70.105:27022",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : false,
                "priority" : 1,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            },
            {
                "_id" : 2,
                "host" : "10.0.70.105:27023",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : false,
                "priority" : 1,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            }
        ],
    ......
    }
    
    conf.members[2].hidden = true
    conf.members[2].priority = 0
    
    conf
    {
        ......
            "members" : [
            {
                "_id" : 0,
                "host" : "10.0.70.105:27021",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : false,
                "priority" : 1,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            },
            {
                "_id" : 1,
                "host" : "10.0.70.105:27022",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : false,
                "priority" : 1,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            },
            {
                "_id" : 2,
                "host" : "10.0.70.105:27023",
                "arbiterOnly" : false,
                "buildIndexes" : true,
                "hidden" : true,
                "priority" : 0,
                "tags" : {
                    
                },
                "slaveDelay" : NumberLong(0),
                "votes" : 1
            }
        ],
        ......
    }
    
    rs.reconfig(conf)
    
    # 锁写
    use admin
    db.fsyncLock()
    
    # 查看锁状态
    use admin
    db.currentOp()
    
    # 解锁
    use admin
    db.fsyncUnlock()
    

    备份shard群集

    # 1 关闭balancer
    use config
    sh.stopBalancer()
    
    # 2 锁定所有shard的复制集
    db.fsyncLock()
    
    # 3 修改CSRS的复制集配置
    use config
    db.BackupControl.findAndModify(
       {
         query: { _id: 'BackupControlDocument' },
         update: { $inc: { counter : 1 } },
         new: true,
         upsert: true,
         writeConcern: { w: 'majority', wtimeout: 15000 }
       }
    )
    
    # 验证CSRS
    rs.slaveOk()
    use config
    
    db.BackupControl.find(
       { "_id" : "BackupControlDocument", "counter" : 1 }
    ).readConcern('majority');
    
    # 4 锁定CSRS的复制集
    db.fsyncLock()
    
    # 5 备份CSRS
    mongodump --oplog
    
    # 6 解锁CSRS
    db.fsyncUnlock()
    
    # 7 备份所有的shard
    mongodump --oplog
    
    # 8 解锁备份所有的shard
    db.fsyncUnlock()
    
    # 9 启动balancer
    use config
    sh.setBalancerState(true)
    

    在新shard群集恢复数据

    # 1 部署新shard复制集
    
    # 2 部署新CSRS服务器
    
    # 3 启动mongos服务
    
    # 4 加入shard到群集
    
    # 5 关闭mongs服务
    
    # 6 恢复shard数据
    mongorestore --drop --oplogReplay /data/dump/shardA --port 27021
    
    # 7 恢复CSRS服务器
    mongorestore --drop --oplogReplay /data/dump/configData
    
    # 8 启动mongs服务
    
    # 9 重启CSRS服务
    
    # 10 重启shard服务
    
    # 11 重启其他mongs服务
    
    # 12 校验群集
    db.printShardingStatus()
    show collections
    
  • 相关阅读:
    [OpenStack] openstack keystone api 实验(curl)(转载)(亲自动手实验,附带实验运行结果)
    [Hadoop in China 2011] 中兴:NoSQL应用现状及电信业务实践
    [转]Windows Server 2012 和 System Center 2012 SP1,Virtual Machine Manager 中启用的软件定义的网络
    [Hadoop in China 2011] Facebook Message在HBase基础上的应用
    [转] ETL工具介绍
    [Hadoop in China 2011] eBay:选择HBase建立搜索引擎的原因
    [Cloudera Hadoop] CDH 4.0 Quick Start Guide (动手实践,最新版CDH4.0,企业版Hadoop)
    云操作系统OpenStack 优势与问题并存
    [OpenStack Crowbar] Build Crowbar.ISO
    [OpenStack] OpenStack ESSEX 全新手动安装,动手,实践,出真知!
  • 原文地址:https://www.cnblogs.com/liujitao79/p/6907053.html
Copyright © 2011-2022 走看看