mongodb 后台大量删除归档数据

需求如下

我们有些生产mongo数据库的大表需要做归档,数据库为matrix_db,只保留最近三个月的数据,将三个月之前的数据删除,注意要先备份,过几天验证期以后再删备用表(我会通知),注意删除的时候不能影响线上流程,需要后台执行,具体的执行语句如下所示:

 

db.getCollection('neo.riskengine.PolicyExecutionTracking').deleteMany({createTime:{$lt:ISODate("2018-08-28 00:00:00")}})

 

解决办法

先备份

mongodump -ureader -p'Password$1' --port 27127 -d bos_braavos -c events -q '{"timeStamp" : {"$lte":"2017-11-28T00:00:23.870+08:00"}}' -o /u01/

 

再查看要删除数据大小

rep01:PRIMARY> db.neo.riskengine.PolicyExecutionTracking.find({"createTime":{"$lt":ISODate("2018-08-28 00:00:00")}}).count()

1976824

查看很慢,发现此collection没有索引

删除优化1:

建相关索引

rep01:PRIMARY> db.neo.riskengine.PolicyExecutionTracking.ensureIndex({"createTime":1},{background:tr

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值