Oracle
Oracle


Сервер Oracle: тяжелый, как танк, или легкий, как пушинка?

Если бы вы спросили 20 лет назад в фирме Oracle, что они разрабатывают, то получили бы краткий ответ: “СУБД Oracle”. Задав этот же вопрос сегодня, вы, скорее всего, получите длинный перечень, куда приведенный выше ответ войдет всего лишь в качестве одной из позиций: “Web-сервер, средства разработки, системы управлением предприятием” и т.д. И все же, несмотря на разительные изменения, сервер СУБД остается для фирмы основным, “базовым” продуктом, на мой взгляд, наиболее проработанным, отлаженным и ценным для клиентов.

Но и само понятие “сервер Oracle” тоже претерпело со временем ряд изменений. Сегодня сервер уже представляет собой не один продукт (реализованный для разных операционных платформ), а линейку продуктов – следуя, впрочем, практике, имеющейся и у конкурентов. Для новичка, не вполне ориентирующегося в названиях и конфигурациях, предлагаемых Oracle, и озабоченного принятием вполне конкретного решения, наличие такой линейки составляет одно из первых затруднений. К счастью линейка “не длинна”, и затруднение преодолимо. Итак, что же ее составляет ?

Сегодняшняя номенклатура серверов Oracle состоит из следующих типов:

Говоря о формальной стороне дела, нужно отметить, что, во первых, этот набор типов сформировался не сразу (когда-то не было, например, Oracle Lite, а еще раньше – Personal Oracle), а во-вторых – к прискорбию пользователей, но в полном соответствии с рыночными стереотипами поведения крупных компаний, приведенные названия не раз со временем менялись “в приказном порядке”. Так, Oracle Standard Edition ранее именовался Oracle Workgroup Server, и различие между этими двумя типами серверов не “видовое”, а чисто версионное, то есть отражает ход естественного эволюционного развития одного и того же продукта.

Эти замечания следует учесть тем, кто активно пользуется литературой по Oracle. Там вы вполне можете столкнуться с описанием того, что вам требуется, но названным по-другому – не стоит из-за этого бросать книжку или статью в дальний угол и искать новую ! Реальные версионные изменения в системе часто оказываются невелики или отсутствуют вовсе.

А что кроется за теперешней типизацией серверов Oracle ? Понятнее всего будет соотнести ее с областью применения. Вот как предлагает применять типы своих серверов сама фирма:
 
 
 
Тип сервера Рекомендуемая платформа Предлагаемая область использования
Oracle Enterprise Edition Большие машины, Unix- и NT-машины, в том числе с возможностями параллельной обработки Сервер прямого доступа для всего предприятия (завода, организации)
Oracle Standard Edition Unix- (в т.ч. Linux-) и NT-машины Сервер прямого доступа в рамках подразделения (отдела)
Personal Oracle Windows-платформы Локальный сервер, встроенный в самостоятельную прикладную систему; сервер для “персонального использования”
Oracle Lite Windows NT/9x/CE Сервер для автономных мобильных компьютеров, подключаемых время от времени к основной БД

По поводу этих рекомендаций нужно заметить, что в целом они – корректный ориентир, однако сделаны из расчета на зарубежную действительность. Масштабам “нашего” предприятия, например, вполне может соответствовать “их” отдел. Во-вторых, это общие рекомендации, вовсе не запрещающие возможность использования того или иного сервера “не в своей нише”.

Функциональные различия серверов разных типов постоянно изменяются вместе с выпуском новых версий, однако некоторое постоянство в этих изменениях все же присутствует. Осуществляя выбор сервера конкретного типа полезно знать, что первые три из них (“персональный”, “стандартный” и “заводской”) – это генетически родственные продукты. Все три имеют общую архитектуру, общее устройство, логику и принципы работы и являются развитием того самого магистрального сервера БД, который существовал 20 лет назад. Различаются они реализацией общей архитектуры применительно к менее ресурсоемким полатформам и более простым требованиям, а также связанным с этим возможным отключением каких-то функций. Personal Oracle можно считать функциональным сужением сервера Standard Edition и применения к более простым условиям архитектуры последнего, а, в свою очередь, Standard Edition – это функциональное сужение Enterprise Server. Разрабатывается как-бы одна общая архитектура, а потом делаются ее более простые реализации.

Примерами такого сужения могут служить процессная архитектура и параллельная обработка. Общая для всех типов серверов из этой тройки логика работы СУБД как совокупности самостоятельных процессов в Enterprise Edition для Unix выполнена “один к одному” в виде именно процессов, а в версии Standard Edition для NT (как, впрочем, и для Enterprise Edition для NT) имитируется нитями (threads) этой ОС. Personal Oracle (как и Standart Edition) фактически реализован как частный случай параллельного сервера (когда две или более СУБД работают одновременно с одной БД), выполненного в полном объеме в Enterprise Edition. Большие знатоки Oracle, докапывающиеся до самых глубин, утверждают, что тонкости работы отдельного (не параллельного) сервера можно понять, только учитывая это обстоятельство.

