- •Структуры программных средств Oracle
- •Серверы и экземпляры баз данных
- •Запуск и остановка сервера
- •Авария сервера
- •Параллельный сервер и высокая степень доступности
- •Соединения сервера
- •Процессы Oracle8
- •Серверные фоновые процессы
- •Процесс записи в базу данных (dbwr)
- •Процесс записи в журнал (lgwr)
- •Процесс архивации (arch)
- •Процесс контрольной точки (ckpt)
- •Процесс системного монитора (smon)
- •Процесс монитора процессов (pmon)
- •Отдельные и многопоточные фоновые процессы
- •Различные архитектуры для поддержки соединений пользователей
- •Архитектура клиент/сервер
- •Архитектура процессов, специфичная для Oracle Выделенные серверы
- •Многопоточные серверы
- •Архитектура процесса однозадачного сервера
- •Области памяти и кэширование данных
- •Кэш-попадания, кэш-промахи и кэш-перезагрузки
- •Области памяти Oracle8
- •Буферный кэш
- •Размер буферного кэша
- •Разделяемый пул
- •Библиотечный кэш и разделяемые sql-операторы
- •Словарный кэш
- •Организация сети Oracle8 и Net8
- •Transparent Network Substrate (tns) и другие уровни Net8
- •Соединения, инициаторы и адресаты tns
- •Пулинг соединений
- •Мультиплексирование
- •Прослушивающий tns-процесс
- •Прослушивающие web-процессы
- •Tns-адресация
- •127.0.0.1 Localhost
- •128.126.50.100 Alitest1.Animatedlearning.Com alitest1
- •128.126.50.101 Client1.Animatedlearning.Com client1
- •128.126.50.100 Alitest1.Animatedlearning.Com oranamesrvr0
- •Имена Oracle
- •Средство многопротокольного обмена
- •Навигатор
- •Менеджер соединений
- •Линии перекачки данных
- •Конфигурация Net8
Процессы Oracle8
Во время запуска сервера на хост-машине (компьютере сервера) создается набор процессов операционной системы. По мере того как пользователи соединяются с экземпляром, для управления их работой создаются дополнительные процессы. Ниже рассказано о том, какие процессы операционной системы работают в составе экземпляра базы данных Oracle.
Серверные фоновые процессы
Каждый экземпляр базы данных Oracleсодержит набор серверных фоновых процессов. Фоновый процесс (background process) -это серверный процесс, который выполняет в системе специальную функцию. На рис. 2 и в последующих разделах показаны основные серверные фоновые процессы экземпляра базы данныхOracle.
Процесс записи в базу данных (dbwr)
Когда модифицируется информация базы данных (например, вводится, обновляется или удаляется строка таблицы), Oracleне просто изменяет данные файла данных. Такой вид обработки информации был бы крайне неэффективен в большой многопользовательской системе, так как в этом случае нужно было бы постоянно считывать информацию из файлов данных и записывать ее в файлы. Вместо этого серверный процесс, установленный для сеанса связи пользователя, считывает один или несколько блоков данных из файла данных в память сервера. После этогоOracleвыполняет запрошенные модификации в памяти сервера. В конце концов, процесс записи в базу данных(DBWR - database writer process) переписывает модифицированные в памяти блоки данных назад в файлы данных базы. Чтобы объединить операции обращения к диску, уменьшить ненужный расход ресурсов и обеспечить оптимальное функционированиеOracle8, процесс DBWR экземпляра записывает модифицированные блоки данных из памяти в файлы данных только в некоторых ситуациях: если DBWR в течение нескольких секунд простаивает, если процесс должен считать в память новые блоки данных, а свободного пространства нет, или если выполняется процесс контрольной точки. О контрольных точках рассказано в разделе "Процесс контрольной точки".
Процесс записи в журнал (lgwr)
Процесс записи в журнал (LGWR-logwriterprocess) регистрирует информацию об изменениях, внесенных всеми завершенными транзакциями. Регистрация (протоколирование) транзакций осуществляется следующим образом:
По мере выполнения некоторой транзакции Oracleсоздает небольшие записи, называемые элементами повтора(redo entries),в которых содержится информация, достаточная для воссоздания изменений, вносимых транзакцией.
Элементы повтора транзакции временно сохраняются в буфере журнала повтора (redo log buffer) сервера. Это небольшая область памяти, в которой временно кэшируются элементы повтора всех транзакций системы.
Когда запрашивается завершение транзакции, процесс LGWR считывает все необходимые элементы повтора из буфера журнала повтора и записывает их в журнал транзакций базы данных. Журнал транзакций (transaction log) -это группа файлов, выделенных для протоколирования элементов повтора, которые созданы всеми транзакциями системы. О журнале транзакций и о других механизмах защиты баз данных будет рассказано позже.
BOracleтранзакция считается незавершенной до тех пор, пока процесс LGWR не запишет элементы повтора транзакции и не сделает запись о ее завершении в журнале транзакций.