Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_BD_Full.docx
Скачиваний:
35
Добавлен:
13.09.2019
Размер:
945.28 Кб
Скачать
  1. Процессы. 7 основных фоновых процессов Oracle

Процесс (или нить) - это механизм выполнения программного кода, который может выполняться незаметно для пользователя. Кроме того, несколько процессов могут работать одновременно. В разных операционных системах и на разных платформах они могут называться по-разному (процессы, нити, демоны и т.д.), но, в сущности, одинаковы. СУРБД Oracle работает с двумя видами процессов: пользовательские процессы и процессы Oracle (также известные как фоновые или теневые). В некоторых операционных системах (таких как Windows NT) процессы действительно являются нитями, но, чтобы не путаться в понятиях, будем называть их просто "процессами".

Пользовательские процессы

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

Процессы Oracle

Процессы Oracle выполняют функции для пользовательских процессов. Могут быть разбиты на две группы: серверные процессы (выполняющие функции для активных процессов) и фоновые процессы (выполняют функции СУРБД в целом). Серверные процессы (теневые) взаимодействуют между процессами пользовательскими и Oracle, исполняя пользовательские запросы. Например, если пользовательский процесс запрашивает часть данных, которых еще нет в SGA, то теневой процесс несет ответственность за чтение блоков данных из БД в SGA.

Между пользовательским и теневым процессом возникает связь один-к-одному (конфигурация выделенного сервера), хотя один теневой процесс может одновременно взаимодействовать с несколькими пользовательскими (конфигурация мультинитевого сервера), экономя системные ресурсы.

Фоновые процессы используются для выполнения разнообразных задач СУРБД Oracle. Эти задачи варьируются от взаимодействия с экземпляром Oracle до записи грязных блоков на диск. Далее представлены девять фоновых процессов Oracle:

  1. DBWR (DataBase WRiter) - ответственен за запись грязных блоков из блоковых буферов БД на диск. Когда транзакция изменяет информацию в блоке данных, этот блок данных не обязан быть немедленно записан на диск. Следовательно, DBWR может записывать данные на диск способом более эффективным, чем запись всех изменений по отдельности. DBWR обычно записывает данные тогда, когда они уже нужны для чтения. Записываются также те данные, которые были недавно использованы. Для систем с асинхронным вводом/выводом достаточно одного процесса DBWR. Для остальных систем можно значительно увеличить производительность, создав несколько процессов DBWR.

  2. LGWR (LoG WRiter) - записывает данные из журнального буфера в журнал изменений.

  3. CKPT (ChecK PoinT) - дает сигнал процессам DBWR о необходимости выполнения контрольной точки и обновления всех файлов данных и управляющих файлов. Контрольная точка - это событие, когда все измененные буферы БД записываются на диск. CKPT - это не обязательный процесс. Если процесс CKPT не запущен, то его работу принимает на себя LGWR.

  4. PMON (Process MONitor) - используется для поддержания остальных процессов и перезапуска преждевременно погибших :) Также PMON очищает неиспользуемые области буферов и освобождает те ресурсы, которые могут быть еще заняты. Ответственен за перезапуск всех зависших процессов и диспетчеров.

  5. SMON (System MONitor) - выполняет восстановление экземпляра при его запуске. Это включает очистку временных сегментов и восстановление незаконченных транзакций. А также дефрагментирует БД.

  6. RECO (RECOvery) - очищает незаконченные транзакции в распределенной БД. Выполняет фиксацию или откат спорных транзакций.

  7. ARCH (ARCHiver) - копирует файлы журнала изменений при их заполнении. ARCH активен только в том случае, если СУРБД работает в режиме ARCHIVELOG. Если система не работает в этом режиме, то возможны ситуации, в которых не удастся восстановить систему после сбоя. В некоторых случаях все же можно работать и в режиме NOARCHIVELOG.

  8. LCKn (Parallel Server LoCK) - до десяти процессов (где n - от 0 до 9) могут использоваться при работе сервера в параллельном режиме. Выполняют функции межэкземплярной блокировки.

  9. Dnnn (Dispatcher) - при работе сервера в мультинитевом режиме, существует хотя бы один диспетчерский процесс, ответственный за каждый протокол взаимосвязи. Диспетчерские процессы организуют взаимодействие между пользовательскими и разделяемыми серверными процессами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]