Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Lij / Средства параллельной обработки информации.doc
Скачиваний:
57
Добавлен:
16.04.2013
Размер:
92.16 Кб
Скачать

Параллельный сервер Oracle— поддержка нескольких экземпляров для обеспечения высокой степени доступности данных

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

Параллельное обращение к базе данных

Параллельный сервер, применяемый в Oracle8, позволяет системе базы данных Oracleиспользовать все преимущества обеспечения высокой степени доступности информации, предоставляемые многопроцессорными компьютерными системами с разделением дисков и без него. С помощью параллельного сервера несколько экземпляровOracleServerмогут параллельно работать с одной и той же базой данныхOracle. Каждый экземплярOracleвыполняется в отдельном узле кластеризованной или слабосвязанной системы. Конфигурация базы данных, использующей параллельный сервер, представлена на рис. 9.

Каждый экземпляр в параллельном сервере OracleServerявляется отдельным набором фоновых процессов и кэшей памятиOracle. Каждый экземпляр монтирует и открывает одну и ту же базу данных

Oracleв "параллельном" режиме и предоставляет приложениям различные способы соединения и работы с совместно используемой базой данных.

Приложения некоторых видов не могут пользоваться преимуществами конфигурации параллельного сервера Oracle. В следующих разделах подробно рассказано, как параллельный серверOracleработает с информацией, сохраняя целостность данных, и дано общее представление о том, приложения каких видов нормально функционируют в конфигурации параллельного сервераOracle.

Архитектура параллельного сервера

Для сохранения целостности информации базы данных, с которой параллельно работает несколько экземпляров Oracle, в параллельном сервереOracleреализованы специальные алгоритмы. Чтобы определить, будет ли приложение работать в системе параллельного сервера, следует знать принципы работы специального алгоритма блокирования данных, применяемого в параллельном сервере.

Ранее было рассказано о том, каковы принципы внутренних алгоритмов параллельности работы OracleServerи как эти алгоритмы помогают сохранить целостность базы данных. Блокировки строк предотвращают возможные конфликты среди транзакций, работающих с одной и той же группой данных, и обеспечивают отличный уровень параллельности. В то же время алгоритм многовариантности позволяет операциям чтения и записи выполняться независимо друг от друга.

Распределенные блокировки

Приложения, работающие в среде параллельного сервера, запрашивают и модифицируют данные через экземпляр Oracleточно так же, как это делают приложения, работающие в базовой одноэкземплярной конфигурации. Например, транзакция, обновляющая строку таблицы, устанавливает исключающую блокировку этой строки; сервер считывает блок данных, содержащий указанную строку, в буферный кэш данных соответствующего экземпляра, а затем обновляет строку.

К одной и той же базе данных обращается несколько экземпляров, поэтому в параллельном сервере Oracleнеобходимо использовать распределенные блокировки. Распределенная блокировка (distributed lack)это специальный тип блокировки данных, предотвращающий возникновение конфликтов между двумя экземплярами, когда они работают с различными ресурсами базы данных, например с сегментами отката, элементами кэшированного словаря данных или с кэшированными блоками данных. В конфигурации параллельного сервера экземпляр устанавливает распределенную блокировку, если при запросе ресурса этот ресурс помещается в областьSGAэкземпляра. Экземпляр снимает распределенную блокировку только тогда, когда другой экземпляр запрашивает тот же самый ресурс. Для координирования распределенных блокировок и доступа к разделяемым ресурсам базы данных каждый экземпляр в параллельном сервереOracleиспользует один или несколько специальных блокирующих фоновых процессов (Lock (LCK) background processes) и менеджер распределенных блокировок базовой операционной системы.