qq316107934
V2EX  ›  问与答

有没有能使 MongoDB 定期增量备份到远程服务器并清除已备份数据的方案?

  •  
  •   qq316107934 · Jan 14, 2018 · 3235 views
    This topic created in 3064 days ago, the information mentioned may be changed or developed.

    在某云上写了一个爬虫监控某个系统的实时数据,每天有 3GB 的数据量,但云硬盘很小,剩余空间只够三天的用量。

    请问有没有什么方案能够将这段时间产生的数据全部导出并移除,或者直接远程同步(异步)到另一个 MongoDB 服务器上。想过直接 dump+remove,但是在执行操作的时候爬虫产生的数据可能没被 dump 就 remove 了。

    谢谢~

    Supplement 1  ·  Jan 14, 2018
    加 fsync 锁解决了= =谢谢大家
    4 replies    2018-01-14 21:38:36 +08:00
    h4lbhg1G
        1
    h4lbhg1G  
       Jan 14, 2018   ❤️ 1
    两个表,如果日期是奇数使用 A 表,日期是偶数使用 B 表,那么你有一天的时间来导出同步表。

    日期切换做在最后一次采集完成后。然后切表,同时触发同步操作。


    其实是我 YY 的,我完全不懂 MongoDB
    qq316107934
        2
    qq316107934  
    OP
       Jan 14, 2018
    @h4lbhg1G #1 感谢回答,这样要在爬虫里做判定,还可以一天一个 collection,但是其实是有多个 collection 存在的,这样做可能不方便管理,我想从数据库层面解决这个问题。
    just1
        3
    just1  
       Jan 14, 2018 via Android   ❤️ 1
    b 定时从 a 获取数据,入库,导入成功把后把这边已经入库的 id 返回去 a,让 a 删除。这样或许可行?
    ray8888
        4
    ray8888  
       Jan 14, 2018
    mongo 有个 oplog,就是操作日志,可以重放所有操作,基于 oplog 好像可以实现增量备份,也可以防止 dump 过程中的数据操作丢失,lz 查查这个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2817 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 13:34 · PVG 21:34 · LAX 06:34 · JFK 09:34
    ♥ Do have faith in what you're doing.