Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные понятия резервного копирования — до 30 мин

Текст лекции

Ключевые вопросы

Лекция № 14. Принципы резервного копирования

 

Продолжительность: 2 часа (90 мин.)

 

· Основные понятия резервного копирования.

· Журнальное протоколирование в SQL Server.

· Контрольные точки.

· Методы резервного копирования.

 

 

Операции резервного копирования (backup) и восстановления (restore) связаны друг с другом и предполагают сохранение информации базы данных для использования в будущем – аналогично операциям резервного копирования и восстановления, которые могут выполняться операционной системой. При резервном копировании данные копируются из базы данных и сохраняются в другом месте. Резервное копирование операционной системы и резервное копирование базы данных отличаются в том, что в первом случае происходит сохранение отдельных файлов, а во втором – сохранение всей базы данных. Обычно база данных совместно используется многими пользователями, в то время как многие файлы операционной системы принадлежат отдельным пользователям. Тем самым при резервном копировании базы данных создается резервная копия данных сразу всех пользователей. Поскольку SQL Server предназначен для максимально возможной непрерывной эксплуатации, процесс резервного копирования может выполняться во время работы базы данных и даже в то время, как пользователи осуществляют доступ к базе данных.

При восстановлении данных из резервной копии они копируются назад в базу данных. Не путайте восстановление (restore) с воспроизведением (регенерацией) (recovery): это две различные операции. Под восстановлением здесь понимается возврат к состоянию базы данных на момент создания резервной копии, а под воспроизведением (регенерацией) – возврат к состоянию базы данных на момент аварии за счет воспроизведения транзакций, что будет подробно описано ниже.

В отличие от процесса резервного копирования процесс восстановления не может выполняться во время работы SQL Server. Кроме того, таблицу нельзя восстановить отдельно. Если один пользователь теряет часть данных в базе данных, потерянные данные восстановить непросто, поскольку операция восстановления восстанавливает всю базу данных или какую-то ее часть. Выделение данных отдельного пользователя из всех данных базы данных может оказаться затруднительным.

Воспроизведение (регенерация) (recovery) – это способность системы управления реляционной базой данных (СУРБД – RDBMS) уцелеть после аварии системы и воспроизвести выполненные транзакции. SQL Server не выполняет запись на диск после каждого изменения, вносимого в базу данных. Если бы это было так, то большая система (например, банковская) работала бы намного медленнее, поскольку в каждой транзакции приходилось бы ждать, пока не закончится очередная запись, создающая задержку в системе.

Именно задержки при записи изменений на диск приводят к тому, что база данных после отказа системы может остаться в запорченном состоянии из-за того, что некоторые изменения, внесенные в базу данных, могли быть не записаны на диск, а изменения, записанные на диск, могли быть не зафиксированы. Для поддержки целостности базы данных SQL Server протоколирует все изменения в журнале транзакций. (Журнал транзакций подробно описывается в разделе "Журнал транзакций" ниже в этой лекции.) При запуске SQL Server после отказа системы журнал транзакций используется для повторного исполнения (воспроизведения) транзакций, которые были фиксированы, но не записаны на диск, и отката (отмены результатов) транзакций, которые не были фиксированы на момент аварии системы. Такой подход гарантирует точность данных.

SQL Server должен быть подготовлен к обработке нескольких типов транзакций в процессе воспроизведения, включая следующие транзакции.

· Транзакции, содержащие только запросы. Никакого воспроизведения не требуется.

· Транзакции, которые внесли изменения в данные базы данных и были фиксированы, но не были записаны на диск. Во время воспроизведения SQL Server читает страницы данных с диска, снова вносит изменения и затем перезаписывает эти страницы на диск.

· Транзакции, которые внесли изменения в данные базы данных, были фиксированы и записаны на диск. Во время воспроизведения SQL Server определяет, что изменения были действительно записаны на диск. Никакого вмешательства не требуется.

· Транзакции, которые внесли изменения в данные базы данных, но не были фиксированы. Во время воспроизведения SQL Server использует журнал транзакций для отката (отмены) всех изменений, внесенных в страницы данных, и восстанавливает базу данных к состоянию, в котором она была до запуска этих транзакций.

При запуске SQL Server после аварии системы происходит автоматический запуск механизма воспроизведения. В этом механизме воспроизведения используется журнал транзакций, позволяющий определить, для каких транзакций требуется воспроизведение и для каких не нужно. Многие транзакции не требуют воспроизведения, но SQL Server должен прочитать журнал транзакций, чтобы определить, каким транзакциям это все же требуется. SQL Server начинает чтение журнала транзакций с момента создания последней контрольной точки.

В случае отказа системы, после которого требуется восстановление базы данных из файлов резервной копии (например, в случае потери диска), используются журнал транзакций и резервные копии журнала транзакций – для восстановления базы данных к состоянию, в котором она находилась на момент отказа. Таким образом, операции восстановления и воспроизведения обычно используются совместно друг с другом. В случае отказа источника питания, возможно, потребуется только воспроизведение.

Транзакция, откат которой выполняет SQL Server, идентична транзакции, которая заканчивается командой ROLLBACK. Эта транзакция аннулируется, и все соответствующие данные восстанавливаются к их исходному состоянию.

При повторном исполнении транзакции происходит воспроизведение изменений, внесенных в базу данных, но не записанных на диск, чтобы вернуть файлы данных к состоянию, в котором они находились на момент отказа. Иными словами, повторное исполнение фиксированных транзакций приводит базу данных к состоянию, в котором она находилась на момент отказа (за вычетом всех нефиксированных транзакций).