Таким образом некоторые функции в младших типах серверов не реализованы, а некоторые попросту отключены. Знание последнего иногда позволяет творчески относиться к таблице выше. Так, если повезет, то в Internet вы можете найти недокументированный фирмой Oracle способ перевода Personal Oracle в состояние, когда он сможет обслуживать более одного соединения к БД по сети (напомню, что по замыслу изготовителя этот тип сервера должен использоваться локально, и ему формально выделено только одно внешнее соединение для обмена с другими серверами). Для этого требуется выставить соответствующие конфигурационные параметры, и в результате можно получить удовлетворительный сервер с меньшими требованиями к ресурсам, чем предъявляются в Standard Edition. Следует, правда, заметить, что подобные настройки (а) требуют определенной квалификации и (б) не встречают понимания у представителей Oracle.

Ниже приводится таблица, дающая некоторое представление о схожести и различии функциональности для двух наиболее популярных типов серверов из упомянутой тройки.
 
Свойство Oracle8 Server (Standard Edition) Enterprise Server (Enterprise Edition)
Oracle Enterprise Manager (OEM) Есть Есть
Резервирование и восстановление без останова СУБД Есть Есть
Инкрементальное восстановление Нет Есть
Параллельное резервирование и восстановление Нет Есть
Восстановление табличного пространства на указанный момент времени Нет Есть
Поразрядные индексы Нет Есть
Оптимизация запросов типа “звезда” Есть Есть
Параллельная обработка (запросов, операторов DML; загрузка, сканирование индексов, и т.д.) Нет Есть
Распределенные запросы Есть Есть
Репликация (основные возможности) Есть Есть
Репликация (расширенные возможности) Нет Есть
Pro*C Есть Есть
ODBC драйвер Есть Есть
Расширенная поддержка очередей Нет Есть
Встроенные процедуры и триггеры Есть Есть
Поддержка больших объектов (LOB) Есть Есть
Поддержка картриджей  Частично Полностью
Расширенная сетевая поддержка Нет Есть
Работа с объектами Нет Есть
Режим рассредоточения табличных пространств по дисковым областям (partitioning) Нет Есть
Режим параллельного сервера Нет Есть

 

Иное дело с Oracle Lite. Исторически это была внешняя по отношению к линейке серверов система, которая эволюционировала в противоположном направлении: не в сторону ограничения возможностей более старших серверов с целью “снижения веса” системы для использования в более простых условиях, а в сторону доводки до совместимости с основной линейкой. Как результат, Oracle Lite характеризуется не только необычно малыми для серверов Oracle требованиями к ресурсам платформы, но и некоторыми “генетическими” расхождениями с основной линией.

Так, есть расхождения в базовых типах данных. Используется свой загрузчик, похожий, да не похожий на SQL*Loader. Но, может быть, более важное отличие – в отсутствии поддержки PL/SQL. В последних версиях Lite (версия 4.0) появились триггеры и встроенные процедуры, но языком для них служит только Java, в то время как на серверах “основной тройки” такая Java-возможность появилась недавно в дополнение к давно реализованной на базе PL/SQL.

Эти, и ряд других форм несовместимости, могут составить проблему для миграции БД и приложений с остальных серверов на Lite (и в противоположном направлении), в то время как такой проблемы внутри “основной тройки” практически нет (если не выходить за рамки общей функциональности). Переход от сервера к серверу внутри “тройки” прост и не требует от администратора переучивания – требуется только обучиться новому, если переход совершается от “младшего” типа к “старшему”. Переход же к Oracle Lite потребует кое о чем забыть, а кое-что выучить на иной манер. (К примеру, и в дополнение к сказанному выше, совсем по-другому выглядит привычная для всех остальных типов серверов процедура установки системы. Загляните в каталог RDBMS\Admin и убедитесь в отсутствии SQL-сценариев, знакомых по всем операционным средам и по всем трем серверным разновидностям).

Другое дело, что несовместимости Oracle Lite с остальными продуктами могут лежать за пределами ваших задач, или упомянутая миграция может оказаться вам не нужна. Тогда, а также если вам не требуется от СУБД работы с текстами и видео, инкрементального резервирования, усиленной парольной защиты, поддержки одновременной работы 500 пользователей и многого другого – смело ставьте Oracle Lite на свой laptop или PC и используйте СУБД Oracle, как вам будет угодно! В конце концов, какая-то работа по включению Lite в общую линейку серверов все же была проделана, и отношения этих систем характеризуются не одними различиями и противоречиями.

За дополнительной информацией обращайтесь в Interface Ltd.


Interface Ltd.

Tel: 7+(095) 135-55-00, 135-25-19
E-mail: mail@interface.ru
http://www.interface.ru
Подготовили:oracle@interface.ru
s-novikov@interface.ru

tkachev@interface.ru

Дата: 05.05.2000