• определяет привилегии и права доступа на основе механизма «ролей» (роли-поименованные группы привилегий; на их основе можно группировать различные привилегии доступа и затем назначать их конкретным пользователям/группам пользователей;
• полностью поддерживает другие языки, включая русский, сортирует слова по алфавиту, реализует национальные форматы представления данных (числовых, календарных, денежных), преобразует символьные данные из верхнего регистра в нижний и наоборот, выдает системные сообщения и подсказки на национальном языке. В случае неоднородной языковой среды (использования разных кодировок в различных узлах) преобразование данных выполняется автоматически.
В OracleRDBMSподдерживаются два основных варианта репликации данных: асимметричная асинхронная и симметричная асинхронная.
Асимметричная асинхронная репликация, или, как ее еще называют, «моментальная копия таблиц» (TablesSnapshot), подразумевает выделение одного узла системы в качестве владельца основной «мастер-копии» некоторой таблицы. При этом автоматически может поддерживаться неограниченное число ее копий в других узлах системы, однако все они доступны только для чтения, а все изменения могут вноситься лишь в первичную «мастер-копию».
Высокая надежность является одним из самых общих требований, предъявляемых к любой реально работающей информационной системе. Заметим, что обеспечение повышенной надежности не является исключительной функцией только аппаратных или только программных средств – она достигается ими совместно. При этом OracleRDBMSподдерживает практически весь спектр таких решений:
• использование реализуемых на аппаратном или системном уровне зеркальных дисков;
• создание действующей копии базы данных на резервном сервере;
• работу в архитектуре с параллельными серверами (многомашинные кластеры);
• применение в качестве серверов баз данных отказоустойчивых компьютеров.
Любая информационная система, реализованная средствами OracleRDBMS, легко масштабируется, причем это может быть достигнуто несколькими различными способами:
• добавлением к системе новых серверов и переносом на них части приложений;
• заменой существующего сервера на более мощный, причем, так как OracleRDBMS работает практически на всех существующих платформах, новый сервер может иметь принципиально другие архитектуру и операционную систему;
• переходом на кластерную многомашинную архитектуру или, если она уже используется, простым добавлением в кластер еще одного узла;
• увеличением числа процессоров при использовании компьютеров с SMP- или MPP-архитектурой.
OracleRDBMS автоматически осуществляет декомпозицию простых и сложных SQL-запросов на параллельно выполняемые процедуры. Операции по распараллеливанию запросов являются прозрачными для квалифицированных разработчиков, а специальные опции и подсказки SQL допускают контроль над декомпозицией запроса.
СУБД компании Informix
СУБД компании Informix (Informix-OnLineDynamicServer) – модель сервера СУБД, имеющая многопотоковую архитектуру и обладающая мощными средствами параллельной обработки запросов.
Informixбазируется на UNIX, но поддерживает, помимо нее, операционные системы WindowsNTи NetWare. СУБД компании Informix традиционно использовалась для создания информационных систем малого или среднего масштаба, работающих в режиме оперативной обработки транзакций. Компьютеры, работающие под управлением UNIX, обладают высокой производительностью, что потребовало пересмотра архитектуры сервера. Сервер баз данных Informix-OnLineDynamicServer имеет многопоточную динамическую архитектуру (DSA), которая была разработана в содружестве с компанией Sequent. Эта архитектура призвана обеспечить максимальную поддержку систем SMP с масштабируемость в соответствии с числом процессоров и других ресурсов.
СУБД, претендующие на роль информационной основы современных предприятий, должны удовлетворять наиболее важным требованиям:
• иметь высокую производительность;
• обеспечивать смешанную загрузку сервера разными типами задач;
• обеспечивать непрерывную доступность данных;
• гарантировать целостность данных, в том числе распределенных;
• осуществлять распределенные вычисления;
• обеспечивать масштабируемость реализуемых на основе сервера ИС.
Архитектура сервера Informix-OnLineDSполучила название «динамическая масштабируемая архитектура» (DSA). Суть ее заключается в том, что одновременно может выполняться относительно небольшое число серверных процессов, которые разделяют между собой работу по обслуживанию множества клиентов. По сравнению с более ранними моделями сервера Informix, где для каждого клиента создавался индивидуальный серверный процесс, новая модель обладает рядом преимуществ:
• снижает нагрузки на операционную систему;
• сокращает совокупную потребность клиентов в оперативной памяти;
• обеспечивает снижение конкуренции при одновременном использовании системных ресурсов;
• дает более рациональное по сравнению с ОС назначение приоритетов и планирование;
• обусловливает равномерную загрузку наличных процессоров;
• ускоряет обработку сложных запросов за счет параллельного выполнения на нескольких процессорах.
Архитектуру Informix-OnLineDSназывают также многопотоковой. Для каждого клиента создается так называемый поток, или нить. Поток – это подзадача, выполняемая в рамках одного из серверных процессов. В некоторых случаях для обслуживания одного клиентского запроса формируется несколько параллельных потоков.
Важный оптимизирующий механизм сервера – кеши хранимых процедур и словарей данных. Словари данных, доступные только для чтения, а также хранимые процедурыраспределяются между всеми пользователями сервера, что позволяет оптимизировать совокупное использование памяти. При загрузке в разделяемую память словарь данных записывается в структуры, обеспечивающие быстрый доступ к информации, а хранимые процедуры преобразуются в выполняемый формат. Все это существенно ускоряет выполнение приложений, обращающихся ко многим таблицам с большим числом столбцов и/или ко многим хранимым процедурам. Операции ввода/вывода, как правило, образуют наиболее медленный компонент обработки баз данных, поэтому от их реализации существенно зависит общая продуктивность сервера.
Для оптимизации ввода/вывода и повышения надежности в сервере реализованы следующие механизмы:
• собственное управление дисковой памятью;
• асинхронный ввод/вывод;
• опережающее чтение.
Многопотоковая архитектура сервера послужила базой для реализации технологии параллельной обработки запросов (ParallelDataQuery – PDQ), обеспечивающей эффективное выполнение сложных запросов, характерных для систем поддержки принятия решений.
PDQ– это технология, которая позволяет разделить обработку одного сложного запроса на ряд процессоров, мобилизовать для его выполнения максимально доступные системные ресурсы, во много раз сокращая сроки получения результата. Перечислим основные типы заданий, на которых проявляется эффект технологии PDO:
• обработка сложных запросов, включающих сканирование больших таблиц, сортировку, соединение, группирование, массовые вставки;
• построение индексов;
• сохранение и восстановление данных;
• загрузка, выгрузка данных, реорганизация баз данных;
• массовые операции вставки, удаления, модификации данных.
Технология PDOиспользуется в основном для быстрого выполнения DSS– запросов и пакетных приложений. Если ее применение ничем не ограничено, то сильно распараллеленное выполнение нескольких сложных запросов приводит к недопустимому замедлению OLTP– приложений, выполняющихся на том же сервере. Управление степенью распараллеливания запросов и долей системных ресурсов, выделяемых для PDO-обработки, может осуществляться динамически. Например, в часы наиболее активной работы приложений OLTPзапросы DSS выполняются без распараллеливания или с невысокой степенью распараллеливания. В остальное же время или на серверах, где приложения OLTPотсутствуют, устанавливается режим максимального использования PDQ.
Средства обеспечения надежности и инструменты администрирования Informix-OnlineDS позволяют свести к минимуму риск и последствия отказов, а также практически исключают плановые простои.
В Informix-OnLineDSреализована возможность дублирования связной дисковой области, выделенной под базу данных, на другой дисковой области. Основная цель этого – обеспечение высокой готовности, дополнительный эффект зеркалирования – оптимизация операций чтения. При сбое диска, на котором находится первичная область, администратор имеет возможность провести восстановление без перевода сервера в режим off-line. Все операции чтения записи продолжаются с зеркальной областью. Синхронизация данных на первичном диске после его включения осуществляется в оперативном режиме.
Тиражирование – это поддержание на другой вычислительной базе копий объектов базы данных. В Informix-OnLineDSреализовано прозрачное тиражирование данных с основного сервера баз данных на вторичный сервер, к которому разрешен доступ только на чтение и который может находиться в другом географическом месте.
Главная цель тиражирования в Informix-OnLineDS– это обеспечение высокой готовности. В случае отказа основного сервера вторичный сервер становится доступен и на запись. Прозрачное перераспределение клиентов при отказе основного сервера не поддерживается, но оно может быть реализовано в рамках приложений.
После восстановления основного сервера возможен сценарий, при котором восстановленный сервер становится вторичным. При этом бывшему вторичному серверу, который уже функционирует в режиме чтения-записи, придается статус основного. Подключенные к нему клиенты продолжают работу. Так обеспечивается непрерывная доступность данных.