Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_Infa.doc
Скачиваний:
170
Добавлен:
20.03.2016
Размер:
2.75 Mб
Скачать

10.3. Восстановление носителей

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

Таким образом, восстановление подразумевает наличие утилиты дамп/восстановление. Дамп-часть этой утилиты используется для сохранения резервной копии. Такие копии могут сохраняться либо на ленте, либо другим архивным способом. После отказа носителей восстановительная часть утилиты используется для создания БД со специализированной резервной копии.

10.4. Параллелизм

Параллелизм означает возможность одновременной обработки в СУБД многих транзакций с доступом к одним и тем же данным, причем в одно и то же время. В такой системе для корректной обработки параллельных транзакций без возникновения конфликтных ситуаций необходимо использовать некоторый метод управления параллелизмом.

Три проблемы параллелизма

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

потеря результатов обновления;

незафиксированная зависимость;

несовместимый анализ.

Проблема потери результатов обновления

Рассмотрим ситуацию, показанную на рис.10.3.

Транзакция А

Время

Транзакция В

Извлечение кортежа p

t1

t2

Извлечение кортежа p

Обновление кортежа p

t3

t4

Обновление кортежа p

Рис.10.3. Потеря в момент времени t4 результатов обновления, выполненного транзакцией А

Результат операции обновления, выполненной транзакцией А, будет утерян, поскольку в момент времени t4 она не будет учтена и потому будет «отменена» операцией обновления, выполненной транзакцией В.

Проблема незафиксированной зависимости

Проблема незафиксированной зависимости появляется, если с помощью некоторой транзакции осуществляется извлечение (или, что еще хуже, обновление) некоторого кортежа, который в данный момент обновляется другой транзакцией, но это обновление еще не закончено. Таким образом, если обновление не завершено, существует некоторая вероятность того, что оно не будет завершено никогда. В таком случае в первой транзакции будут принимать участие данные, которых больше не существует (в том смысле, что они «никогда» не существовали). Эта ситуация показана на рис.10.4 и рис.10.5.

Транзакция А

Время

Транзакция В

t1

Обновление кортежа p

Извлечение кортежа p

t2

t3

Отмена выполнения транзакции

Рис.10.4. Транзакция А становится зависимой от невыполненного изменения в момент времени t2

Транзакция А

Время

Транзакция В

t1

Обновление кортежа p

Обновление кортежа p

t2

t3

Отмена выполнения транзакции

Рис.5. Транзакция А обновляет невыполненное изменение в момент времени t2, и результаты этого обновления утрачиваются в момент времени t3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]