|
Ниже я постараюсь описать важнейшие фоновые процессы Oracle и выполняемые ими задачи.
Вот почему важно это знать: когда вы
определите, какие из событий ожидания (wait
event) занимают наибольшие время, нужно будет
понять, как это исправить. И понимание
работы сервера - здесь ключевое звено.
Излагается для версии 9i

Database Writer Process (DBWR)
Отвечает за запись модифицированных или
"грязных" буферов из кэша базы данных
на диск. DBWR пишет на диск при достижении
одного из условий:
- Когда серверный процесс не может
обнаружить свободный блок в кэше, после
проверки порогового кол-ва буферов, он
оповещает DBWR о необходимости записи. DBWR
осуществляет запись асинхронно.
- Когда происходит timeout. Timeout составляет 3
сек.
- Когда происходит checkpoint (см. ниже). Checkpoint (вне
зависимости от того, полный он или
инкриментальный) должен
гарантировать, что все грязные буфера
сброшены на диск.
Log Writer Process (LGWR)
Отвечает за запись redo log буфера в redo log файл
на диске. LGWR записывает все redo записи из redo log
буфера с момента последней записи.
Redo log буфер имеет циклическую структуру.
Пока LGWR пишет на диск, серверные процессы
могут добавляет redo записи, которые были уже
сброшены на диск.
LGWR пишет на диск при достижении одного из
условий:
- Когда пользователь выполняет commit.
- Каждый 3 секунды
- Когда redo log буфер заполнен на 1/3
- Когда его просит DBWR. До того, как DBWR
запишет "грязный" блок на диск, все
redo записи, связанные с изменениями в этом
блоке должны быть записаны. Если DBWR
обнаруживает такие не сброшенные записи,
он оповещает LGWR и ждет завершения его
работы
с LGWR связано еще два понятия - fast commit и group
commit. Fast commit - механизм, которые позволяет DBWR
не сразу писать требуемые LGWR блоки на диск.
Т.е. после commit - redo записи сбрасываются, а вот
блоки нет. Group commit - реально запись может
производиться не для каждого commit, а сразу
для группы транзакций. Это позволяет
минимизировать число операций ввода-вывода.
CheckPoint Process (CKPT)
Отвечает за синхронизацию заголовков
файлов данных и control файла в момент
прохождения checkpoint. CKPT также оповещает DBWR и
LGWR и необходимости сброса блоков данных и
redo записей соответственно. CKPT записывает SCN checkpoint'а
в необходимые файлы данных.
Checkpoint происходит:
- Когда происходит переключение redo
log группы (или выполняется alter system switch
logfile)
- Когда администратор выполняет alter system
checkpoint
- Когда БД нормально закрывается
- Когда табличное пространство нормально
переводить в состояние OFFLINE или READONLY
- Когда начинается online бекап
- Когда сконфигурировано параметрами
LOG_CHECKPOINT_INTERVAL и LOG_CHECKPOINT_TIMEOUT или
FAST_START_MTTR_TARGET (последний предпочтительней
в 9i)
Читать главу
Process Architecture из Concept Guide.
|