zoukankan      html  css  js  c++  java
  • MongoDB数据库数据清理

    清理MongoDB集群数据:

    1、登录MongoDB集群(mongos):

    # mongo -u username -p password --authenticationDatabase admin 127.0.0.1:27017/admin
    

    2、查询2018-01-31之前的数据(mongos):

    mongos> db.tcache.find({"ft":{"$lt":new Date("2018-01-31T00:00:00.000Z")}}).count()
    # mongo-u username -p password --authenticationDatabase admin 127.0.0.1:27017/yqtrack_gather01 --eval 'db.tcache.find({"ft":{"$lt":new Date("2018-01-31T00:00:00.000Z")}}).count()'
    

    3、删除2018-01-31之前的数据(mongos):

    mongos> db.tcache.deleteMany({"ft":{"$lt":new Date("2018-01-31T00:00:00.000Z")}})
    # mongo -u username -p password --authenticationDatabase admin 127.0.0.1:27017/yqtrack_gather01 --eval 'db.tcache.deleteMany({"ft":{"$lt":new Date("2018-01-31T00:00:00.000Z")}})'
    

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    收缩MongoDB节点数据库:

    1、登录Mongod节点(mongod):

    # mongo -u __system -p "$(tr -d '11-1540' < /usr/local/mongodb/etc/mongodb.key )" --authenticationDatabase local 172.16.1.151:27018/yqtrack_gather07
    

    2、确认节点为从数据库:

    rs1:SECONDARY> rs.status()
    

    3、设置从数据库节点可以读写:

    rs1:SECONDARY> db.getMongo().setSlaveOk()
    

    4、切换至对应数据库:

    rs1:SECONDARY> use yqtrack_gather01;
    

    5、强制收缩对应数据库:

    rs1:SECONDARY> db.runCommand({compact:'tcache',force:true });
    # mongo -u __system -p "$(tr -d '11-1540' < /usr/local/mongodb/etc/mongodb.key )" --authenticationDatabase local 172.16.1.87:27018/yqtrack_gather01 --eval 'db.runCommand({compact:"tcache",force:true})'
    

    6、将主节点降级为从节点:

    rs1:PRIMARY> rs.stepDown()
    

    ---------------------------------------------------------------- shell ---------------------------------------------------------------------

    查询指定节点,指定日期区间的数据量:

    #!/bin/bash
    for((p=1;p<=10;p+=1))
    do
    for((d=592;d>=506;d-=5))
    do
    day=`date -d -"$d days" +%Y-%m-%d`
    echo "$day"
    day_utc=""$day"T00:00:00.000Z"
    date="'db.tcache.find({"ft":{"$lt":new Date("$day_utc")}}).count()'"
    if [ "$p" -lt '10' ]
    then
    mongo -u username -p password --authenticationDatabase admin 127.0.0.1:27017/yqtrack_gather0"$p" --eval "$date"
    RESULT=$?
    else
    mongo -u username -p password --authenticationDatabase admin 127.0.0.1:27017/yqtrack_gather"$p" --eval "$date"
    fi
    sleep 5
    done
    done
    

    收缩指定节点的数据:

    #!/bin/bash
    for((d=1;d<=10;d+=1))
    do
    if [ "$d" -lt '10' ]
    then
    mongo -u __system -p "$(tr -d '11-1540' < /usr/local/mongodb/etc/mongodb.key )" --authenticationDatabase local 127.0.0.1:27018/yqtrack_gather0"$d" --eval 'db.runCommand({compact:"tcache",force:true})'
    else
    mongo -u __system -p "$(tr -d '11-1540' < /usr/local/mongodb/etc/mongodb.key )" --authenticationDatabase local 127.0.0.1:27018/yqtrack_gather"$d" --eval 'db.runCommand({compact:"tcache",force:true})'
    fi
    done
    

    [THE END]  

  • 相关阅读:
    mysql 性能优化方案 (转)
    MYSQL 优化常用方法
    php高级研发或架构师必了解---很多问题面试中常问到!
    MetaMask/metamask-extension/mascara 的运行实现
    简单使用metamascara
    nodejs stream 手册学习
    nodejs-stream部分
    metamask中的import account的代码实现
    Signature Request Warnings & eth_sign学习
    gulp学习-metamask前端使用
  • 原文地址:https://www.cnblogs.com/configure/p/11896498.html
Copyright © 2011-2022 走看看