MONGODB,坚持转储和删除大数据

时间:2017-02-07 08:11:41

标签: ruby mongodb amazon-ec2 sidekiq mongodump

我有" dump"然后"删除"大数据MONGODB

db已经有索引字段需要查询

总数据~50m记录

过滤后的数据必须转储并删除~5m

3服务器:
- MONGO t2.medium

- SIDEKIQ t2.small

- OTHER SERVER t2.small(multi)

我在较少的交通时间运行cronjob。但是完成工作需要花费太多时间,~6-8h,当它运行时,其他服务器无法连接MONGODB,然后其他服务器更改为状态降级(使用docker的弹性支持)

当服务器关闭时,我检查MONGODB mongostat:cpu占用~95-96%。其他服务器日志是"无法连接到db"。

拜托,有人有mongodb的经验,帮助我解决这个问题

1 个答案:

答案 0 :(得分:1)

也许你应该尝试其他策略。您可以尝试几步完成。此外,您必须将此任务拆分为许多小作业。您可以在后台以低优先级运行此作业。在你的地方我会做下一步:

第1步:
1)创建用于存储转储数据的临时DB(集合) 2)从原始集合中选择小部分所需的数据。多大?这取决于您的服务器。例如,每次5000个条目(限制,偏移) 3)在临时数据库中保存数据

现在您可以尝试转储临时数据库。如果它不起作用,您可以尝试使用partitioning