Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Механизмы СУБД для поддержки транзакций




Поддержка транзакций требует значительных ресурсов и существенно (во много раз!) замедляет производительность сервера. Однако в современных условиях допустить потерю или порчу информации в базе данных абсолютно недопустимо, поэтому правила АСИД реализуются всеми СУБД. Несмотря на особенности конкретных реализаций, имеется ряд универсальных механизмов поддержки транзакций.

Мы рассмотрим эти обшие механизмы, добавив немного конкретных сведений по их воплощению в Oracle.

Журнализация транзакций

Ведение журналов транзакций преследует одновременно две цели:

1). Возможность отката транзакции.

2). Восстановление БД в случае аварийных ситуаций или сбоев.

 

Сервер ведёт 2 вида журналов транзакций:

Undo-журналы:

используются для отката и ведутся для каждой транзакции отдельно. Как только очередная транзакция зафиксирована или откачена, то информация из соответствующего Undo-журнала удаляется.

В Oracle такие журналы иначе называются сегментами отката, они располагаются в отдельном табличном пространстве и содержат полную информацию о каждой транзакции, достаточную для ее успешного отката. Рекомендуемое количество Undo журналов в базе данных, которые должны быть в наличии, равно n/2 (где n – количество одновременно работающих пользователей).

Redo-журнал

необходим для повторного выполнения транзакций при восстановлении данных. Это единый системный журнал, в который записываются результаты всех зафиксированных транзакций.

В аварийной ситуации, приведшей к порче данных, они восстанавливаются по резервной копии. Но резервная копия была снята в какой-то момент времени в прошлом. Все транзакции, которые прошли в системе после снятия последней резервной копии, восстанавливаются по Redo-журналу.

Такой механизм полностью гарантирует выполнение правила Долговечность из аббревиатуры АСИД. Для того, чтобы гарантировать возможность безусловного восстановления всех зафиксированных транзакций, принято правило упреждающей записи в журнал транзакций – по команде COMMIT результаты транзакции сначала заносятся в Redo-журнал, а потом (возможно не сразу), записываются в табличное пространство.

Кратко рассмотрим, как организовано ведение системного журнала транзакций в Oracle. С учетом огромного количества информации, которая постоянно записывается в этот журнал в процессе нормальной работы информационной системы, он состоит из двух частей – оперативной и архивной. Оперативная часть, в свою очередь, содержит два журнала (для повышения надежности каждый из журналов обычно ведется в двух экземплярах). В каждый момент времени один из журналов заполняется информацией о транзакциях сервера, а другой в это время копируется в архивный журнал, который организован на отдельном носителе большого объема. Этот процесс схематически показан на рис. 5.2

 

 

Рис. 5.2 – заполнение журнала транзакций в Oracle

Поделиться:





Читайте также:

II тип гиперчувствительности (цитотоксический). Механизмы развития (комплементзависимый цитолиз, фагоцитоз, антителозависимая клеточная цитотоксичность) и клинические проявления.
III. Порядок подачи документов и осуществления выплаты мер социальной поддержки (в денежном выражении) для приобретения твердого бытового топлива отдельным категориям граждан
L.3.2. Процессы присоединения частиц. Механизмы роста.
S: Механизмы инфицирования условно-патогенными возбудителями
S: Механизмы развития спазматического кашля у больного коклюшем
Аккомодация глаза, механизмы аккомодации.
Артериальные гипертензии, ее виды, основные патогенетические механизмы нейрогенной гипертензии.
В связи с этим, можно составить обобщенную классификацию, положив в основу механизмы упрочнения.
Виды и механизмы взаимодействия лекарственных средств
Вопрос 69 Меры экономической поддержки, дифференцированно применяемые к конкретным промышленным предприятиям






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...