КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Резервное копирование. Типы резервного копирования SQL Server 2000 (2003).Как бы хорошо ни работал администратор, нельзя дать стопроцентную гарантию надежности системы. В функционировании любой системы рано или поздно случаются сбои, не всегда связанные с плохой работой администратора. Во многих случаях сбои происходят по причинам, от него не зависящим. Например, вряд ли можно предсказать, когда произойдет скачок напряжения или в здании случится пожар. Также следует учесть сбои в аппаратной части компьютера, например, выход из строя жесткого диска. Кроме того, нельзя не брать в расчет стихийные бедствия, такие, как землетрясения, ураганы, наводнения и т. д. Администратор SQL Server 2000 имеет в своем распоряжении множество средств обеспечения надежности системы: - резервное копирование данных и журнала транзакций; - использование резервного сервера; - создание кластеров; - возможности технологий RAID (технология дублирования, зеркального отображения и чередования с контролем четности), предназначенные для обеспечения отказоустойчивости дисковых массивов. Каждое из приведенных средств имеет свои недостатки и преимущества. Например, технологии RAID (Redundant Array of Independent Disks) обеспечивают работоспособность системы в случае небольших сбоев в функционировании дисковой системы, но при выходе из строя всего компьютера на помощь приходит резервный сервер или кластер. Когда же все серверы повреждены и нет возможности восстановить данные ни с одного из них, то остается лишь обратиться к резервной копии. Упомянутые средства обеспечения надежности системы не исключают друг друга. Наоборот, желательно применять их совместно. Например, информационная система предприятия может работать на главном сервере совместно с резервным, и на каждом из них может использоваться чередование дисков с контролем четности. Кроме того, необходимо периодически создавать резервную копию данных, чтобы иметь возможность восстановить информацию при выходе из строя обоих серверов баз данных (например, в случае пожара или природного катаклизма). Резервное копирование (back up) является одним из самых надежных способов защиты данных от потери. Технологии RAID обеспечивают функционирование системы при выходе из строя одного из жестких дисков или даже дискового контроллера. Но они бессильны в случае выхода из строя оперативной памяти центрального процессора или сетевой карты. В этом случае пользователи не смогут получить с сервера данные. Решением проблемы будет использование резервного сервера или кластера. Но предположим, что информация на всех серверах была уничтожена. Чтобы иметь возможность восстановить данные, необходимо иметь полную их копию. Такая копия данных называется резервной (backup), и ни пользователи, ни система не имеют к ней доступа. Необходимо отметить, что резервная копия имеет значительно меньший размер по сравнению с исходной базой данных. Процесс создания резервной копии также называют архивированием. При потере данных резервная копия переносится в систему, и пользователи могут снова работать с информацией. Конечно, система будет восстановлена в том состоянии, в котором она была во время создания резервной копии. Поэтому необходимо внимательно отнестись к вопросу частоты создания резервной копии. Если данные обновляются интенсивно, то администратор должен выполнять резервное копирование достаточно часто, чтобы в случае повреждения данных восстановить информацию с наименьшими потерями. Если же данные обновляются редко или вовсе не обновляются, то резервирование производиться реже. Часто архивирование используется для переноса баз данных между серверами SQL Server 2000. База данных архивируется на исходном сервере на какой-нибудь носитель, который затем рассылается на другие серверы. На удаленном сервере администратор восстанавливает базу данных и может успешно с ней работать. Если база данных имеет большой размер и интенсивно обновляется, то процесс создания резервной копии всех данных может занять очень много времени. Кроме того, если при создании резервной копии пользователи продолжают работать с данными, то к моменту завершения резервирования уже скопированные данные могут быть изменены, что способно привести к нарушению целостности информации. Во избежание подобных проблем SQL Server 2000 автоматически отслеживает изменения в уже скопированных данных и обновляет их. Однако если резервирование длится слишком долго, то пользователи не смогут полноценно работать с данными. Необходимо каким-либо образом сократить время архивирования, гарантируя при этом полноту резервной копии. SQL Server 2000 поддерживает различные типы резервного копирования, позволяя администратору очень гибко управлять данным процессом. Существует полная копия; разностная копия; копия журнала транзакций; резервное копирование файлов и групп файлов. Полная копия базы данных (database backup) является стандартным типом резервного копирования. Этот тип резервирования предполагает полное копирование всей информации, имеющейся в базе данных. В качестве приемника данных может выступать либо обычный файл, либо специальное устройство резервного копирования, такое, как стример, магнитооптический или zip-диск. Полное копирование данных имеет свои недостатки и преимущества. К последним можно отнести то, что для приведения системы в рабочее состояние достаточно восстановить лишь один архив, так как вся необходимая информация содержится в единственной резервной копии. К недостаткам же относится длительное время создания архива даже в случае внесения незначительных изменений в базу данных. Независимо от того, какая часть информации была изменена (или не изменена вовсе), создание архива будет занимать всегда одинаковое время. При работе с большими базами данных это является существенным недостатком, так как вследствие значительного времени создания архива приходится выполнять резервное копирование раз в сутки, обычно ночью, или даже раз в неделю, в выходной день. Актуальность таких архивов низка. Предположим, что создание резервных копий производится раз в неделю, в выходные дни, а сбой происходит в пятницу. Администратор сможет восстановить систему, но изменения, производимые пользователями в течение недели, будут потеряны. Поэтому полное копирование данных необходимо комбинировать с дифференциальным копированием и копированием журнала транзакций, речь о которых пойдет в следующих разделах. Как уже говорилось, SQL Server 2000 автоматически отслеживает изменения в уже скопированных данных и обновляет их в архиве. В результате к моменту завершения резервного копирования состояние данных в архиве будет соответствовать информации в исходной базе данных. Это гарантирует целостность и достоверность данных. Существует ряд операций, которые не могут выполняться одновременно с процессом создания резервной копии. Список этих операций следующий: - создание и удаление файлов базы данных; - создание индексов; - выполнение операций, не регистрируемых в журнале транзакций, и др. Если при начале создания резервной копии запускается одна из указанных операций, то попытка завершится неудачей и пользователь получит соответствующее сообщение об ошибке. Если же во время создания архива система или пользователь пытаются выполнить запрещенные операции, то они отменяются, а процесс резервирования продолжается. Разностное, или дифференциальное, резервное копирование (differential database backup) было разработано с целью уменьшения времени, необходимого для получения копии базы данных. В основе дифференциальной копии лежит отслеживание изменений, вносимых пользователями в базу данных. Создание дифференциальной копии состоит из двух этапов: создание полной копии данных; создание собственно дифференциальной копии. Полная копия базы данных является отправной точкой, начиная с которой система может отслеживать изменения. Изменения отслеживаются на уровне страниц. Каждая страница имеет флаг архивирования, который сбрасывается при создании полной копии и устанавливается, если данные на странице были изменены. Это можно сравнить с атрибутом архивирования для файлов. При создании резервной копии атрибут снимается, но если файл изменяется, то система автоматически устанавливает его. Программа резервного копирования ищет все файлы с установленным атрибутом архивирования и копирует их. Аналогично ведет себя и подсистема резервного копирования SQL Server 2000. Однако необходимо отметить, что флаг архивирования для страниц данных снимается только при создании полной копии данных. Это означает, что при создании последовательно нескольких дифференциальных копий каждая следующая будет полностью включать страницы, которые были включены в предыдущую копию, плюс все страницы, измененные со времени создания предыдущей копии. Поэтому актуальна только самая последняя дифференциальная копия. Достаточно применить ее после восстановления полной резервной копии, чтобы целиком восстановить систему. В больших базах данных с относительно небольшим количеством изменений дифференциальное копирование является наиболее оптимальным методом резервирования данных. Администратор может раз в неделю (обычно в выходные) создавать полную копию данных, а каждой ночью (или дополнительно еще и днем) создавать дифференциальную копию. Ежедневное создание полной копии было бы невозможно из-за того, что на это уходит очень много времени. Создание же дифференциальной копии требует значительно меньше времени.
|