Кайрат-F2 » 31 мар 2011, 14:22
Технологии теневого копирования Microsoft стала внедрять в продукты несколько лет назад и вот о чем они. Да, Вы правы, часто файлы или базы очень большие. Представьте, что у Вас есть большая папка, в которой много других папок, внутри них много документов. Но все документы связаны, Ваши пользователи их редактируют, переносят из одной папки в другую.
Представьте, что Вы начали копировать: через 5 минут Вы скопировали папку А, через 10 минут перешли в папку Б. Раньше в папке Б был документ, но его перенесли в папку А пару минут назад. Что в итоге? В итоге этого документа в резервной копии не осталось вообще. Когда мы копировали папку А, документ был в папке Б. Когда дошли до папки Б, он оказался в папке А. В итоге Ваша резервная копия неполноценна. В ней нет важного документа. Хотя его даже никто не удалял. Это я на примере документов объясняю.
В базах данных проблемы похожие: положим в таблице "Контрагенты" у Вас внесена компания, а данные о ее покупках в отдельной таблице "Реализация". Теперь мы начали долгий путь копирования, через 5 минут сделали копию таблицы "Контрагенты", через 10 минут таблицы "Реализация". Вроде всё нормально. А нет. На 8 минуте менеджеры добавили еще одну компанию и продали им товар. Молодцы конечно, мы любим менеджеров.
Но так получилось, что нужно восстановить базу (сгорел сервер). Мы восстановили, но теперь у нас в воздухе зависла реализация непонятно кому. Но вроде всё восстановилось. Мы заводим еще одного покупателя. И вдруг оказывается, что он у нас купил пару дней назад крупный товар, как раз тогда когда делали копию. Почему? Потому что у него оказался внутренний номер, как у того покупателя, которого мы случайно не записали в базу.
Вот чтобы этого не было сделали теневое копирование. Есть техники теневого копирования. Когда начинается процесс копирования, делается "снимок" и копия делается с этого снимка. Т.е. если копирование будет идти даже час и целый час будет база изменяться, но мы всё равно скопируем ровно то, что было на начало копирования. И это замечательно.
Есть и другой подход, когда по завершению копирования в него будут добавлены изменения, но это редкий подход. Это всё я описываю в теории. На деле в разных операционных системах это по-разному. Тот же MSSQL на деле не сам это реализует. Он использует возможности операционной системы.
И кстати, Вы можете и для 1С сделать такое. Можно написать сценарий резервного копирования с использованием теневого копирования. На деле это не так сложно. Просто наши 1С-ники полагаются больше на стандартные поставки и известные практики. Но даже если у Вас Windows Server 2003, то Вы вполне можете настроить регулярное теневое копирование баз 1С и при этом 1С необязательно выключать.
Теневое копирование это еще одна из многих классных, потрясающих вещей, которые надо знать, надо понимать, надо пользоваться. Она бесплатно идет уже кучу лет не только в Windows Server, но даже в Windows XP. Но проблема в том, что даже те, кто постоянно должны это знать и владеть не пользуются этим.