- •Структуры программных средств 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создает и применяет множество различных областей кэширования памяти, которые помогают уменьшить число операций дискового ввода/вывода и повысить производительность сервера. В число этих областей входят буферный кэш, разделяемый пул и программные глобальные области. В последующих разделах будет рассмотрена каждая из областей памяти экземпляраOracle.
Буферный кэш
Буферный кэш (buffer cache)экземпляраOracleявляется, как правило, самой большой областью памяти сервера. В буферном кэше хранится последняя информация базы данных, запрошенная транзакциями приложений. На рис. 8 представлен буферный кэш экземпляра.
При обновлении строки таблицы процесс сервера переднего плана считывает блок данных, содержащий нужную строку, из файла данных, расположенного на диске, в буферный кэш. Затем серверный процесс может модифицировать блок данных в памяти сервера. Если запросу транзакции другого пользователя требуется обновить эту же строку или другую строку, содержащуюся в том же блоке, то, поскольку нужный блок уже находится в буферном кэше, можно избежать обращения к диску. В конце операции процесс DBWRзаписывает черновые, или "грязные"(dirty),т.е. измененные, данные назад в файлы данных. Более детальная информация о работе процесс DBWR приведена выше в разделе "Процесс записи в базу данных (DBWR)".
Размер буферного кэша
Одним из самых простых способов оптимизировать работу сервера Oracleявляется правильное задание размера для буферного кэша экземпляра. Необходимо сделать буферный кэш достаточно большим для хранения информации базы данных, наиболее часто используемой приложениями, но не слишком большим, чтобы он не занял всю память компьютера. Перед запуском сервера нужно установить параметр, определяющий размер буферного кэша экземпляра, и только потом запустить сервер. После того как сервер проработает определенное время, следует проанализировать отношение числа кэш-попаданий к числу кэш-промахов и кэш-перезагрузок и определить, насколько буферный кэш системы помогает снизить число операций ввода/вывода блоков данных. Чтобы переустановить размер буферного кэша, нужно остановить сервер, изменить значение соответствующего параметра, а затем вновь запустить сервер (динамически, во время работы сервера, изменить размер буферного кэша нельзя).
Разделяемый пул
Область памяти экземпляра, называемая разделяемым пулом (shared pool),также является основной областью памяти сервера. Разделяемый пул экземпляра состоит из двух компонентов: библиотечного и словарного кэшей. О разделяемом пуле экземпляра, представленном на рис. 9, идет речь в последующих разделах.
Библиотечный кэш и разделяемые sql-операторы
В библиотечном кэше (library cache)сохраняется и совместно используется большинство недавно выполненных SQL-операторов и программPL/SQL, предварительно прошедших синтаксический анализ. Например, когда выдается SQL-оператор,Oracleосуществляет его синтаксический анализ и определяет наиболее эффективный план выполнения этого оператора. После этогоOracleкэширует его в разделяемом пуле. Если другой пользователь выдает такой же оператор,Oracleможет воспользоваться оператором, находящимся в памяти, а не выполнять для нового оператора аналогичные действия. Благодаря кэшированию SQL-операторов снижается расход ресурсов, необходимых для выполнения групп операторов приложений.