【问题标题】:MongoDB: rsync whole db folder, except one huge collection that doesn't changeMongoDB:rsync 整个数据库文件夹,除了一个不变的巨大集合
【发布时间】:2022-12-07 06:41:09
【问题描述】:

这是MongoDB/data/db文件夹内容的内容。其中一个集合是 723GB。和其他集合只有几 KB。

-rw------- 1 lxd  docker 723G Dec  5 10:15 collection-0-1080408413244540209.wt
-rw------- 1 lxd  docker  36K Dec  5 10:15 collection-0-3112968025499504303.wt
-rw------- 1 lxd  docker  36K Dec  5 10:15 collection-2-1080408413244540209.wt
-rw------- 1 lxd  docker 4.0K Dec  5 10:14 collection-4-1080408413244540209.wt
-rw------- 1 lxd  docker  20K Dec  5 10:15 collection-7-1080408413244540209.wt
-rw------- 1 lxd  docker    0 Dec  5 10:14 .dbshell
drwx------ 2 lxd  docker   90 Dec  5 10:15 diagnostic.data
-rw------- 1 lxd  docker 8.1G Dec  5 10:15 index-1-1080408413244540209.wt
-rw------- 1 lxd  docker  20K Dec  5 10:14 index-1-3112968025499504303.wt
-rw------- 1 lxd  docker  36K Dec  5 10:15 index-3-1080408413244540209.wt
-rw------- 1 lxd  docker 4.0K Dec  5 10:14 index-5-1080408413244540209.wt
-rw------- 1 lxd  docker 4.0K Dec  5 10:14 index-6-1080408413244540209.wt
-rw------- 1 lxd  docker  20K Dec  5 10:14 index-8-1080408413244540209.wt
-rw------- 1 lxd  docker  20K Dec  5 10:15 index-9-1080408413244540209.wt
drwx------ 2 lxd  docker  110 Dec  5 10:15 journal
-rw------- 1 lxd  docker  36K Dec  5 10:15 _mdb_catalog.wt
-rw------- 1 lxd  docker    0 Dec  5 10:15 mongod.lock
-rw------- 1 lxd  docker  36K Dec  5 10:15 sizeStorer.wt
-rw------- 1 lxd  docker  114 Dec  5 10:14 storage.bson
-rw------- 1 lxd  docker   50 Dec  5 10:14 WiredTiger
-rw------- 1 lxd  docker 4.0K Dec  5 10:15 WiredTigerHS.wt
-rw------- 1 lxd  docker   21 Dec  5 10:14 WiredTiger.lock
-rw------- 1 lxd  docker 1.5K Dec  5 10:15 WiredTiger.turtle
-rw------- 1 lxd  docker  84K Dec  5 10:15 WiredTiger.wt
  • 我只是通过 rsync 将整个 docker 卷备份到另一台服务器。
  • 我从不更改 723GB 集合的内容,但出于某种原因,MongoDB 大约每周更新一次该文件。
  • 因为 rsync 也会远程更新该文件。而且因为我使用的是快照,每周新的快照都会在存储中再增加 723GB,这是不可接受的并给我带来了问题。

为了解决这个问题,我只是将 723GB 集合添加到 rsync 异常中并且不再上传它。这样好吗?如果我不再更新 collection-0-1080408413244540209.wt 文件,我可以在 1 年后使用我的备份来恢复服务器吗?

【问题讨论】:

    标签: mongodb docker rsync


    【解决方案1】:

    默认情况下,rsync 仅将新的或更改的文件从源复制到目标,因此如果复制挂载的快照文件,则无需将文件添加到例外列表。另一方面,wiredTiger 有点敏感,它会根据所有集合的检查点在数据根文件夹中生成校验和,因此如果文件不同,则 mongod 进程很可能无法从恢复的快照启动。所以我建议不要完全排除文件,而是让 rsync 每次检查文件是否相同或不同,是否需要再次复制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      相关资源
      最近更新 更多