Шаг 80 - Архитектура БД Oracle ЧАСТЬ VII

Продолжаем разбирать фоновые процессы БД. Фоновый процесс Dnnn.

Как мы уже отмечали, если нет то, остановимся на этом. Все процессы сервера, могут закрепляться за определенными пользовательскими процессами, либо использоваться несколькими процессами пользователя. В последнем случае они называются "разделяемые" (shared) процессами или серверами. Для работы с применением разделяемого сервера необходима установка Multi Threaded Server (MTS). При использовании разделяемых процессов, в системе должен существовать как минимум один процесс диспетчер. Процесс - диспетчер передает запросы пользователей в очередь ГСО и возвращает ответы сервера, соответствующему процессу пользователя.

Фоновый процесс Dnnn, где как вы поняли nnn - это число, определяется по количеству, параметром MTS_DISPATCHERS. Он указывает протокол, который будет использован диспетчером и количество процессов.

Например:

MTS_DISPATCHERS = "tcp, 4"
MTS_DISPATCHERS = "spx, 2"

Либо вот так:

MTS_DISPATCHERS = ("tcp, 4" , "spx, 2")

Следующий процесс ARCH - (Archiver - "архиватор"). Отвечает за копирование полностью заполненного оперативного файла журнала транзакций, в архивные файлы журнала транзакций. Для того, чтобы запустить это процесс нужно установить, как вы уже догадались параметр ARCHIVE_LOG_START в файле init.ora в значение TRUE. И тогда указанный процесс будет выполнять архивацию, журналов транзакций.

Следующий процесс CKPT - это как раз тот процесс, о котором мы упоминали в прошлый раз. Он непосредственно отвечает за обработку контрольных точек. Обычно такая обработка, обновление файлов данных и заголовка контрольных файлов - выполняется процессом LGWR. А вот CKPT необходим для того, чтобы снизить нагрузку на LGWR. Вот собственно так он и работает.

Следующий процесс RECO - (recovery). Отвечает за восстановление незавершенных транзакций. Он запускается автоматически, если система сконфигурирована для распределенных транзакций. За это отвечает параметр DISTRIBUTED_TRANSACTION в файле init.ora. Когда возникает подозрительная транзакция, процесс RECO выполняет свою работу без вмешательства администратора БД. В общем, самостоятельный парень! :)

Следующий процесс SNPn - выполняет автоматическое обновление снимков БД (snapshot). Так же запускает процедуры в соответствии с расписанием, зафиксированным в пакете DBMS_JOB. Параметр JOB_QUEUE_PROCESS в файле init.ora задает количество запускаемых процессов SNPn, а параметр JOB_QUEUE_INTERVAL длительность в течении, которой процесс "засыпает" прежде чем выполнить задание.

Следующий процесс LCKn - в среде производящей параллельное обслуживание нескольких экземпляров БД на LCKn возлагается ответственность за координацию блокировок устанавливаемых разными экземплярами БД. Если в системе нет параллельного обслуживания, то запуск LCKn не нужен. Да и ответственности меньше.

Последнее, процесс Pnnn - это процесс параллельных запросов. Сервер Oracle запускает и останавливает процессы Pnnn в зависимости от активности работы БД и настройки опций параллельных запросов. Эти процессы принимают участие в формировании компонентов БД. Количество запущенных процессов, определяется параметрами PARALLEL_MIN_SERVERS и PARALLEL_MAX_SERVERS соответственно. Вот таким образом мы немного разобрались с фоновыми процессами БД Oracle. Я думаю, что данный материал будет для вас полезен и наведет на дальнейшее более глубокое изучение сервера Oracle. :)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 9.12.2003