Лекция №23. Управление параллелизмом. Восстановление данных
Цель: рассмотреть понятие транзакции и параллелизма, рассмотреть возможности восстановления данных в БД
Транзакция – важнейшее средство механизмов защиты БД. Это объединение совокупности операций, в результате которых БД переходит из одного целостного состояния в другое. Суть состоит в том, что до завершения транзакции все манипуляции с данными проводятся вне БД, а занесение изменений в БД производится после завершения транзакции. Если транзакция не удалась, то СУБД производит откат.
Значение элемента в БД | 5 | 5 | 5 | 5 | 6 | 6 |
Транзакция 1 | чтение | → | +1 | → | запись | |
Транзакция 2 | | чтение | | +1 | → | запись |
Значение элемента для Т1 | 5 | 5 | 6 | 6 | 6 | 6 |
Значение элемента для Т2 | | 5 | 5 | 6 | 6 | 6 |
Блокировка – механизм, обеспечивающий захват транзакциями модифицированных элементов данных до завершения модификации. Объект блокировки – записи, отношения, атрибуты. Условия правильно оформленной транзакции (W1): перед обработкой объекта должна быть выполнена его блокировка; после обработки объект должен быть разблокирован; повторная блокировка не должна выполняться, если объект блокирован; неблокированный объект не должен разблокироваться. W1=11,…,a1M1,M1 W2=21,…,a2M2,M2 … WN=N1,…,aNMn,Mn
аij – расписание совокупности выполнения операций. Если элементы операции аij обязательно являются сложными, то такое расписание является последовательным. Сериализуемое расписание – результат эквивалентен последовательному расписанию. Легальное расписание – расписание правильно оформленных транзакций. Надежное расписание – расписание, для которого все легальные расписания сериализуемые. Двухфазная блокировка – все операции блокирования должны предшествовать операциям разблокирования. Достаточное условие сериализуемости расписаний – если (W1..Wn) являются правильно оформленными и для них выполняется двухфазная блокировка, то совокупность этих транзакций является надежной.
Восстановление данных в БД
Восстановление данных - процесс получения доступа к файлам, записанным на том или ином носителе информации, которые стали недоступными вследствие программного сбоя, выхода носителя из строя или ошибочных действий пользователя. Возможность восстановления данных при помощи специальных программ существует в том случае, если они не были перезаписаны другой информацией. Также во многом успех зависит от сохранности структуры файловой системы и работоспособности носителя вообще.
Можно выделить три основных уровня восстановления:
Оперативное восстановление, которое характеризуется возможностью восстановления на уровне отдельных транзакций при ненормальном окончании ситуации манипулирования данными (например, при ошибке в программе).
Промежуточное восстановление .Если возникают аномалии в работе системы (системно-программные ошибки, сбои программного обеспечения, не связанные с разрушением БД), то требуется восстановить состояние всех выполняемых на момент возникновения сбоя транзакций.
Длительное восстановление. При разрушении БД в результате дефекта на диске восстановление осуществляется с помощью копии БД. Затем воспроизводят результаты выполненных с момента снятия копии транзакций и возвращают систему в состояние на момент разрушения
Задание: изучить и составить конспект. Отчет прислать в виде фото
Лекция №24. Транзакция и восстановление. Откат и раскрутка транзакции
Прекращение выполнения транзакции вследствие появления сбоя нарушает целостность БД. Если результаты такого выполнения транзакции потеряны, то имеется возможность их воспроизведения на момент возникновения сбоя . Таким образом, понятие транзакции играет важную роль при восстановлении. Для восстановления целостности БД транзакции должны удовлетворять следующим требованиям:
необходимо, чтобы транзакция или выполнялась полностью, или не выполнялась совсем;
необходимо, чтобы транзакция допускала возможность возврата в первоначальное состояние, причем, для обеспечения независимого возврата транзакции в начальное состояние монопольную блокировку необходимо осуществлять до момента завершения изменения всех объектов;
необходимо иметь возможность воспроизведения процесса выполнения транзакции, причем, для обеспечения этого требования, совместную блокировку необходимо осуществлять до момента завершения просмотра данных всеми транзакциями.
В процессе выполнения любой транзакции наступает момент ее завершения . При этом все вычисления, сделанные транзакцией в ее рабочей области, должны быть закончены, копия результатов ее выполнения должна быть записана в системный журнал . Подобные действия называют операцией фиксации. При появлении сбоя целесообразнее осуществлять возврат не в начало транзакции, а в некоторое промежуточное положение. Точку, куда происходит такой возврат, называют точкой фиксации (контрольной точкой). Пользователь может установить в процессе выполнения транзакции произвольное количество таких точек . Если в ходе выполнения транзакции достигается точка фиксации, то СУБД автоматически осуществляет указанную выше операцию.
Откат и раскрутка транзакции
Основным средством, используемым при восстановлении, является системный журнал, в котором регистрируются все изменения, вносимые в БД каждой транзакцией . Возврат транзакции в начальное состояние состоит в аннулировании всех изменений, которые осуществлены в процессе выполнения транзакции . Такую операцию называют откатом . Для воспроизведения результатов выполнения транзакции можно, используя системный журнал, восстановить значения проведенных изменений в порядке их возникновения, либо выполнить транзакцию повторно . Воспроизведение результатов выполнения транзакции с использованием системного журнала называется раскруткой. Раскрутка является достаточно сложной, но необходимой операцией механизмов восстановления современных БД
Задание: изучить и составить конспект. Отчет прислать в виде фото