zoukankan      html  css  js  c++  java
  • (转)mongodb常用命令脚本化-自动化运维

    mongodb常用命令脚本化-自动化运维

    把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护
     

    1 设置副本集

     
    #!/bin/bash
    #mongodb 进入client 并use admin
    cd /usr/mongodb/bin
    MongoDB='./mongo 192.168.1.7:37017'
    $MongoDB <<EOF
    use admin
    rsconf={
            "_id" : "Job001",
            "members" : [
                {
                    "_id" : 0,
                    "host" : "192.168.1.7:37017"
                }
            ]
        }
    rs.initiate(rsconf)
    rs.add("192.168.1.8:37017")
    rs.add("192.168.1.9:37017")
    exit;
    EOF
     

    注释:把上面的内容写入***.sh文件中 chmod 777 ***.sh 赋给权限

    在linux > sh ***.sh 即可完成那些命令

    下同

    2 修改副本集的设置

    #!/bin/bash

    #mongodb 进入client 并进入primary
    cd /usr/mongodb/bin
    MongoDB='./mongo 192.168.1.7:37017'
    $MongoDB <<EOF
    use MongoModelJobResume
    #rs.status()
    cfg=rs.conf()
    cfg.members[0].priority=99
    cfg.members[1].priority=50
    cfg.members[2].priority=30
    rs.reconfig(cfg)
    rs.conf()
    exit;

    EOF

    3 把一个表转到临时表,再copy回来,这样oplog中就会重新生成完整的log

    (前提oplog 的size要足够大)

    #!/bin/bash
    #mongodb 进入client 并进入primary
    cd /usr/mongodb/bin
    MongoDB='./mongo 192.168.1.7:37017'
    $MongoDB <<EOF
    use MongoModelJobResume
    rs.remove("192.168.1.8:37017")
    rs.remove("192.168.1.9:37017")
    db.tbJobResume.renameCollection("tbJobResumeOld")
    db.tbJobResumeOld.copyTo("tbJobResume")
    rs.add("192.168.1.8:37017")
    rs.add("192.168.1.9:37017")
    #db.tbJobResumeOld.drop()
    exit;
    EOF

    4 按日期生成mongodb日志

    mongodb日志默认写在一个文件了,时间久了查看等很不方便,用cron计划任务+脚本 可以实现按日期存放log
    # rotatelog.sh 用下面的内容生成这个文件 chmod 777 rotelog.sh 赋予权限
     
    #!/bin/bash
    #mongodb client  use admin
    cd /usr/mongodb/bin
    MongoDB='./mongo 192.168.1.7:37017'
    $MongoDB <<EOF
    use admin
    db.runCommand( { logRotate : 1 } )
    exit;
    EOF
     
    再用 crontab -e 打开(没有就新建) 加入如下内容,并保存 (该文件路径在 /var/spool/cron/root/)
    59 23 * * * /bin/sh /usr/mongodb/config/rotatelog.sh
     
    这样的话每天晚上23点59分的时候就会把当天的日志以***日期.log的方式另存,原来的log文件会清空
     

    5 MongoDB数据库自动备份还原的脚本



    -----自动备份mongodb数据并压缩---


    #!/bin/bash
    filename=`date +%Y%m%d%H`
    backmongodbFile=mongodb$filename.tar.gz
    cd /home/mongo/back/
    /usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBAgent -o mongodb_dump/
    /usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBBg -o mongodb_dump/
    /usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoModelActor -o mongodb_dump/
    tar czf $backmongodbFile  mongodb_dump/
    rm mongodb_dump -rf 


    -----自动解压并还原mongodb数据---


    #!/bin/bash
    filename='20150330013'
    backmongodbFile=mongodb$filename.tar.gz
    cd /home/mongo/back/
    tar zxvf $backmongodbFile
    /usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBAgent mongodb_dump/MongoDBAgent
    /usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBBg mongodb_dump/MongoDBBg
    /usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoModelActor mongodb_dump/MongoModelActor
    rm mongodb_dump -rf 
     
  • 相关阅读:
    http header Contenttype
    SharePoint 2010 文档库中直接打开文档
    玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
    最近感兴趣的二三事
    最近遭遇的两个VS配置
    环游世界,走遍读过的每一个国家和城镇
    趣题一则:如何快速过桥?
    NASA庆祝地球日:50年地球最精美图片亮相(转载)
    Silverlight,Windows 8应用开发实例教程系列汇总
    Windows 8实例教程系列 数据绑定高级实例
  • 原文地址:https://www.cnblogs.com/ywcz060/p/5557344.html
Copyright © 2011-2022 走看看