2.4.6 Резервное копирование данных

Случайная потеря данных очень распространены, поскольку может быть вызвана многими факторами - аппаратные сбои (например, поломка жёсткого диска), программные сбои (например, ошибка в программе может повредить документ), человеческие ошибки (например, случайное стирание файла), или в крайних случаях стихийные бедствия, при которых компьютер или память оказываются физически уничтожены. Во всех этих случаях данные могут оказаться либо искажёнными, либо полностью утерянными.
Для защиты от случайной потери данных периодически выполняют резервное копирование файлов, хранящихся на массовых носителях, на другие носители информации, например другие массовые носители, сетевые диски, магнитные или оптические носители. Часто к резервной копии добавляют ещё и дату и время, когда копия была сделана, чтобы по ней можно было при необходимости восстановиться. При резервировании файлам устанавливается специальный атрибут, архивный бит, показывающий, был ли этот файл изменён со времени подледного резервирования.
Разными вариантами резервирования являются:
- Полное (Full) - все файлы резервируются несмотря на архивный бит, а сам архивный бит устанавливается в состояние "заархивировано".
- Добавочное (Incremental) - резервируются лишь те файлы, которые были изменены со времени последнего резервирования, что определяется по архивному биту. При восстановления должны быть восстановлены данные последнего полного резервирования, плюс данные всех последующих добавочных резервирований.
- Дифференциальное (Differential) - каждый файл, который был изменен с момента последнего полного резервирования, копируется каждый раз заново, а архивный бит оставляется без изменений. Ускоряет процесс восстановления. так как для этого требуется лишь последняя полная и последняя дифференциальная копия.
При резервировании нужно решить проблему открытых файлов. Для корректного резервирования должны быть закрыты все файлы, а все программы, использующие эти файлы, должны быть приостановлены. Как правило это невозможно. В сегодняшние дни при резервировании используут специальную возможность файловой системы, которая позволяет зафиксировать состояние файловой системы на момент начала резервирования. В среде Windows эта служба называется VSS (Volume Shadow Copy Service). VSS позовляет сделать снимок текущего состояния файловой системы (VSS Snapshot), во время чего все приложения, поддерживающие VSS, приостанавливаются и сохраняют в массовую память свои рабочие данные. Если после создания снимка данные изменились, то они сохраняются специальную системную область VSS в массовой памяти, откуда программа резервирования может считать корректные данные, как если бы они были зафиксированы на момент начала резервирования, и резервная копия всей файловой системы будет корректной.
Такое резервирование выгодно и по другой причине - механизм VSS можно использовать на резервном носителе, если последний резервирует данные блоками (например при резервировании на другой жёсткий диск). В этом случае снимок файловой системы можно зафиксировать и на резервном носителе, и когда совершается следующее резервирование, изменённые блоки автоматически сохраняются в системную область VSS. Таким образом, при каждом резервировании возникает область файловой системы, содержащая изменённые блоки, что позволяет восстановить файлы конкретного дня.