Вы можете добавить новую информацию в вашу базу данных, которая перечисляет, какие файлы существовали во время последнего резервного копирования. Затем, даже если файл не изменился, во время резервного копирования будет сделана новая (маленькая) запись, указывающая, что он все еще существует.
При восстановлении резервной копии с определенной даты в прошлом, выбирайте только те файлы, в которых были записи, указывающие, что они существовали во время предыдущей резервной копии.
Например, пара таких таблиц может работать:
Path(text) BackupIndex(int)
path/to/file1 1
path/to/file2 1
path/to/file1 2
Обратите внимание, что path/to/file2
не отображается в резервной копии # 2, поскольку она не была в каталоге во время резервного копирования (она должна быть удалена).
BackupIndex(int) Timestamp(timestamp)
1 2011-03-12 7:42:31 UTC
2 2011-03-20 8:21:56 UTC
Кто-то хочет восстановить, поскольку файлы существовали 15 марта, вы посмотрите на таблицу индексов резервного копирования, увидите, что резервная копия №1 была самой последней, и посмотрите все пути, которые существовали в резервной копии 1, из таблицы путей.
Таким образом, в основном вы отталкиваетесь, решая, был ли файл удален в операцию восстановления, а не в операцию резервного копирования.