Процесс Записи в базу данных (DBWn)

Рубрика: Архитектура БД Oracle

Записывает измененные (заполненные) буферы в буферном кэше БД на диск:

  • Асинхронно, выполняя другую обработку

  • Чтобы достигнуть следующей контрольной точки

Процесс Записи в базу данных (DBWn)

Процесс записи в базу данных (DBWn) записывает содержимое буферов в файлы данных. Процессы DBWn ответственны за запись модифицированных (измененных) буферов в буферном кэше базы данных на диск. Хотя один процесс записи Базы данных (DBW0) достаточен для большинства систем, можно сконфигурировать дополнительные процессы (DBW1 - DBW9 и DBWa - DBWz), чтобы улучшить производительность записи, если Ваша система изменяет данные с большой скоростью. Эти дополнительные процессы DBWn бесполезны на однопроцессорных системах.

Когда буфер в буферном кэше базы данных модифицируется, он отмечается как измененный и добавляется в начало очереди контрольных точек, которая отсортирована по номеру SCN. Поэтому этот порядок соответствует порядку повторов, которые записываются в журналы повторов для этих измененных буферов. Когда число доступных буферов в буферном кэше уменьшается ниже внутреннего порога (до такой степени, что серверным процессам становится трудно получать доступные буферы), DBWn записывает редко используемые буферы с конца списка LRU в файлы данных, так что процессы могут заменить буферы, когда они нуждаются в них. DBWn также записывает буферы с конца очереди контрольных точек, чтобы осуществлять переход к новой контрольной точке.

SGA содержит структуру памяти, у которой есть байтовый адрес повторов (RBA) позиции в потоке повторов, с которой должно начаться восстановление в случае отказа экземпляра. Эта структура действует как указатель на повтор и пишется в контрольный файл процессом CKPT каждые три секунды. Поскольку DBWn пишет измененные буферы в порядке SCN, и потому что повторы также находятся в порядке SCN, каждый раз, когда DBWn записывает измененные буферы из списка LRUW, он также продвигает указатель, содержащийся в структуре памяти SGA так, чтобы восстановление экземпляра (при необходимости) начинало читать повторы из приблизительно корректного местоположения, что позволяет избежать ненужные операции ввода-вывода. Это называется инкрементной установкой контрольных точек.

Примечание: Есть другие случаи, когда DBWn может осуществлять запись (например, когда табличные пространства делаются доступными только для чтения или помещаются офлайн). В таких случаях не устанавливается никакой инкрементной контрольной точки, потому что измененные буферы, принадлежащие только соответствующим файлам данных, записываются в базу данных вне связи с порядком SCN.

Алгоритм LRU сохраняет наиболее часто используемые блоки в буферном кэше, чтобы минимизировать чтение с диска. Опция CACHE может быть применена к таблицам, чтобы сохранить блоки в кэше на более длительное время.

Параметр инициализации DB_WRITER_PROCESSES указывает число процессов DBWn. Максимальное число процессов DBWn 36. Если он не указывается пользователем во время запуска, База данных Oracle определяет, как установить DB_WRITER_PROCESSES на основании числа ЦП и групп процессоров.

Процесс DBWn записывает измененные буферы га диск при следующих условиях:

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

  • DBWn записывает буферы, чтобы перейти к следующей контрольной точке, которая является позицией в потоке повторов (журнале), с которой начинается восстановление экземпляра. Эта позиция журнала определяется самым старым заполненным буфером в буферном кэше.

Во всех случаях DBWn выполняет запись в пакетном режиме (по несколько блоков), чтобы повысить эффективность. Число блоков, записываемых в пакетоном режиме, зависит от операционной системы.

Далее: Определение привилегированных групп операционной системы. Указание Местоположения Установки

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)