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 '\011-\015\040' < /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 '\011-\015\040' < /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 '\011-\015\040' < /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 '\011-\015\040' < /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]
MongoDB数据库数据清理的更多相关文章
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- python 读取SQLServer数据插入到MongoDB数据库中
# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, ...
- 如何将MongoDB数据库的数据迁移到MySQL数据库中
FAQ v2.0终于上线了,断断续续忙了有2个多月.这个项目是我实践的第一个全栈的项目,从需求(后期有产品经理介入)到架构,再到设计(有征询设计师的意见).构建(前端.后台.数据库.服务器部署),也是 ...
- python操作MONGODB数据库,提取部分数据再存储
目标:从一个数据库中提取几个集合中的部分数据,组合起来一共一万条.几个集合,不足一千条数据的集合就全部提取,够一千条的就用一万减去不足一千的,再除以大于一千的集合个数,得到的值即为所需提取文档的个数. ...
- MongoDB 数据库创建删除、表创建删除、数据增删改查
一.管理 mongodb 数据库:mongo 查看所有数据库列 表 show dbs 二. 创建数据库 创建 数据库 use student 如果真的想把这个数据库创建成功,(collections) ...
- mongoDB数据库插入数据时报错:db.collection is not a function
nodejs连接mongodb插入数据时,发现mongoDB报错:db.collection is not a function.解决方法: 1.npm下载mongodb2.x.x版本替换3.x.x ...
- 【18】如何把数据存储到MongoDB数据库
如何把数据存储到MongoDB数据库 时间:2018.10.31 edit by :北鼻 一.mongoDB环境安装 需要使用mongoDB数据库的话需要安装环境, ...
- MongoDB数据库中更新与删除数据
MongoDB数据库中更新与删除数据 在MongoDB数据库中,可以使用Collection对象的update方法更新集合中的数据文档.使用方法如下所示: collection.update(sele ...
- MongoDB数据库中查询数据(下)
MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...
随机推荐
- Docker容器内服务自启
创建容器时需要配置--privileged和容器启动后执行的命令为/sbin/init/. docker run -d -it --name example -p 3308:3306 -p 2080: ...
- D - A or...or B Problem
题意:给定A,B,问[A,B]里取任意个数按位或,结果有多少种. 思路:这题需要找出一个分界点,即找到最高位的B是1,A是0的位置x(最低位从0开始),那么对于所有OR的结果,x处要么是1要么是0,x ...
- HDU - 6435 Problem J. CSGO (曼哈顿距离变换)
题目大意:有两类武器(主武器和副武器),每类有若干把,每把武器都有一个基础属性S,以及k个附加属性,让你选一把主武器M和一把副武器S,使得最大. 显然后面的和式是一个k维的曼哈顿距离,带绝对值符号不好 ...
- 【vs2015发布程序】
1.选中网站右键,选择发布Web应用 2.发布目标选择自定义 3.配置文件名称 4.发布方式选择File System,选择发布的程序存放路径 5.
- ZAP笔记
1.HTTP自动变成HTTS问题. 在使用OWASP ZAP 2.8.0的时候,如果设置了dynamic ssl certificates,并把正式导入到浏览器的时候 如果ZAP当做代理访问HTTP的 ...
- Genymotion 配置
配置Android的SDK
- Java集合框架之TreeSet
简述 TreeSet是基于TreeMap作为存储的可排序.可去重的有序集合 继承于AbstractSet,AbstractSet实现了equals和hashcode方法 实现了NavigableSet ...
- Centos 7.6 安装Mysql5.7(离线)
Centos 7.6 安装Mysql5.7(离线) 标签(空格分隔): mysql 安装包下载 https://dev.mysql.com/downloads/mysql/ [image.png-14 ...
- easyui编辑editor
$.extend($.fn.datagrid.defaults.editors, { textarea: { init: function(container, options){ var input ...
- iOS8-Sampler
https://github.com/shu223/iOS8-Sampler iOS8-Sampler Code examples for the new functions of iOS 8. Ho ...