Характеристики режимов сведены в таблицу
Режим блокировки |
Объект |
Доступ хозяина |
Блокировка после |
Доступ конкурентов |
S |
Таблица |
Чтение |
S |
Чтение |
U |
Таблица |
Изменение |
X |
Чтение |
X |
Таблица Строка |
Чтение Изменение |
X |
Чтение – только для уровня UR |
Z |
Таблица Строка |
CREATE ALTER DROP |
Z |
Нет доступа |
Если приложению отказано в запрошенном доступе, то оно задерживается до разблокирования объекта. Во всех рассмотренных нами СУБД предусмотрена возможность установки предельного времени задержки: если за это время объект не разблокирован, то ожидающее приложение возобновляет выполнение, но тот его SQL-оператор, в котором содержался запрос на доступ, завершается с признаком ошибки. Крайними случаями являются установки нулевого или бесконечно большого времени ожидания.
При параллельной работе приложений возможны "неразрешимые" конфликты доступа – тупики. Методы обнаружения тупиков в СУБД – те же, что и в ОС. СУБД выполняет проверку наличия тупиковой ситуации при отказе в доступе или периодически через установленные интервалы времени (DB2). Ликвидация тупика состоит в отмене транзакции одного из приложений, участвующих в тупике. Объекты, заблокированные в этой транзакции, при этом освобождаются, и оставшееся приложение получает возможность удовлетворить свой запрос. Когда оставшееся приложение закончит свою транзакцию и освободит объекты, может быть повторно запущена отмененная транзакция. В качестве "жертвы" выбирается та транзакция, по которой был выполнен наименьший объем работы. Приложение, ставшее "жертвой" может определить свое состояние по коду ошибки, установленному при завершении SQL-оператора и повторить принудительно отмененную транзакцию.
4. Копирование и восстановление данных
4.1. Рестарт, резервное копирование, прокрутка вперед
Ошибки в данных и в структурах БД могут появляться вследствие: сбоев оборудования (например, аварийного отключения питания); порчи носителей; ошибочных действий интерактивных пользователей или приложений.
Восстановление данных после таких ошибок включает в себя три аспекта:
· рестарт системы;
· восстановление по резервной копии;
· восстановление с прокруткой вперед.
Рестарт системы должен обеспечивать восстановление рабочего состояния всех БД в случае неожиданного прекращения работы системы. При таком прекращении работы, во-первых, транзакции, выполняемые приложениями, могут быть прерваны на середине, во-вторых, некоторые уже завершенные транзакции могут быть еще не записаны на внешнюю память, а оставаться в кэше, такие транзакции будут потеряны при аварийном завершении. Следовательно, рестарт должен обеспечивать запись завершенных, но еще не записанных транзакций и отмену транзакций незавершенных.
Все СУБД предоставляют в распоряжение администратора утилиты резервного копирования БД. Резервная копия БД представляет собой файл или набор файлов на магнитном носителе (диске или ленте), сохраняющий инфраструктуру БД и все содержащиеся в ней данные. Копия не может быть непосредственно использована для работы с БД, для этих целей БД должна быть восстановлена из копии с помощью утилиты восстановления. Копирование гарантирует сохранность БД на случай порчи магнитных носителей. Копирование/восстановление может также применяться для переноса БД в другую инсталляцию на той же платформе. Копирование БД должно осуществляться администратором периодически, частота создания резервных копий зависит от важности БД и интенсивности ее обновления. Как правило, сохраняется не только последняя копия, но еще и несколько предшествующих. Для тех БД, которые не изменяются интенсивно, резервное копирование может оказаться достаточным средством для поддержания целостности. Для интенсивно изменяющихся БД этого недостаточно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.