Способы создания архивных копий базы данных. Самый простой способ - архивировать базу данных при переполнении журнала. В журнале вводится так называемая "желтая зона", при достижении которой образование новых транзакций временно блокируется. Когда все транзакции закончатся, и следовательно, база данных придет в согласованное состояние, можно производить ее архивацию, после чего начинать заполнять журнал заново.
Можно выполнять архивацию базы данных реже, чем переполняется журнал. При такой архивации нужно архивировать и сам журнал. Но поскольку такой архивированный журнал требуется только для воссоздания архивной копии базы данных, журнальная информация при архивации может быть существенно сжата.
8 Механизмы упорядочиваемости транзакций
8.1 Сериализация транзакций
Для того, чтобы добиться изолированности транзакций и избежать проблем параллелизма, в СУБД должны использоваться какие-либо методы регулирования совместного выполнения транзакций.
План (способ) выполнения набора транзакций называется сериальным, если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций.
Набор из нескольких транзакций, элементарные операции которых чередуются друг с другом, называется смесью транзакций. Последовательность, в которой выполняются элементарные операции заданного набора транзакций, называется графиком запуска набора транзакций. Элементарные операции различных транзакций смогут выполняться в произвольной очередности при соблюдении строгой очередности операций внутри каждой транзакции. Очевидно, что для заданного набора транзакций существует достаточно много графиков запуска, из которых выбирается оптимальный график.
Для того чтобы избежать проблем параллелизма, необходимо выработать некоторую методику управления параллельным и согласованным выполнением транзакций. Такая методика называется сериализацией транзакций и полностью отвечает свойству изоляции.
Эта методика должна удовлетворять следующим правилам:
− в ходе выполнения транзакции пользователь видит только согласованные данные. Пользователь не должен видеть несогласованных промежуточных данных;
− когда в БД две транзакции выполняются параллельно, то СУБД гарантированно поддерживает принцип независимого выполнения транзакций, который гласит, что результаты выполнения транзакций будут такими же, как если бы вначале выполнялась транзакция 1, а потом транзакция 2, или наоборот, сначала транзакция 2, а потом транзакция 1.
Проблемой может стать выбор метода сериализации набора транзакций, который бы не слишком ограничивал их параллельность. Самым тривиальным решением является действительно последовательное выполнение транзакций. Но существуют ситуации сохранения сериальности. Примерами могут служить только читающие транзакции, а также те, в которых можно выполнять операторы разных транзакций в любом порядке, то есть транзакции, не конфликтующие по объектам базы данных.
Do'stlaringiz bilan baham: |