Сетевое программное обеспечение и SQL*Net
Память пользовательского процесса
Для каждого подключения к базе данных Oracle выделяет PGA (process global area — глобальную область процесса или program global area — глобальную область программы) в памяти машины и, кроме того, — PGA для фоновых процессов. Эта область памяти содержит данные и управляющую информацию одного процесса и между процессами не разделяется.
В простой конфигурации Oracle файлы базы данных, структуры памяти, фоновые и пользовательские процессы располагаются на одной машине без использования сети. Однако намного чаще встречается конфигурация, когда БД расположена на машине-сервере, а инструментальные средства Oracle — на другой машине (например, PC с Microsoft Windows). При такой клиент/серверной конфигурации машины связываются посредством некоторого сетевого программного обеспечения (не относящегося к семейству ПО Oracle), которое позволяет двум машинам поддерживать связь. Также требуется организовать диалог между двумя базами данных на различных машинах — например, есть обращение к таблицам из обеих баз данных в одной транзакции или даже в одном операторе SQL. Кроме того, здесь две машины нуждаются в программном обеспечении (разработанном не-Oracle) для организации сети и поддержания связи.
Какой бы тип сетевого ПО и набор протоколов не использовались для связи машин (например, TCP/IP) с целью организации взаимодействия клиент/сервер или сервер-сервер, нужно иметь программный продукт Oracle SQL*Net, который позволяет СУБД Oracle взаимодействовать с сетевым протоколом. SQL*Net поддерживает большинство сетевых протоколов для локальных вычислительных сетей PC (таких как IPX/SPX) и для мэйнфреймов (например, SNA). По существу, SQL'Net является промежуточной программной прослойкой между Oracle и сетевым ПО, обеспечивающей связь между клиентской машиной Oracle Сна которой работает, например, SQL*Plus) и сервером базы данных или между серверами баз данных.
ПО SQL*Net устанавливается на обеих машинах "поверх" сетевого программного обеспечения.
Опции SQL*Net позволяют одной машине работать с одним сетевым протоколом, сообщаясь с другой машиной, работающей с другим протоколом.
При изменениях сетевых протоколов или сетевого ПО не придется изменять программное обеспечение прикладной системы. При необходимости можно выполнить изменения, установив другую версию SQL*Net для нового сетевого протокола.
На следующем рисунке показано место SQL*Net в среде клиент/сервер с двумя серверами базы данных.