- •Средства параллельной обработки информации в Oracle.
- •Введение в параллельную обработку
- •Однопроцессорные и многопроцессорные компьютеры
- •Системы с разделением памяти
- •Системы с разделением дисков
- •Системы без разделения
- •Параллельная обработка sql-операторов
- •Последовательная обработка
- •Параллельная sql-обработка
- •Архитектура параллельной sql-обработки
- •Разделение данных и параллельная sql-обработка
- •Способы разделения данных
- •Параллельный сервер Oracle— поддержка нескольких экземпляров для обеспечения высокой степени доступности данных
- •Параллельное обращение к базе данных
- •Архитектура параллельного сервера
- •Распределенные блокировки
- •Блокировки параллельного управления кэшем (рсм)
- •Передача блоков
- •Потоки журнала транзакций
- •Запуск сервера
- •Управление базой данных в конфигурации параллельного сервера
- •Автоматическое восстановление экземпляров
- •Прозрачное устранение отказов приложений
- •Восстановление базы данных после сбоя носителя
- •Уникальные свойства базы данных в конфигурации параллельного сервера
- •Генерация последовательностей
- •Списки свободных блоков данных
- •Выделение экстентов для экземпляров
- •Частные сегменты отката
- •Индексы с обратными ключами
- •Комбинация параллельной sql-обработки и обработки параллельного сервера
Уникальные свойства базы данных в конфигурации параллельного сервера
Чаще всего основным фактором, тормозящим функционирование любой среды базы данных Oracle, является конкуренция за различные ресурсы системы (память, доступ к диску, блоки данных и т.д.). Ниже рассказано о некоторых особых ситуациях, которые могут возникать в параллельном сервереOracle, и о способах смягчения последствий конкуренции за ресурсы.
Генерация последовательностей
Ранее мы говорили, как использовать генератор последовательностей Oracle, чтобы быстро создавать уникальные первичные ключи для таблиц в схеме приложения. При разработке приложений для параллельного сервераOracleследует предусматривать способы, с помощью которых приложения будут генерировать числа таких последовательностей среди нескольких экземпляров. Конкретнее, можно создать последовательность и разрешить кэширование, чтобы уменьшить число обращений к диску, когда приложения неоднократно используют эту последовательность. Кэшируя числа последовательности, каждый экземпляр может заранее генерировать взаимоисключающие наборы уникальных чисел последовательности в памяти, что уменьшает объем операции дискового ввода/ вывода.
В некоторых системах баз данных значение первичного ключа строки может иметь определенный смысл для значений первичного ключа других строк той же таблицы. Например, значение первичного ключа строки может косвенно указывать, когда (по отношению к другим строкам) эта строка была внесена в таблицу. В таких ситуациях следует разрешать упорядочение последовательностей, работающих в конфигурации параллельного сервера Oracle. Учтите, что при этом экземпляры не могут заранее генерировать и кэшировать числа этой последовательности. Поэтому каждый раз, когда приложение запрашивает новое число последовательности, для обновления словаря данных базы нужно обращаться к диску.
Списки свободных блоков данных
Когда приложения, использующие разные экземпляры параллельного сервера Oracle, вводят строки в одну и ту же таблицу, сервер просматривает списки свободных блоков таблицы, а затем пытается разместить новые строки в одном наборе блоков данных, что ведет к конкуренции среди приложений за ресурсы системы. Чтобы уменьшить конкуренцию за просмотр списков свободных блоков, рекомендуется создавать таблицы с несколькими группами списков свободных блоков. При этом разные экземпляры не будут конкурировать за одни и те же списки.
Выделение экстентов для экземпляров
При работе с параллельным сервером Oracleдля отдельных экземпляров можно выделять экстенты сегменту данных таблицы. При этом приложения, которые вводят строки в одну и ту же таблицу через различные экземпляры параллельного сервераOracle, не конфликтуют за доступ к одним и тем же блокам данных.
Частные сегменты отката
Все экземпляры, работающие в параллельном сервере Oracle, могут использовать оперативные общие сегменты отката. В результате возможна ситуация, когда транзакции, источниками которых являются разные экземпляры, будут конкурировать за один и тот же набор общих сегментов отката. Чтобы уменьшить конкуренцию за сегменты отката в конфигурации параллельного сервераOracle, используйте не общие, а частные сегменты отката.
Когда производится запуск экземпляра, этот экземпляр явным образом получает исключающий доступ ко всем частным сегментам отката, приведенным в его файле параметров. При работе параллельного сервера Oracleс частными сегментами отката убедитесь в том, что файлы параметров инициализации каждого из экземпляров ссылаются на взаимоисключающие наборы частных сегментов отката.