Технология переключения журнала повторного выполнения

dbstalker, 10 октября

Из каких событий состоит процесс переключения журналов. Об этом кратко и упрощенно.

Начиная с версии 8.1, обработка контрольной точки происходит по новой методике (инкрементальная точка,низко приоритетная контролная точка), но для того, чтобы понять механизм переключения , достаточно материала изложенного ниже.

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

Процесс LGWR выполняет для переключения журнала следующие четыре этапа.

  1. Он выполняет транзакцию управляющего файла (controlfile transaction) для выбора следующего файла журнала (log file) и очистки соответствующей записи в управляющем файле. Обычно выбирается файл журнала с наименьшим порядковым номером журнала (log sequence number). Если процесс DBWn не завершит обработку контрольной точки, ранее вызванной переключением с этого файла журнала, или процесс ARCn не заархивирует его содержимое, переключение журнала останавливается.
  2. Он сбрасывает информацию из буфера журнала повторного выполнения на диск, а также, записывает номер системного изменения (SCN) последней записи повторного выполнения в журнальном файле в блок заголовка журнального файла. Как только эти записи завершены, процесс LGWR закрывает предыдущий журнальный файл.
  3. Затем он увеличивает значение SCN и выполняет вторую транзакцию управляющего файла, чтобы пометить следующий файл журнала как текущий (CURRENT), а предыдущий файл журнала как активный (ACTIVE). Как только DBWn завершит обработку контрольной точки, вызванной переключением журнала, статус этого журнального файла будет изменен на неактивный (INACTIVE). Для баз данных работающих в режиме ARCHIVELOG процесс LGWR также добавляет предыдущий журнальный файл в список архива через раздел записей файлов журнала в управляющем файле и, если включено автоматическое архивирование, запускает фоновый процесс ARCn для его архивирования.
  4. Затем открывает все файлы, входящие в новую группу файлов журнала, и записывает новый порядковый номер журнала и минимальный номер системного изменения (low SCN) в блок заголовка. Записи заголовка блока выполняются последовательно во все файлы группы, так как в запись входит уникальный номер файла группы.

И только после этого снова разрешается генерировать информацию повторного выполнения.

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

Но для версии 8.1 и выше переключение происходит немного иначе. При переключении журналов вносятся изменения в управляющий файл, в журнал с которого переключаются и в журнал на который переключаются. Но заголовки файлов данных не обновляются, так как переключение журнала вызывает низкоприоритетную контрольную точку, которая завершится только при выполнении очередной инкрементальной контрольной точки,переносящей свой хвост из журнала с которого оракл переключается. Вот тогда и обновятся заголовки файлов данных и в журнале оповещения можно получить сообщение о завершении контрольной точки вызванной переключением журналов.

Рекомендую для общего развития почитать статьи по контрольной точке.

В статье использовались материалы http://baks.gaz.ru/oradoc/ora/ora336.htm

 

Новый комментарий

Я не спамер: введите суму 2+7



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум