Лекции 2011
.pdfНадежность баз данных
6.7
Индивидуальный откат незавершенной транзакции
Выбираем последнюю запись из журнала, соответствующую данной транзакции.
Производим обратное действие (например, INSERT -> DELETE)
Вносим запись в журнал о произведенных изменениях
Переходим к следующей записи (предыдущей по времени)
При успешном выполнении всех операции вносим запись об успешном окончании транзакции.
Надежность баз данных
6.8
Восстановление после мягкого сбоя
Транзакция 1
Транзакция 2
Транзакция 3
Транзакция 4
Транзакция 5
T |
T сбоя |
t |
физической согласов |
|
|
анности |
|
|
Надежность баз данных
6.9
Восстановление после мягкого сбоя
Для поддержания свойства долговечности транзакций:
Мы рассматриваем случай стратегии REDO Log
Успешно завершенные транзакции из извлекаются из лога и повторно выполняются (redo)
Незавершенные транзакции не фиксируются во внешней памяти, поэтому не требуется их отмены.
Таким образом:
Транзакция 1 уже зафиксирована во внешней памяти. Транзакции 2 и 4 повторяются по журналу Транзакции 3 и 5 не отображены во внешней памяти, т.к. они не
завершились. Дополнительных действий для них не требуется.
Надежность баз данных
6.10
Согласование журнала транзакций в MS SQL Server
Согласование журнала транзакций выполняется после успешного завершения транзакции.
Режим |
Описание |
Потери данных |
восстановления |
|
|
|
|
|
Simple |
Не требует бекапа журнала. Журнал ведется |
При сбое все данные с |
|
только для отката индивидуальных транзакций. |
последнего бекапа потеряются |
|
Автоматическая очистка журнала |
|
|
|
|
Full |
Требует бекапа журнала. Позволяет |
Если журнал не поврежден, то |
|
восстановить повреждения файлов данных |
данные восстановятся |
|
|
|
Bulk logged |
Сочетает преимущества Full режима с |
Данные о пакетных операциях |
|
возможностью высокопроизводительных |
не могут быть восстановлены |
|
пакетных вставок (bulk copy) |
|
|
|
|
Надежность баз данных
6.11
Согласование данных в MS SQL Server
Явный вызов операции CHECKPOINT
Пакетная операция (bulk-copy) в режиме Bulk-Logged
При остановке сервера
При добавлении/удалении файлов БД с помощью ALTER DATABASE
Журнал транзакций заполнен более чем на 70% в режиме log-truncate
Несогласованная часть журнала превысила размер, восстановление которого после сбоя, потребует времени больше чем задано в переменной recoveryinterval (в минутах)
Надежность баз данных
6.12
Восстановление после жесткого сбоя
Для поддержания свойства долговечности транзакций:
Необходимо иметь физическую копию данных
См. курс "Системы хранения данных"
Системы управления базами данных
7.1
Требования к СУБД:
Наличие стандартизованных средств проектирования структуры БД, устойчивой к проблемам хранения информации.
Наличие стандартизованных средств построения запросов и манипулирования данными.
Обеспечение вопросов безопасности и надежности
Высокая производительность и поддержка хранения больших объемов информации.
Масштабируемость системы.
.
Системы управления базами данных
7.2
Оптимизация производительности БД при проектировании
Проектирование нормализованной структуры БД. Денормализация необходимых сущностей.
Создание индексов. Индекс - объект БД, для ускорения доступа к данным по определенному атрибуту или набору атрибутов.
Оптимизация SQL запросов.
Оптимизация доступов клиентского ПО к БД.
Денормализация сущностей
7.3
Сравнение сильно и слабо нормализованных отношений
Критерий |
Слабая нормализация |
|
(1НФ, 2НФ) |
||
Адекватность базы |
Хуже |
|
данных, |
||
соответствующей |
|
|
Удобство разработки и |
Сложнее |
|
сопровождения |
||
|
||
Скорость операций |
Медленнее |
|
вставки, обновления, |
||
удаления |
|
|
Скорость операций |
Быстрее |
|
выборки |
||
|
Сильная нормализация (3НФ, НФБК)
Лучше
Легче
Быстрее
Медленнее
Система индексации в MS SQL Server
7.4
Структура физического представления БД в MS SQL Server
В данном разделе использованы картинки из статьи Lefteris Karafilis http://www.itbully.com/articles/sql-indexing-and-performance-part-1-sql-storage-and-indexing