У вас могут возникнуть сомнения в необходимости резервного копирования, если вы используете такие технологии, как службы кластеризации Microsoft Cluster Services и отказоустойчивые дисковые подсистемы RAID. Тем не менее резервное копирование необходимо. Возможны различные случаи отказов вашей системы, а упомянутые системы поддержки отказоустойчивости и восстановления в случае отказов позволяют продолжить нормальную работу вашей системы не для всех случаев отказов. В этом разделе мы рассмотрим некоторые из потенциальных причин отказов и способы восстановления после этих отказов.

Некоторые из отказов могут носить умеренный характер; некоторые могут оказаться разрушительными. Чтобы понять важность резервного копирования, вы должны знать о трех основных категориях отказов: отказы оборудования, отказы программного обеспечения и человеческие ошибки.

Отказы оборудования – это, видимо, наиболее распространенный тип отказов, с которыми вы будете сталкиваться. Хотя эти отказы возникают менее часто по мере роста надежности компьютерного оборудования, но компоненты компьютеров все равно со временем становятся подвержены износу. Вот следующие типичные отказы оборудования.

· Отказ ЦП (CPU), памяти или шины (магистрали) данных. Эти отказы обычно приводят к аварийному отказу системы. После замены неисправного компонента и перезапуска системы SQL Server автоматически выполняет воспроизведение базы данных. Собственно база данных не затрагивается таким отказом, поэтому ее восстановление (с резервной копии) не требуется; SQL Server просто должен воспроизвести потерянные транзакции

· Отказ диска. Если вы используете отказоустойчивые матрицы RAID, то отказ этого типа, возможно, вообще не повлияет на состояние базы данных. Вы должны просто отремонтировать матрицу RAID. Но при отказе всей матрицы RAID единственной альтернативой является восстановление базы данных из резервной копии и использование резервных копий журнала транзакций для воспроизведения базы данных.

· Катастрофический отказ системы или полная потеря сервера. При разрушении всей системы из-за пожара или другой катастрофы, возможно, потребуется восстановление "с нуля". Потребуется новое оборудование, восстановление базы данных с резервной копии и воспроизведение базы данных с помощью резервных копий данных и журнала транзакций.

Отказы программного обеспечения происходят редко, и вашу систему, возможно, никогда не затронет такой тип отказов. Однако отказы программного обеспечения обычно более разрушительны, чем отказы оборудования, поскольку программное обеспечение содержит встроенные средства, которые сводят к минимуму отказы оборудования, а без этих защитных средств система подвержена аварийным отказам в случае отказов оборудования. Примером программного средства является журнал транзакций, предназначенный для восстановления систем после отказов оборудования. Существуют следующие типичные отказы программного обеспечения.

· Отказы операционной системы. Если отказ этого типа происходит в подсистеме ввода-вывода, то могут быть запорчены данные на диске. Если отказ не затрагивает базу данных, требуется только воспроизведение. Если запорчена информация в базе данных, то остается только восстановление базы данных с резервной копии.

· Отказ СУРБД (RDBMS). Возможен отказ самого SQL Server. Если отказ этого типа привел к порче данных, то должно быть выполнено восстановление базы данных с резервной копии и последующее воспроизведение. Если данные не запорчены, то для возврата системы к состоянию, в котором она находилась на момент отказа, требуется только автоматическое воспроизведение.

· Отказ приложения. Возможен отказ приложений, что может приводить к порче данных. Если отказ этого типа привел к порче данных, то должно быть выполнено восстановление базы данных с резервной копии (как и в случае отказа СУРБД). Если данные не запорчены, то восстановление не нужно; автоматическое воспроизведение вернет систему к состоянию, в котором она находилась на момент отказа. Возможно, вам потребуется получить исправление от поставщика этого приложения, чтобы не допустить повторения отказа этого типа.

Третьей основной категорией отказа является человеческая ошибка. Человеческие ошибки могут возникать в любой момент и без предупреждения. Они могут быть умеренными и серьезными. К сожалению ошибки этого типа могут оставаться незамеченными в течение дней или даже недель, что затрудняет процесс восстановления. Поддерживая хорошие взаимоотношения с вашими пользователями (включая средства связи), вы можете быстрее и проще выполнять восстановление после ошибок пользователей. Пользователи не должны опасаться вашей реакции и сразу сообщать вам об ошибке. Чем раньше вы узнаете об ошибке, тем лучше. Следующие отказы могут быть вызваны человеческой ошибкой:

· Потеря сервера с базой данных. К потере сервера могут приводить такие человеческие ошибки, как внезапное отключение питания или отключение сервера без закрытия SQL Server. Воспроизведение происходит автоматически при перезапуске SQL Server, но может потребовать определенного времени. Если отказ не затронул базу данных на диске, то восстановление не требуется.

· Потеря данных. Этот тип потери данных может быть вызван, например, случайным удалением файла данных, что привело к потере базы данных. Для возврата базы данных к ее состоянию до отказа должны быть выполнены операции восстановления и воспроизведения.

· Потеря таблицы или порча данных. Если таблица удалена по ошибке или ее данные изменены некорректным образом, то для возврата таблицы к ее исходному состоянию вы можете использовать восстановление и воспроизведение. Это может оказаться очень сложным делом, поскольку отдельную таблицу или небольшой набор данных нельзя просто восстановить из резервной копии.

 

<== предыдущая лекция | следующая лекция ==>
Пример организации системы безопасности приложений — до 40 мин | Журнальное протоколирование в SQL Server — до 20 мин
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 1101; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.