Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-7 - Защита данных в СУБД

.pdf
Скачиваний:
17
Добавлен:
28.06.2021
Размер:
425.61 Кб
Скачать

5. Ошибка пользователя

Ошибка пользователя может проявляться самым разным образом.

Например, пользователь случайно удалил нужные записи или таблицы.

Ошибки пользователей могут потребовать участия человека (АБД) для восстановления базы данных в состояние на момент возникновения ошибки.

Средства физической защиты данных

В качестве средств физической защиты данных чаще всего применяются:

резервное копирование;

журналы транзакций (ЖТ).

Резервное копирование

Резервное копирование означает периодическое сохранение файлов БД на ВЗУ.

Резервное копирование выполняется тогда, когда состояние файлов БД является непротиворечивым.

Резервная копия не должна создаваться на том же диске, на котором находится сама БД, так как при аварии диска базу невозможно будет восстановить.

В случае сбоя (или аварии диска) БД восстанавливается на основе последней копии.

Виды резервных копий

Полная РК включает всю БД (все файлы, состав которых зависит от СУБД).

Частичная РК включает часть БД, определенную пользователем.

Инкрементная РК состоит из блоков (страниц), изменившихся со времени последнего резервного копирования. Создается быстрее полной РК (но после ее создания).

Создание частичной и инкрементной РК выполняется СУБД, создание полной РК – средствами СУБД или ОС. СУБД включает в РК только те блоки памяти, которые реально содержат данные.

Периодичность резервного копирования

Определяется АБД и зависит от многих факторов (объем БД, интенсивность запросов к БД, интенсивность обновления данных и пр.).

Как правило, используют следующую технологию проведения резервного копирования :

раз в неделю (день, месяц) осуществляется полное копирование;

раз в день (час, неделю) – частичное или инкрементное копирование.

Архив журнала транзакций

Все изменения, произведенные в данных после последнего резервного копирования, утрачиваются.

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

Журнал транзакций содержит сведения только о текущих транзакциях. После завершения транзакции информация о ней может быть перезаписана.

Необходимо вести архив журнала транзакций (сохранять копии файлов журнала транзакций вместе с РК БД).

Восстановление базы данных после сбоя (1)

Если нельзя восстановить БД после сбоя автоматически,

восстановление БД выполняется в два этапа:

перенос на рабочий диск РК базы данных (или той ее части, которая была повреждена);

перезапуск сервера БД с повторным проведением всех транзакций, зафиксированных после создания РК и до момента возникновения сбоя.

При наличии архива транзакций повторное проведение транзакций может проходить автоматически или под управлением пользователя.

Восстановление базы данных после сбоя (2)

Если произошел сбой процесса сервера, то требуется

перезагрузка сервера для восстановления БД.

При перезагрузке СУБД по содержимому системных файлов может узнать о произошедшем сбое и выполнить восстановление автоматически (если это возможно).

Восстановление БД в этой ситуации означает приведе-

ние всех данных в БД в согласованное состояние

откат незавершенных транзакций и проверку того, что все изменения, внесенные завершенными транзакциями, попали на диск.

Восстановление базы данных после сбоя (2)

Некоторые СУБД записывают в ЖТ информацию о незавершенных транзакциях, предвидя их завершение.

Не дожидаясь подтверждения транзакции, СУБД переписывает на диск модифицированные блоки при форми-

ровании контрольной точки.

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

Изменения попадают в ЖТ, а потом в БД, поэтому в любой момент времени БД может не содержать блоков, мо-

дифицированных подтвержденными транзакциями.

Восстановление базы данных после сбоя (3)

Поэтому в результате сбоя могут возникнуть две потенциальные ситуации:

Блоки, содержащие подтвержденные модификации, не были записаны в файлы данных, и эти изменения отражены лишь в ЖТ. Следовательно, ЖТ содержит подтвержденные данные, которые должны быть переписаны в файлы данных.

ЖТ и блоки данных содержат изменения, которые не были подтверждены. Изменения, внесенные неподтвержденными транзакциями, во время восстановления БД

должны быть удалены из файлов данных.