Денис Батранков
Что такое снапшот
Те, кто знаком с системами архивирования в базах данных, знают, что такое снапшот.
Snapshot с английского переводится как снимок. Здесь используется термин из
фотографии, поскольку действие этой технологии аналогично снимку фотоаппарата.
По сути снапшот – это зафиксированная мгновенно в определенный момент времени
копия файловой системы, какого бы большого размера она ни была. Создав такой снапшот,
можно заняться архивированием этой огромной «фотографии» на различные внешние
носители: магнитную ленту, CD- или DVD-диски. Вся прелесть в том, что,
во-первых, все создается мгновенно, во-вторых, сама файловая система продолжает
изменяться, а вот ее снапшот (снимок) – нет и, в-третьих, тут нет
заблокированных файлов. И действительно, идея неплоха: уже не нужно полностью
останавливать базу данных, чтобы выполнить ее архивацию. Перед созданием образа
базы данных со снапшота нужно лишь притормозить все файловые операции и скинуть
буферы из памяти на диск так, чтобы не было операций, «сфотографированных»
посередине выполнения. Для этого XP предоставляет сервис VSS, основанный на
COM.
Производители могут использовать различные
термины для обозначения снапшотов: срез, теневая копия, виртуальный образ, но
общая идея их работы от этого не меняется. Мне нравится понятие снимок. В
операционной системе Windows (версии NT, 2000, XP, 2003) эта технология
реализована специальными драйверами снапшотов от различных производителей. Microsoft
начал поддерживать эту технологию в Windows XP и 2003 в виде сервиса Volume Shadow
Copy Service (VSS).