在某云上写了一个爬虫监控某个系统的实时数据,每天有 3GB 的数据量,但云硬盘很小,剩余空间只够三天的用量。
请问有没有什么方案能够将这段时间产生的数据全部导出并移除,或者直接远程同步(异步)到另一个 MongoDB 服务器上。想过直接 dump+remove,但是在执行操作的时候爬虫产生的数据可能没被 dump 就 remove 了。
谢谢~
1
h4lbhg1G 2018-01-14 20:24:48 +08:00 1
两个表,如果日期是奇数使用 A 表,日期是偶数使用 B 表,那么你有一天的时间来导出同步表。
日期切换做在最后一次采集完成后。然后切表,同时触发同步操作。 其实是我 YY 的,我完全不懂 MongoDB |
2
qq316107934 OP @h4lbhg1G #1 感谢回答,这样要在爬虫里做判定,还可以一天一个 collection,但是其实是有多个 collection 存在的,这样做可能不方便管理,我想从数据库层面解决这个问题。
|
3
just1 2018-01-14 20:42:45 +08:00 via Android 1
b 定时从 a 获取数据,入库,导入成功把后把这边已经入库的 id 返回去 a,让 a 删除。这样或许可行?
|
4
ray8888 2018-01-14 21:38:36 +08:00
mongo 有个 oplog,就是操作日志,可以重放所有操作,基于 oplog 好像可以实现增量备份,也可以防止 dump 过程中的数据操作丢失,lz 查查这个
|