我有一个在 C++ 上运行的异地备份解决方案,可以将文件分成块,并使用 SQLITE3 数据库上的 md5 哈希跟踪块。并将块与数据库一起传输到远程站点。
因此,当我想要进行还原时,它会查询 SQLITE3 数据库并相应地还原块。
当第一个备份运行时,它会创建一个名为 base_backup 的大表。每个后续文件更改或新文件都作为新记录添加到新表中。如果我想进行恢复,我会查询 base_backup 表以及所有差异并恢复文件。
备份运行的方式,它扫描给定文件夹中的所有文件以查找存档位,如果它被清除,则验证数据库中是否不存在记录并决定是否备份它。
来到我的问题,如果在本地计算机上删除了文件,我如何跟踪它并相应地更新异地备份?因为当我进行还原时,我不想还原所有垃圾文件。是否知道文件是否已从文件夹中删除?我不想从数据库运行验证检查,因为它需要太长时间。