SlideShare a Scribd company logo
Основы администрирования Informix Dynamic Server

Благодарности

Я не могу поверить, что окончил еще одну книгу. Всякий раз я говорил себе, что вот она –
последняя книга, и вот сейчас я закончил писать эту книгу и начал следующую.

Прежде всего, хочу поблагодарить вас за покупку. Есть другие книги, которые вы могли
приобрести, но ваш выбор пал на эту. Я могу предположить, что вы купили книгу за свои
деньги, а не за счет компании. В этом случае я особенно благодарен. В любом случае
надеюсь, что книга пригодится вам как источник ответов на вопросы и для лучшего
понимания работы Informix Dynamic Server.
 Окидывая взглядом промежуток времени с конца 90-х годов по сегодняшний день, могу
сказать, что это были прекрасные годы. Компания Informix была приобретена IBM
Сообщество Informix выжило и сейчас процветает. Informix расцвел благодаря IBM,
Группа разработки IDS сконцентрирована на создании самого лучшего сервера БД для
существующих и будущих заказчиков. Это БД-эквивалент выражения «если вы создадите,
они придут». Как я писал в предисловии к моей небольшой книге о IDS 11.10, я очень
горд, что могу представить работу этой группы. Они создали новые возможности, такие
как MACH-11 и значительное повышение производительности, одновременно облегчив
администрирование сервера. Я восхищаюсь тем, что будет сделано в новых релизах и
насколько лучше станет сервер.
 Я решил написать эту книгу и ее продолжение, поскольку IBM активно продвигает IDS
на рынке. Активные и потенциальные пользователи, а также другие компании-
разработчики знают, что IDS возвращается. Я хочу внести свою лепту в поддержку и рост
сообщества IDS.
Написание книги – нелегкая задача, даже если вы делали это неоднократно. Были и
бессонные ночи, и бесконечные вздохи, когда я пытался заставить себя взглянуть в
монитор и написать хотя бы страницу. Иногда казалось, что слова сами срываются с
пальцев, и я силой заставлял себя пойти спать, чтобы утром добраться до работы.
К счастью, мне помогали многие люди. Рискуя забыть кого-то, я все-таки хочу
поблагодарить тех, кто сделал выход этой книги возможным.
 Прежде всего хочу поблагодарить инженеров Informix, которые отвечали на мои вопросы
и оказывали техническую поддержку, особенно John Miller, Jonathan Leffler, Jacques Roy,
Scott Pickett, Mark Jamison, Guy Bowerman, Amit Dandekar, Charles Gonsalves, Paul-John
To.
За техническое редактирование спасибо Edgar Sanchez, Mark Jamison, Sudhir Katke, Randy
House, Suma Vinod, Sanjit Chakraborty
 Я всегда буду в долгу у Jacques Roy за его работу. Он написал Java-методы определения
размера таблиц.
 Спасибо Jerry Keesee за то, в своем плотном графике он нашел время и написал
предисловие к книге, а также за помощь, которую он мне всегда оказывал.
 Susan Visser из IBM Publishing всегда была стойким защитником книг по IDS, благодаря
ей вышли мои книги по Informix, в том числе и эта. Cathy Elliott – волшебница из мира
IBM Marketing. Она всегда оказывала мне всю возможную поддержку, как и Michael
Spano – мой менеджер.
 Мне также помогали многие люди из International Informix Users Group (IIUG), особенно
Lester Knutsen, Walt Hultgen, Stuart Litel, Cindy Lichtenauer, Alexander Koerner и многие
другие.
 Если вы с легкостью прочтете книгу, обязательно скажите спасибо Katie Tipton. Я
работал со многими редакторами, но Katie – лучшая. Она отредактировала многие мои
бессвязные мысли и логические пробелы в рукописи и исправила синтаксические ошибки,
пропущенные мной и техническими редакторами.
  Jeff Phillips разработал обложку книги и не говорите мне, что обложка не важна.

И, конечно, отдельное спасибо моей семье




                                    Содержание
Предисловие

О книге

Часть 1     Введение в Informix Dynamic Server

              Что такое Informix Dynamic Server
              Модель Informix Dynamic Server
              Основные термины
              Заключение

Часть 2    Введение в расширяемость

              Что такое расширяемость и зачем вам это нужно
              Расширяемые типы данных
              Преобразования
              Определенные пользователем процедуры и агрегаты
              Функциональные индексы
              Датаблейды, блейдлеты и другие дополнения
              Заключение

Часть 3    Подготовка к инициализации

              Логический дизайн базы данных
              Вычисление размеров таблиц
              Вопросы, связанные с жестким диском
              Что использовать для db-пространств – выделенные файлы или сырые
               устройства
              Вопросы проектирования db-пространств
              Настройка ядра
              Стратегии архивирования
              Установка окружения
              Вопросы, связанные с несколькими экземплярами сервера
              Заключение

Часть 4.   Установка и инициализация IDS

              Установка или обновление сервера
              Изменение конфигурационных параметров
              Первый запуск экземпляра
              Системные базы данных
Заключение

Часть 5   Основные задачи администратора

             Утилиты администрирования Informix
             Изменение рабочих режимов
             Изменение режимов логирования
             Управление db- и BLOB-пространствами
             Создание, перемещение и изменение размеров логов.
             Автоматический запуск и останов IDS
             Управление доступом и безопасность
             Отстрел пользовательской сессии
             Заключение

Часть 6   Создание окружения базы данных

             Утилита dbaccess
             Режимы логирования базы данных
             Создание базы данных
             Создание и партиционирование(partitioning) таблиц и индексов
             Ограничения, ссылочная целостность и индексы
             Внесение информации в базу данных
             Конкурентность и уровни изоляции
             Некоторые интересные SQL-запросы
             Утилита dbschema
             Заключение

Часть 7   Архивирование и восстановление

             Стратегии архивирования
             Архивирование логического журнала
             Устройства для архивирования
             Как работает процесс архивирования
             Опции восстановления
             Использование утилиты ontape
             Использование ON-Bar и Informix Storege Manager
             Archecker и проверка архивов
             Использование Table-level restore
             Заключение

Часть 8 Мониторинг экземпляра

             Новый интерфейс системного администрирования
             Утилиты командной строки
             Мониторинг системы и экземпляра с помощью ОАТ
             Заключение

Приложение
Вступительное слово
Если вы держите в руках эту книгу, это значит, что вы открываете или уже открыли для
себя самый лучший OLTP-сервер БД. Я не могу назвать себя беспристрастным, так как я –
начальник группы разработки Informix, но приобретенная квалификация позволяет мне
оценит инновации, внедренные в каждую часть этого замечательного продукта. На
протяжении последних 15-ти лет я имел счастье работать с наиболее талантливыми
инженерами, сотрудниками поддержки, техническими писателями и полевыми
специалистами. За последние десятилетия технологии и аппаратное обеспечение
развивались экспоненциально. Стали реальностью SOA, Web 2.0 и 3-D Интернет. На
каждом витке развития эта прекрасная группа инженеров и архитекторов предвосхищали
требования вашего бизнеса, а также совершенствовали базовые возможности продукта.
Эта книга – портал в инновации и функциональность Informix с учетом последних
усовершенствований и обновлений. Многолетний опыт автора позволяет ему показать
четкую перспективу развития Informix.
 Я знаю Карлтона на протяжении 10 лет. За это время он написал несколько прекрасных
книг по IDS. В Карлтоне присутствует уникальная комбинация глубоких знаний Informix
и таланта писателя и преподавателя. Эта книга – прекрасный ресурс и для существующих,
и для новых пользователей Informix. Карлтон использует пошаговый подход в раскрытии
возможностей Informix – инициализация и инсталляция, архивирование и мониторинг. В
книгу также включена информация о последних нововведениях в Informix – вплоть до
текущего 11-го релиза.
 С самого начала в разработку Informix было положено стремление предоставить
пользователям OLTP-возможности уровня Enterprise на основе архитектуры с
минимальными затратами на администрирование. Другие могут обещать такое, мы уже
сделали! Архитектура Informix обеспечивает производительность, возможность создания
встраиваемых решений, масштабируемость с минимальными затратами на
администрирование. Правильный выбор сервера БД может дать значительные
преимущества, и когда принятие решения базируется на технических возможностях, то
Informix – выбор лидеров. Возможно, вы даже не знаете, насколько широко используется
Informix в мире. Под управлением Informix работают базы данных магазинов,
совершаются он-лайновые банковские транзакции и проводится авторизация кредитных
карт. Informix используется в службе «911», для бронирования авиабилетов, в системах
GPS-навигации, телефонных маршрутизаторах, его применяют Konkan Railway в Индии,
финансовые учреждения Китая, крупнейший поставщик молочных продуктов Новой
Зеландии. Есть также множество других приложений, но о них я не могу рассказать.
Благодаря своей надежности Informix используется для создания mission-critical
приложений. Есть возможность создавать приложения 24х7 с надежностью 99.999 и
выполнять масштабирование системы на недорогом аппаратном обеспечении. IDS 11
выводит Informix на новый уровень надежности и масштабируемости: кластеры активный-
активный могут разделять один диск, есть возможность управлять географически
удаленными репликами. Для управления этим функционалом есть понятные GUI-
инструменты, позволяющие заказчикам масштабировать систему без сложных аддонов.
Редакции Informix есть для всех популярных ОС – Linux, UNIX, Windows, Linux для
zSeries и даже для Mac OS X. Наши заказчики и партнеры работают вместе с нами над
формированием направлений развития продукта.
 Написанием этой книги Карлтон выполнил значительную работу по изложению основ
администрирования Informix в понятном виде. Он преподносит подарок всем энтузиастам
Informix. Наслаждайтесь книгой. Я надеюсь информация, представленная в книге,
поможет вам еще раз взглянуть на работу сообщества Informix.

                                    Jerry Keesee, начальник отдела разработки Informix
О книге.
Поскольку вы читаете книгу, я могу предположить, что вы или администратор базы
данных (DBA) , или отвечаете за обслуживание окружения базы данных под управлением
Informix Dynamic Server (таких людей я называю администраторами Dynamic Server -
DSA). Я не знаю, новичок ли вы в этой работе или уже имеете опыт, и какой именно.
Возможно, вы работали с другими СУБД под UNIX, а сейчас хотите установить и
администрировать IDS. Если да, то вы откроете для себя новый мир. Или вы в первый раз
используете промышленный сервер , а до этого работали с простыми СУБД. Вы
устанавливаете IDS, поскольку вам нужны надежность, функциональность, скорость, и
хотите знать, что делать дальше. Вы тоже открываете для себя новый мир.
 Если вы похожи на меня, то, наверное, открытие коробки с дистрибутивом IDS было и
возбуждающим, и пугающим. Когда в мои руки попало то, что известно, как самый
быстрый и архитектурно правильный сервер на рынке, я был возбужден. Мне не
терпелось установить его и оценить производительность. Одновременно я посетил сайт
Informix и был устрашен количеством и размером документации. Поверхностный поиск
выявил 32 книги и около 9000 страниц только по серверу без учета дополнительных
продуктов типа DataBlades. Неужели сервер был настолько сложным, что требовался
такой объем документации?
 На этот вопрос можно ответить и «да», и «нет». Да, сервер Informix сложнее, чем другие
СУБД, представленные сегодня на рынке, и имеет больше опций. С другой стороны для
запуска и настройки сервера нет необходимости изучать всю документацию. В
документации приведено подробное описание того, как работает сервер и почему он
работает именно так. Документация IDS подробна , доступна для понимания и
заслуживает изучения.

                                 Структура книги
В книге я попытался соединить сухие сведения из документации и реальную жизнь.
Расположение тем, как мне кажется, соответствует логическому порядку работы с
окружением базы данных. Сначала вы спроектируете окружение, затем создадите и
наполните его. Будете выполнять архивирование данных, мониторить и настраивать
сервер. Это самые важные задачи, и каждая из них разобрана в соответствующей части.
 Книга не ставит целью объяснить механизмы работы Informix, вместо этого она
предназначена для помощи в запуске и управлении СУБД. В книге описаны основные и
самые важные задачи администратора, которые выполняются регулярно. В следующей
книге «Administering Informix Dynamic Server; Advanced Topics » мы поговорим о
репликации, высокой доступности, распределенных транзакциях и других темах, к
которым необходимо подробное объяснение. Надеюсь, что вы приобретете и вторую
книгу.

                           Предполагаемая аудитория.
Книга написана в расчете на новичков в Informix, а также на тех, кто переходит с ранних
версий. Я старался избегать объяснений на уровне битов и байтов. Если вам необходимо
понимать работу сервера на таком уровне, стоит обратиться к руководству
администратора IDS и другой документации сервера. Большинство того, что описано в
книге, есть в официальной документации, поэтому не думайте, что книга сможет ее
заменить. Не стоит, однако, полагать, что книга представляет собой обзор документации.
Приведенные в книге рекомендации являются результатом долгой работы с Informix. В
официальной документации этого нет.
 При написании книги я руководствовался одним важным предположением – я полагаю,
что вы знаете концепции реляционных баз данных, а также что такое таблицы, столбцы и
другие компоненты реляционной БД.к этим основам вы сможете добавить знание
объектно-ориентированных возможностей Informix.
Краткое содержание
Часть 1 – Введение в Informix Dynamic Server

Здесь рассказывается о структуре IDS, а также представлены и объяснены ключевые
слова, используемые в книге.

Часть 2 – Введение в расширяемость

Эта часть посвящена объектно-ориентированным возможностям Informix Dynamic Server

Часть 3 – Подготовка к инициализации

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

Часть 4 – Установка и инициализация IDS

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

Часть 5 – Основные задачи администрирования.

Здесь мы поговорим о основных ежедневных задачах администрирования экземпляра: о
добавлении и освобождении дискового пространства, запуске и остановке экземпляра,
отстреле пользовательских сессий. Также в этой части представлены графические
инструменты администрирования.

Часть 6 – Создание окружения базы данных.

Обсуждаются вопросы создания БД и наполнения ее данными: партиционирование таблиц
и индексов, логирование, а также некоторые специфические для Informix SQL-запросы,
знать которые будет весьма полезно.

Часть 7 – Архивирование и восстановление

Одна из самых малопривлекательных, но необходимых работ – архивирование БД на
ленту или диск. Мы поговорим о различных стратегиях архивирования, их преимуществах
и недостатках. Я расскажу, как Informix может выполнять moment-in-time архивирование
и восстановление, без необходимости останавливать экземпляр. Подробно рассказывается
о использовании утилиты ontape и комплекта утилит ON-Bar совместно с Informix
Storage Manager (ISM)

Часть 8 – Мониторинг экземпляра

На протяжении всей книги вы будете встречать вывод данных мониторинговыми
утилитами Informix. В этой части мы сосредоточимся на работе с этими утилитами и
поговорим, что необходимо мониторить в первую очередь. В большинстве своем речь
будет идти о утилитах командной строки и функциональности, доступной в новом
средстве – Open Admin Tool (OAT) для Informix

                       Соглашения, принятые в книге

В книге использованы следующие соглашения:

    Каждая часть начинается со списка тем, которые будут обсуждаться
    Каждая часть заканчивается заключением, где приведены наиболее важные
      сведения, которые вам необходимо заполнить, а также говорится о том, какие
      вопросы будут обсуждаться в следующей части
    Зарезервированные слова в примерах кода не выделены заглавными буквами, так
      как я считаю, что такое выделение только мешает читать код. Лично я использую
      заглавные буквы только в комментариях к исходным текстам, когда хочу привлечь
      внимание к важному месту.
    Иногда вы будете видеть символ обратного слеша (). Он используется как маркер
      продолжения в примерах, которые разбиты на несколько частей. В
      действительности вам будет необходимо вводить все инструкции одной строкой.
    На протяжении книги дополнительная информация будет выделяться с помощью
      специальных знаков.
Введение в Informix Dynamic Server
В этой части
        Архитектура сервера
        Определение ключевых терминов


В независимости от того, новичок ли вы в Informix или переходите с младших версий вам
необходимо знать как управлять сервером и использовать его функциональность.
 Цель этой книги – сделать процесс обучения более легким путем выделения того, что
вам необходимо знать для конфигурирования, запуска и настройки окружения БД. IDS.
Хотя на первый взгляд Informix Dynamic Server может показаться похожим на другие
СУБД, он очень сильно другой. Вскоре вы убедитесь, что он более стабилен и надежен,
проще управляем, чем другие сервера.
 В книге основное внимание уделяется IDS 11, который в чем-то похож на младшие
версии сервера, а в чем-то радикально от них отличается. IDS 11 построен на полностью
модифицированной архитектуре, которая была представлена в версии IDS 9.1. Несмотря
на все изменения, сервер администрируется во многих случаях так, как и прежде
 Сегодня IDS - не «классический» сервер БД, скорее это «объектно-реляционный»
сервер. Сервер включает в себя высокопроизводительное ядро, разработанное в начале
1990-х годов (и постоянно улучшаемое) для использования преимуществ симметричной
многопроцессорной (symmetric multiprocessing SMP) и параллельной обработки (massively
parallel processing MPP). Самым большим улучшением было внедрение в сервер объектно-
ориентированного функционала в 1995 году, что предоставило разработчикам и
администраторам новые возможности по моделированию баз данных и управлению
данными. На сегодня IDS предоставляет значительно больше возможностей по
сравнению со стандартным реляционным сервером БД. В этой части рассмотрена
архитектура сервера и ее три основных компонента. Мы познакомимся со специальной
терминологией Informix. После прочтения вы поймете, почему сервер получил свое имя,
что такое поток, и из каких фундаментальных частей состоит сервер. Чтение книги
предполагает, что вы знакомы с языком SQL и концепциями реляционных и объектно-
ориентированных баз данных. В изложении я не буду спускаться до уровня битов и
байтов; если вам необходим такой уровень подробности – обратитесь к официальной
документации продукта или посетите веб-сайт IBM.

Что такое Informix Dynamic Server?

Informix Dynamic Server – сервер баз данных или, пользуясь маркетинговым новоязом,
«объектно-реляционная система управления базами данных» (object-reletional database
management system ORDBMS). Сервер может работать как со стандартными
(реляционными) типами данных (числа, символы), так и с объектно-ориентированными.
Эта технология является расширением возможности сервера хранить данные не-ASCII в
BLOB-объектах. Сегодня IDS позволяет значительно больше, чем просто писать байтовый
поток на диск, как это происходит с BLOB. Используя соответствующие функции, вы
можете не только хранить «объект», но и искать в нем, изменять что-то и, вообще,
выполнять любую операцию, имеющую смысл для этого «объекта» и поддерживаемую
функцией. Этот новый функционал обычно называется расширяемость (extensibility).
 В общем случае задачей сервера БД является обеспечение такой обработки данных
(хранение, изменение, удаление), которая защищает данные от компрометации или
изменения вне правил, установленных администратором. В IDS включены логические и
физические механизмы выполнения этих задач.
С логической точки зрения IDS обеспечивает возможность установить правила и условия
не только для столбца в таблице, но и для определения места хранения строки на диске.
Вы можете указать условия изменения или удаления элементов строки. Для выполнения
различных действий над БД можно использовать хранимые процедуры.
 С физической токи зрения IDS хранит набор логов, где записаны изменения в данных, и
предоставляет механизм блокировок для поддержания целостности данных. Для
минимизации простоя в случае поломки оборудования, балансирования нагрузки, обмена
данными между различными БД сервер БД позволяет создавать копию всего окружения
БД или его части на том же физическом сервере или на отдельном сервере. IDS позволяет
выполнять архивирование и восстановление БД. Для отката пользовательской ошибки вы
можете выполнить восстановление БД на конкретный момент времени. Недавно в сервер
была добавлена возможность восстановления архива, сделанного на одном физическом
сервере, на другом физическом сервере даже в том случае, когда сервера используют
разные ОС.
 Informix Dynamic Server разработан на основе динамической масштабируемой
архитектуры (Dynamic Scalable Architecture DSA) и позволяет эффективно использовать
возможности современных компьютеров – многопроцессорность и большой объем
памяти. Исследования показывают, что при добавлении в компьютерных ресурсов
(например, установка второго процессора) производительность Informix растет линейно.
 Основой DSA является распараллеливание процесса (process parallelization) ,или
параллельная обработка похожих задач. На рисунке 1.1. показана принципиальная схема
работы такого процесса




    Рисунок 1.1 Принципиальная схема параллельного выполнения запроса

На рисунке показано, как запрос может выполняться параллельно. Сначала происходит
несколько операций чтения с диска. Затем над результатами этого шага выполняются
функциональные операции. На каждом шаге данных, которые необходимо обработать,
становится меньше,и результаты выполнения операции объединяются с результатами
выполнения всех операций на этом уровне. Наконец, сервер возвращает результирующий
набор данных клиентскому приложению. Этот алгоритм обработки запроса выполняется
быстрее, чем последовательный, когда ожидается выполнение каждогошага перед
началом следующего.
 Кроме выполнения клиентских запросов, IDS также распараллеливает выполнение
административных операций – построение индексов, обновление статистики, проверку и,
при необходимости, восстановление после сбоя. Такая функциональность Informix
требует мониторинга и настройки. Как администратор сервера, вы должны установить
необходимые ограничения на параллельную обработку запросов. Более подробно об этом
будет говориться в моей следующей книге «Administering Informix Dynamic Server,
Advanced Topics».
 Архитектура IDS позволяет динамически выделять и освобождать необходимые ресурсы
«железного» сервера. Например, вы можете сконфигурировать IDS на использование
х МБт оперативной памяти, у блокировок и т.п. При увеличении нагрузки IDS попробует
выделить себе больше необходимых системных ресурсов. Вы можете ограничить
максимальное количество ресурсов, которые IDS может получить.
 Большинство конфигурационных параметров IDS может быть изменено и в тот момент,
когда сервер обрабатывает пользовательские транзакции. IBM дорабатывает эту
возможность в каждом новом релизе сервера, и сейчас эта работа близка к завершению.
 Именно возможность управлять необходимыми ресурсами и администрировать сервер
без перезапуска характеризуются словом «dynamic».
 В дополнение к объектно-ориентированной технологии IDS предоставляет
функциональность, которая позволяет эффективно интегрировать прямо в базу данных
новые и сложные типы данных. Это могут быть геодезические данные, аудио/видео, XML
и другие пользовательские типы.
 IDS является нейтральным к используемым средствам разработки и поддерживает
множество инструментов разработчика под управлением Linux, UNIX, Mac OS X,
Microsoft Windows.

Модель Informix Dynamic Server

Архитектура сервера БД во многом определяет его производительность,
масштабируемость, возможность поддерживать новые типы данных. Почти все
современные серверы БД построены на устаревшей модели, которая предполагает запуск
отдельного процесса для выполнения запросов каждого пользователя. Эта архитектура
хорошо работала, если размер БД и количество пользователей были невелики. Сегодня
такие сервера БД запускают сотни, а иногда и тысячи, процессов, управлением котороми
занимается ОС.
 Система с одним ЦП может обрабатывать один процесс в квант времени, затем она
переключается на другой и так далее. Поэтому процесс пользователя вынужден ждать,
когда ОС снова даст ему выполняться. Масштабирование таких систем не зависит от
программной составляющей, а зависит только от скорости процессора. Как я упомянул в
предыдущем разделе, архитектура Informix (DSA)специально создана для работы с
несколькими процессорами и большими объемами оперативной памяти. DSA включает в
себя встроенную многопоточность и распараллеливание, динамическое управление
памятью. Основными элементами архитектуры Informix Dynamic Server являются:

    Процессорный компонент
    Разделяемая память
    Дисковый компонент


Давайте рассмотрим каждый из них.
Процессорный компонент

IDS обеспечивает возможность масштабировать окружение БД путем настройки пула
процессов сервера БД – виртуальных процессоров(VPs). В следующей книге мы
рассмотрим механизмы работы этих процессоров. Как можно увидеть на рисунке 1.1., IDS
разбивает пользовательские запросы на отдельные подзадачи (сканирование таблиц,
объединение, группировка, сортировка), каждая из которых обрабатывается виртуальным
процессором. Виртуальные процессоры очень похожи на обычные ЦП тем, как они
планируют пользовательские запросы и управляют ими. На рисунке 1.2 показано, как
работает пул виртуальных процессоров IDS




        Рисунок 1.2 Пул виртуальных процессоров IDS

 Поток – это отдельная задача в процессе сервера БД. Множество потоков может
выполняться одновременно, в параллель, в пуле виртуальных процессоров. В отличие от
однопоточного движка, где каждая задача выполняется в свой квант времени,
виртуальные процессоры IDS являются многопоточными. Если какой-то поток ждет
ресурса или окончил свою работу, то виртуальный процессор сразу переключается на
выполнение следующего потока. Таким образом максимально используются ресурсы ЦП.
Эта возможность IDS называется «fan-in parallelism» и проиллюстрирована на рисунке 1.3
Рисунок 1.3 «Fan-in parallelism»

Пользовательский запрос может быть распределен между несколькими виртуальными
процессорами. Например, если выполняется многотабличное объединение (multitable join),
сервер БД разделит задачу на несколько подзадач, каждая из которых будет выполняться
на своем виртуальном процессоре. На рисунке 1.4 приведена иллюстрация этой
возможности, которая называется «fan-out parallelism».




             Рисунок 1.4 «Fan-out parallelism»
Суммарный эффект от этих двух типов распараллеливания – за единицу времени
выполняется больше операций. Иными словами, сервер БД работает быстрее.
 Поскольку потоки не привязаны к виртуальным процессорам, IDS выполняет
динамическое балансирование нагрузки. Виртуальные процессоры можно объединять в
группы, оптимизированные для выполнения какой-то конкретной задачи. Иллюстрация
этого факта приведена на рисунке 1.5, где показаны виртуальные процессоры,
оптимизированные для операций с ЦП, ввода/вывода, связи, административных задач.




     Рисунок 1.5 Виртуальные процессоры IDS, оптимизированные для выполнения
отдельных функций.

Виртуальные процессоры IDS имеют средства мониторинга, позволяющие отследить
деятельность пользователей и сервера БД. В однопоточных серверах БД каждая операция
представляет собой независимый процесс в ОС со своими стеком данных, кэшем
инструкций, что затрудняет мониторинг того, что происходит в сервере БД. В IDS
предусмотрены утилиты onstat и oncheck , которые позволяют легко увидеть, кто и что
делает и как это влияет на систему.
 Вы можете сконфигурировать необходимое количество ВП каждого класса, а также
определить специальные ВП (определенные пользователем ВП). Эти ВП выполняются
изолированно от ядра сервера, поэтому некорректно функционирующий
пользовательский ВП не сможет привести к падению сервера. При необходимости можно
изменять количество и тип ВП в то время, когда БД находится в on-line, например, при
повышении нагрузки на сервер. В UNIX, Linux, Mac OS X использование многопоточных
виртуальных процессоров значительно снижает количество процессов ОС, и как
результат, вызывает меньше переключений контекста. В Windows ВП реализованы как
потоки и используют многопоточные возможности ОС. Поскольку IDS имеет
собственные возможности поддерживать несколько потоков для обслуживания
клиентских запросов, то ему нужно меньше потоков Windows, что снижает затраты ОС на
управление потоками.
 Поскольку IDS полностью использует возможности ЦП, то ему нужно меньше
аппаратных мощностей, чем другому серверу БД. В исследованиях выявлено, что чтобы
достичь той же производительности, что и однопоточный или процессо-ориентированный
сервер БД, IDS необходимо 25-40 % ресурсов Такие возможности IDS позволят вам
сэкономить некоторые деньги на закупке и обслуживании оборудования.

Разделяемая память

Поскольку все задачи сервер выполняет с помощью ВП, то и память сервера БД
консолидирована. Этот большой блок разделяемой памяти предоставляет IDS
возможность быстро пересылать данные между виртуальными процессорами, а также
позволяет пользовательским приложениям получить данные прямо из памяти, если они
там есть по запросу другого пользователя, а не дергать лишний раз диск. Память внутри
этого блока многократно используется для обслуживания пользовательских запросов.
Например, когда сессия пользователя заканчивается, потоко-специфичная память этой
сессии очищается и может быть использована в другой сессии. Если для обслуживания
пользователей серверу БД необходимо больше памяти, он запрашивает у ОС
дополнительную память. Предельный объем памяти, доступной серверу БД, указывается
во время конфигурирования IDS. Когда дополнительная память больше не нужна, она
освобождается. Динамическое управление памятью позволяет избежать проседания
производительности сервера БД при увеличении нагрузки. Освобожденная память
возвращается под управление ОС и может быть использована другими процессами.
 Разделяемая память IDS состоит из четырех частей:
     Резидентная часть
     Виртуальная часть
     Коммуникационная часть
     Часть виртуального расширения


Когда стартует окружение БД, выделяются, по крайней мере, две части
памяти(управляются конфигурационными параметрами разделяемой памяти и
подключений). В Части 4 описаны конфигурационные параметры разделяемой памяти.
Ниже кратко описаны части разделяемой памяти IDS

Резидентная часть
Эта часть содержит, кроме всего прочего, общую информацию об окружении БД и
буферный пул. Также в этой части памяти размещены некоторые общесистемные
структуры, системные таблицы, содержащие данные о чанках, db-пространствах,
блокировках, транзакциях, зеркалах, пользовательских соединениях, буферы физического
и логического журнала. Информация из системных таблиц доступна через интерфейс
мониторинга системы (System Monitoring Interface см Часть 4 ). В резидентной части
разделяемой памяти также располагается буфер репликации HDR (если она запущена).
Подробно о репликации HDR смотрите в моей следующей книге.
 Самую большую часть резидентной области занимают регулярные буферы,
используемые для хранения данных, используемых пользовательскими приложениями. В
зависимости от характера операций в БД эти буферы могут помочь снизить количество
операций дискового ввода/вывода. Когда пользовательское приложение запрашивает
некоторые данные, сервер сначала пытается найти их в этих буферах. Увеличение размера
пула буферов может сниить количество дисковых операций и тем самым поднять общую
производительность системы, особенно для OLTP-приложений. В пуле буферов IDS
хранит часто используемые индексные и табличные данные. Для хранения применяется
рейтинговая система. Когда некоторый элемент используется, его рейтинг повышается.
Часть буферов хранит часто используемые данные, а другая часть – реже используемые.
Для клиентского приложения такая сегментация данных абсолютно прозрачна. Когда
данные запрашиваются реже, они перемещаются из буфера часто используемых в буфер
реже используемых.
 В версиях IDS до 10 все буферы в зависимости от версии ОС имели размер 2 Кб или 4
КБ. Размер буфера совпадал с размером страницы диска. В IDS 10 появилась возможность
создавать db-пространства с разным размером страниц. Максимальный размер страницы
равен 16 КБ. Для каждого размера страницы может существовать только один пул
буферов, поэтому если вы создадите три db-пространства с размером страницы 8 КБ, они
будут делить один 8 КБ пул буферов.
 Для управления буферами используются конфигурационные параметры BUFFERPOOL,
BUFFERS, LRU и некоторые другие. Сервер БД может самостоятельно управлять эти
параметрами.
 Поскольку в резидентной части разделяемой памяти хранятся пользовательские данные,
эта часть памяти существует всегда.

Виртуальная часть
Содержит стеки потоков, а также пулы памяти для следующих операций и данных
    Сортировки данных
    Кэширования словарей БД, содержащих информацию о таблицах и индексах БД
    Кэширования данных из функций, определенных пользователем
    Пула больших буферов для ВП асинхронного ввода/вывода (AIO VP)
    Хранения откомпилированных версий хранимых процедур
    «Глобального» пула
    Некоторых таблиц мониторинга окружения.


В виртуальном разделе также хранятся кэшированные планы для оптимизатора IDS. В
большинстве OLTP-приложений в течении операционного дня выполняются одинаковые
SQL-запросы с немного разными условиями (например, в запросе меняется
идентификационный номер контрагента). Для выполнения запроса сервер БД строит план,
как быстрее всего получить требуемые данные. Если данные уже находятся в буфере, то
они считываются оттуда, если нет, то требуется обращение к диску. В этом случае
оптимизатор строит план выполнения запроса. Оптимизатор ищет подходящий индекс
(если есть), строит список db-пространств, которые необходимо просмотреть и т.д. Этот
процесс незаметен для пользователей, но от него зависит время отклика системы.
 Informix имеет механизм кэширования плана. В кэше может храниться план выполнения
запроса для использования этого плана последующими такими же запросами. Эта область
памяти хранит сам SQL-запрос и информацию, необходимую оптимизатору для быстрого
выполнения запроса. Вы можете сконфигурировать размер кэша и время попадания плана
в кэш (например, после выполнения двух запросов). В большинстве случаев, чтобы не
хранить в кэше план одиночного запроса, план помещается в кэш после выполнения
запроса три или более раз. Если вам необходимо обновить планы выполнения запросов,
вы можете очистить кэш. Например, это можно сделать после выполнения команды
update statistics.
  Еще один интересный элемент виртуальной части – пул больших буферов. Предыдущие
версии сервера имели два типа буферов – регулярные и большие. Регулярные буферы
были очень похожи на буферы, хранимые в резидентной части разделяемой памяти.
Большой буфер имел размер 8 страниц и использовался для буферирования больших
последовательных объектов, например, блобов.
  В последней версии IDS для каждого AIO ВП (ВП асинхронного ввода/вывода)
выделяется большой буфер. Размер буфера определяется ОС, но он значительно больше,
чем в предыдущих версиях IDS. Буфер такого размера полезен при выполнении обработки
контрольной точки (checkpoint) и для чтения большого объема данных при выполнении
сложных аналитических запросов. После того, как данные помещены в большой буфер,
для использования они перемещаются в буферный пул в резидентной части памяти.
BLOB-объекты Informix читает и пишет через большой буфер, а не через резидентную
часть памяти. Ниже в этой части мы рассмотрим уже использованную терминологию –
страница данных, контрольная точка, BLOB.
 В зависимости от выполняемых сервером задач, объем виртуальной части памяти может
меняться. Как я говорил выше, это динамическая часть памяти. Начальный размер
виртуальной части памяти настраивается конфигурационным параметром
SHMVIRTSIZE. Параметр SHMADD определяет размер дополнительно запрашиваемой
памяти, а параметр SHMTOTAL указывает, сколько всего разделяемой памяти может
запросить сервер.
 Виртуальная часть разделяемой памяти существует при работе любого сервера Informix.

Коммуникационная часть
Существует только в том случае, если настроено соединение с сервером через
разделяемую память. Вы должны определить каждый необходимый вам протокол
соединения с сервером IDS. Если вы включите протокол соединения через разделяемую
память, приложения, выполняющиеся на одном железном сервере с IDS, будут
соединяться с Informix через разделяемую память. В части 4 мы рассмотрим возможные
протоколы соединения с сервером и параметр NETTYPE. В двух словах, при
использовании сетевых протоколов для связи с IDS обмен данными между сервером и
приложением идет через глобальный пул виртуальной части разделяемой памяти.

Часть виртуального расширения
Эта часть разделяемой памяти выполняет две функции. Здесь UDVP (определенный
пользователем ВП) выполняет DataBlade или определенную пользователем функцию
(UDR). Такой подход защищает сервер от падения из-за «кривой» UDR. Наличие этого
раздела разделяемой памяти зависит от конфигурации сервера БД.

Дисковый компонент
В большинстве инсталляций IDS на UNIX и UNIX-подобных ОС сервер БД управляет
обменом с дисками самостоятельно без участия ОС. В большинстве случаев данные
хранятся на разделах диска без файловой системы – так называемые, сырые устройства
(raw disk space). Данные с таких разделов читаются и пишутся с использованием прямого
доступа к памяти (direct memory access DMA) и последовательного доступа к сырым
устройствам (raw sequential access method RSAM). Механизм RSAM обеспечивает
большую, по сравнению с использованием файловой системы UNIX, производительность.
Если ОС поддерживает механизм асинхронного ввода/вывода (KAIO), то
производительность вырастает еще больше. KAIO – это возможность процесса
одновременно выполнять несколько операций дискового ввода/вывода без необходимости
ожидать отклика от подсистемы ввода/вывода.
 База данных может быть размещена в файлах ОС (выделенное пространство cooked
space). Использование выделенных файлов не гарантирует, что они будут расположены
на диске последовательно. Вы должны исходить из предположения, что не будут. Эта
особенность выделенных файлов влияет на производительность работы с диском.
 Некоторые операционные системы (типа Windows) для записи /чтения файлов
используют небуферизированный и некешированный ввод/вывод. Из этого факта следует
вывод: использование сырого диска под Windows выигрыша в производительности не
принесет. С версии IDS 11 поддержка небуферизированного ввода/вывода средствами ОС
переносится и на другие операционные системы. Эта функциональность может
обеспечить производительность, сопоставимую с производительностью сырого диска, при
использовании файловых чанков и db-пространств. Ради справедливости скажу, что этот
функционал IDS не является уникальным. Некоторые серверы БД поддерживают
хранение Баз данных только в выделенных файлах, другие поддерживают и выделенные
файлы, и сырые диски. У IDS есть очень полезная возможность – распределять данные на
диске в соответствии с некоторыми правилами. Informix поддерживает несколько схем
партиционирования данных. Наличие такого функционала также повышает доступность
данных, улучшает управляемость хранением старых данных (это называется data life-cycle
management – управление жизненным циклом данных).
  В Informix диск представлен некоторыми физическими и логическими свойствами. для
понимания этого я ниже ввожу необходимую терминологию. В Части 3 мы более
подробно поговорим о дисковом компоненте.

Основные термины.
 На протяжении книги я буду использовать некоторые фразы и слова, которые или имеют
смысл только для Informix Dynamic Server, или трактуются в нем не так, как в других
серверах БД. Поэтому перед тем, как двинуться дальше, давайте определимся с
ключевыми терминами. Для избежания двусмысленности, я буду стараться использовать
только правильные термины и избегать компьютерного сленга.
 В книге я буду постоянно обращаться к «экземплярам» и иногда к «серверу БД».
 Сервер БД – это откомпилированный исходный код, на использование которого вы
приобрели лицензию и установили на физический сервер; это Informix Dynamic Server.
Этот сервер имеет утилиты и программы для создания, администрирования сервера и
подключения к нему клиентских приложений. Вам, возможно, вообще не придется
администрировать и настраивать сам сервер. При правильной настройке файловой
системы и переменных окружения на физический сервер можно установить несколько
версий IDS, о чем мы подробно поговорим в части 3.
 Экземпляр – уникальное рабочее окружения или окружение времени выполнения,
используемое для хранения набора баз данных, к которым могут иметь доступ (или не
иметь) конечные пользователи. До этого момента в книге вместо термина «экземпляр»
использовался термин «окружение базы данных». Экземпляры и базы данных
настраиваются для достижения необходимой производительности. Изменения рабочего
окружения базы данных проводятся на уровне экземпляра. Физический сервер, на
который установлен сервер БД, может поддерживать несколько экземпляров. Каждый
экземпляр обладает своим набором конфигурационных параметров, памятью и дисковым
пространством.

Физические элементы
Чтобы понять, как физические элементы объединяются в логические структуры, давайте
рассмотрим рисунок 1.6. на нем сплошные линии соответствуют физическим элементам, а
пунктирные – логическим.
Рисунок 1.6. Физические и логические структуры экземпляра IDS

Базовый физический элемент экземпляра называется страница данных или просто
страница. Страница данных имеет фиксированный размер, называемый размером
страницы; размер страницы – минимальный объем данных, который может быть записан
на диск или считан с диска. Как я говорил выше, в зависимости от версии ОС размер
страницы может составлять 2 КБ или 4 КБ. Большинство утилит мониторинга и
администрирования IDS выводят информацию об использовании дискового пространства
в страницах, а не в килобайтах или мегабайтах. Для приведения этих данных к мегабайтам
необходимо количество страниц умножить на 2 (4,6,8,12,16).
 Самый маленький дисковый компонент, который вы можете администрировать,
называется чанк. С физической точки зрения чанк – это обычно целый дисковый раздел,
хотя может быть и меньше раздела, но обязательно должен быть логически непрерывным
(подробнее смотрите часть 5). Если для хранения данных вы используете выделенные
файлы, то чанк представляет собой обычный плоский файл. С логической точки зрения
чанк представляет собой набор страниц данных и является базовым элементом для
создания db-пространств и добавления в них дополнительного пространства.
 DB-пространство – логический набор из одного или более чанков, созданных на одном
или нескольких физических дисках. В db-пространствах хранятся таблицы баз данных.
Если вы не сконфигурировали параметры, определяющие сортировку и упорядочение
результатов выборки в памяти, то эти операции проводятся с использованием диска. DB-
пространства не могут разделяться между несколькими экземплярами, а физический диск,
на котором расположены чанки, может содержать чанки, принадлежащие другим db-
пространствам или экземплярам, расположенным на том же физическом сервере (см.
рисунок 1.7)
Рисунок 1.7. Пересечение чанков db-пространств нескольких экземпляров

Каждый из трех дисков, показанных на рисунке разделен на четыре раздела. Эти разделы
(или чанки) использовались для создания db-пространств трех экземпляров сервера
(danube, madeira, sarthe). DB-пространство Danube_1 создано из чанков ,расположенных на
разных дисках (диск 2 и диск 3).
 В процессе создания db-пространства вы должны указать его первый чанк. Потом, при
необходимости вы можете добавить чанки в db-пространство, а также удалить их.
Начальный чанк db-пространства не может быть удален; вы должны удалить все db-
пространство и выполнить полное архивирование базы данных.
 Итак, экземпляр – это автономное пространство для обработки данных, состоящие из db-
пространств, где хранятся базы данных, временных пространств и предварительно
скомпилированных функций (хранимые процедуры и определенные пользователем
функции). Как вы увидите ниже, экземпляр имеет имя, под которым он известен в сети, и
конфигурационные параметры, определяющие, как работает этот экземпляр.

Элементы экземпляра.
Экземпляр содержит в себе несколько структур данных, от которых зависит его работа.
 Корневое db-пространство(rootdbs) – это сердце экземпляра. Это db-пространство
содержит всю информацию об экземпляре и, кроме того, может использоваться для
выполнения некоторых операций, если в других db-пространствах экземпляра для этих
операций не хватает места. Повреждение корневого db-пространства приводит к
недоступности всего экземпляра; это же справедливо и для логического и физического
журнала.
Физический журнал содержит исходные образы страниц. Журнал используется в том
случае, если необходимо отменить изменения, внесенные в данные.
Логический журнал содержит исходные образы страниц, а также в него записываются
изменения данных и фиксируется, были ли эти изменения записаны на диск.
Без этих двух журналов экземпляр не работает.

Термины баз данных
Наверное, вы уже представляете, что такое реляционная база данных. Вы понимает, что
данные хранятся в столбцах и что набор столбцов образует строку. Строки группируются
в таблицы и на основе ключевых или важных столбцов для ускорения поиска данных
могут быть построены индексы.
 Кроме числовых и символьных типов данных, общих для всех реляционных СУБД, вы
можете использовать «нестандартные» или, в терминологии IDS, расширенные типы
данных. Вы можете создавать типы данных, необходимые именно вашему приложению.
Так как IDS поддерживается объектно-ориентированный подход, элементы, от столбца до
таблицы, могут иметь поддержку наследственности и другого функционала, недоступного
в чистой реляционной СУБД. Используя эту возможность, можно использовать
традиционные элементы данных новыми методами, недоступными в реляционной модели
данных.
 В IDS также включены большие двоичные объекты (binary large objects) или BLOB-ы.
Существует два типа BLOB-ов – простые и смарт-BLOBы (simple and smart). Простые
BLOBы являются с точки зрения сервера черным ящиком. Смарт-BLOBы состоят из
типов данных, которыми сервер БД может манипулировать, используя функционал,
добавленный в экземпляр. Этот функционал может браться из DataBlade, bladelet или
вашей собственно определенной пользователем функции (UDR). Ниже мы рассмотрим
этот вопрос более подробно. Преимущество BLOBов в том, что большие объемы данных
могут хранится одним непрерывным блоком без разбиения их на куски фиксированной
длины. BLOB-объекты могут храниться в специально настроенных db-пространствах
(BLOB-пространства). Как и в случае с BLOB-объектами, существует два типа BLOB-
пространств – простые BLOB-пространства (обычно называются BLOB-пространства) и
смарт BLOB-пространства. BLOB-пространства не слишком отличаются от обычных db-
пространств, особенно сейчас, когда появилась возможность создавать обычные db-
пространства с разным размером страницы. BLOB-пространства были первыми db-
пространствами с переменным размером страницы, то давало возможность хранить BLOB
на одной BLOB-странице. Смарт-BLOBы отличаются тем, что их хранение и извлечение
управляется с помощью метаданных, хранимых в смарт BLOB-пространстве. В части 5 мы
поговорим о создании обоих типов BLOB-пространств.
 BLOB-объекты делятся на два больших типа – текстовые и двоичные. Текст-
ориентированные BLOBы представляют собой документы в некоторой форме. Я работал с
инсталляциями Informix, где в BLOB-ах хранились документы вместе с контрольными
кодами. Когда из таблицы выбиралась строка, BLOB-столбец этой строки передавался как
параметр скрипту, который запускал программу обработки текста. Для сохранения
документа в БД пользователь запускал макрос, который записывал документ обратно в
базу (используя SQL-команду insert или update). Таким же образом можно работать и с
двоичными BLOBами. Двоичными BLOBами являются оцифрованные звук и видео,
картинки и т.п. Интерпретацией информации из двоичных BLOBов должно заниматься
клиентское приложение.
  Как говорилось выше, таблицы с данными хранятся в db-пространствах, состоящих из
чанков. Чанки могут располагаться на сырых устройствах – дисковых разделах без
файловой системы и в выделенных файлах.
   Физические сегменты, выделяемые для хранения данных таблицы, называются
экстентами. Ориентируясь на ожидаемое количество строк в таблице, вы можете
выделить экстент достаточного размера для хранения данных таблицы в логически
непрерывном пространстве. Если база хранится в выделенных файлах, экстент не будет
физически непрерывным, а если на сырых устройствах, то будет.
 Когда табличный экстент заполняется данными и требуется дополнительное место,
сервер выделяет таблице новый экстент. Если в db-пространстве находится несколько
таблиц, то новый экстент может не быть добавлен сразу вслед за заполненным. На
рисунке 1.8 показан случай разделения экстентов одной таблицы экстентами других
таблиц.
Рисунок 1.8 Пересечение табличных экстентов

Большое количество пересекающихся экстентов неблагоприятно влияет на
производительность чтения данных. В части 8 мы рассмотрим команду, которая
позволяет узнать о количестве пересечений экстентов в db-пространстве. Таблица может
как находится целиком в одном db-пространстве, так и быть распределена по разным db-
пространствам. Такой процесс называется фрагментированием или партиционированием
таблицы. Таблица – не единственный объект, который можно фрагментировать, индексы
также имеют опции фрагментирования. Грамотное фрагментирование таблиц и индексов
может существенно улучшить производительность сервера. В части 5 мы детально
поговорим о фрагментировании таблиц и индексов.

Типы окружения базы данных.

Окружения базы данных разделяют на две большие категории. OLTP-системы
характеризуются большим количеством операций чтения/записи, обслуживают большое
количество пользователей, выполняющих однотипные операции в базе данных и
обеспечивают минимальное время отклика. Большинство бизнес-приложений являются
именно OLTP-приложениями, например, системы обработки заказов. IDS прекрасно
подходит для работы в качестве OLTP-сервера.
OLAP-, или DSS-системы характеризуются гораздо меньшим количеством пользователей,
однако, эти пользователи выполняют сложные запросы, часто за большие интервалы
времени и не так требовательны ко времени отклика системы. Хотя IDS в наибольшей
степени подходит для OLTP, многие заказчики используют его и в DSS, из-за наличия
масштабируемости, расширенных типов данных, производительности и небольших затрат
на администрирование.

Транзакции

Иногда необходимо, чтобы в базе данных выполнился или весь набор операций, или не
выполнилось ничего. Такая группа операций называется транзакцией. Типовым примером
транзакции является перечисление денег в банке. Предположим, что вы хотите
перечислить деньги со счета на счет. В этом случае деньги должны быть сняты с одного
счета, а затем зачислены на другой счет. Если одна из этих операций завершится
неудачно, то должны быть откачены обе.
 Когда я объяснял концепцию корневого db-пространства, то упоминал о том, что сервер
отслеживает операции в базе данных, используя два компонента на диске – физический и
логический журнал. Физический журнал содержит исходный образ данных, которые
будут изменяться. Когда данные модифицируются или удаляются, сервер записывает эти
изменения в логический журнал. Если вернуться к нашему банковскому примеру, можно
сказать, что когда обе операции выполнены, то транзакция зафиксирована(committed).
Исходные значения и их изменения записаны в текущий логический журнал и транзакция
помечена как завершенная. Если произошла ошибка, то сервер откатывает(roll back)
транзакцию и использует данные физического журнала для восстановления исходных
данных.

Контрольные точки (checkpoints)

Данные, находящиеся в разделяемой памяти, должны периодически записываться на диск.
Это необходимо для сохранения целостности данных. В некоторых случаях данные
записываются на диск автоматически в конце выполнения задачи; в других случаях запись
осуществляется как часть обработки контрольной точки (checkpoint). Во время обработки
контрольной точки данные на диске обновляются так, чтобы соответствовать данным,
находящимся в разделяемой памяти. В предыдущих версиях IDS во время обработки
контрольной точки остальные операции в базе приостанавливались на короткое время; это
было необходимо для корректной обработки критически важных данных экземпляра и для
записи данных на диск. В версии IDS это время значительно уменьшено. Пользователи не
должны заметить прерывание в работе экземпляра.
 После завершения обработки контрольной точки сервер находится в логически
целостном состоянии (logically consistent state). Более детально об обработке контрольной
точки мы поговорим в следующей книге.

Заключение

В этом разделе дано общее описание архитектуры Informix Dynamic Server и приведен
обзор основных терминов, относящихся к Informix. После прочтения вы должны знать о
трех основных компонентах архитектуры IDS, как сервер работает с разделяемой памятью
и что содержит каждая часть разделяемой памяти. Вам должна быть понятна основная
терминология, разница между сервером и экземпляром, а также, что такое чанк и db-
пространство, в чем разница между OLTP и DSS, что такое BLOBы и контрольные точки.
 Я несколько раз отмечал, что IDS отличается от остальных серверов БД с точки зрения
используемой архитектуры и функциональной перспективы. В этой части рассказывалось
о архитектурных отличиях. В части 2 мы поговорим на функциональных
усовершенствованиях, доступных в IDS в результате интеграции объектно-
ориентированного подхода к БД Illustra с динамически масштабируемой архитектурой
IDS.
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation
Carlton doe. administering informix dynamic server. building the foundation

More Related Content

Viewers also liked

Sekilas tentang lpmka
Sekilas tentang lpmkaSekilas tentang lpmka
Sekilas tentang lpmkaOfit Adrian
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]jburfeind
 
Ca l1 - history
Ca   l1 - historyCa   l1 - history
Ca l1 - history
Jakaria Khan
 
знаранцэцэг
знаранцэцэгзнаранцэцэг
знаранцэцэгansu02
 
зурагнууд
зурагнуудзурагнууд
зурагнуудansu02
 
Problematica da-psicologia-da-educacao
Problematica da-psicologia-da-educacaoProblematica da-psicologia-da-educacao
Problematica da-psicologia-da-educacao
Maysa Puccinelli
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]jburfeind
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]jburfeind
 
Ca l3 - history
Ca   l3 - historyCa   l3 - history
Ca l3 - history
Jakaria Khan
 
Ca l4 - types of computers
Ca   l4 - types of computersCa   l4 - types of computers
Ca l4 - types of computers
Jakaria Khan
 
Crafting Interactive Webinars
Crafting Interactive WebinarsCrafting Interactive Webinars
Crafting Interactive Webinars
elcole
 
Ca l2 - history
Ca   l2 - historyCa   l2 - history
Ca l2 - history
Jakaria Khan
 

Viewers also liked (15)

Presentació1
Presentació1Presentació1
Presentació1
 
Sekilas tentang lpmka
Sekilas tentang lpmkaSekilas tentang lpmka
Sekilas tentang lpmka
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]
 
Ca l1 - history
Ca   l1 - historyCa   l1 - history
Ca l1 - history
 
знаранцэцэг
знаранцэцэгзнаранцэцэг
знаранцэцэг
 
Wedding slideshow
Wedding slideshowWedding slideshow
Wedding slideshow
 
зурагнууд
зурагнуудзурагнууд
зурагнууд
 
Ali 2013 06-24
Ali 2013 06-24Ali 2013 06-24
Ali 2013 06-24
 
Problematica da-psicologia-da-educacao
Problematica da-psicologia-da-educacaoProblematica da-psicologia-da-educacao
Problematica da-psicologia-da-educacao
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]
 
Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]Ed%20633%20 persuasive%20presentation[1]
Ed%20633%20 persuasive%20presentation[1]
 
Ca l3 - history
Ca   l3 - historyCa   l3 - history
Ca l3 - history
 
Ca l4 - types of computers
Ca   l4 - types of computersCa   l4 - types of computers
Ca l4 - types of computers
 
Crafting Interactive Webinars
Crafting Interactive WebinarsCrafting Interactive Webinars
Crafting Interactive Webinars
 
Ca l2 - history
Ca   l2 - historyCa   l2 - history
Ca l2 - history
 

Similar to Carlton doe. administering informix dynamic server. building the foundation

Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
BAKOTECH
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Marina Gryshko
 
20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле
Andrew Sovtsov
 
Cеминар: Работа с технологиями - Технологические платформы
Cеминар: Работа с технологиями - Технологические платформыCеминар: Работа с технологиями - Технологические платформы
Cеминар: Работа с технологиями - Технологические платформыMDIF
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1guestcaef82
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Ilya Gershanov
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
Агентство AlterEGO
 
презентация.1
презентация.1презентация.1
презентация.1
Ivan Mashkantsev
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреDEPO Computers
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
Konstantin Osipov
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusOntico
 
Александр Воинов - Тренды Web
Александр Воинов - Тренды WebАлександр Воинов - Тренды Web
Александр Воинов - Тренды Web
DrupalSib
 
IBM Technology Day 2013 Sy Storage
IBM Technology Day 2013 Sy StorageIBM Technology Day 2013 Sy Storage
IBM Technology Day 2013 Sy Storage
Sergey Kostenko
 
инструментарий
инструментарийинструментарий
инструментарийigdweb
 
Interbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios androidInterbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios android
Andrew Sovtsov
 
проектная работа на тему субд
проектная работа на тему субдпроектная работа на тему субд
проектная работа на тему субд
Marsel Galikhanov
 

Similar to Carlton doe. administering informix dynamic server. building the foundation (20)

Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
 
20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле20160323 Пример бизнес-приложения контроля качества в розничной торговле
20160323 Пример бизнес-приложения контроля качества в розничной торговле
 
Cеминар: Работа с технологиями - Технологические платформы
Cеминар: Работа с технологиями - Технологические платформыCеминар: Работа с технологиями - Технологические платформы
Cеминар: Работа с технологиями - Технологические платформы
 
Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1Lotus Forum 2009 Websphere Portal 6.1
Lotus Forum 2009 Websphere Portal 6.1
 
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-casesInformatica for Data Warehouse Optimisation and Data Lake Use-cases
Informatica for Data Warehouse Optimisation and Data Lake Use-cases
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 Rus
 
Александр Воинов - Тренды Web
Александр Воинов - Тренды WebАлександр Воинов - Тренды Web
Александр Воинов - Тренды Web
 
10 субд
10 субд10 субд
10 субд
 
IBM Technology Day 2013 Sy Storage
IBM Technology Day 2013 Sy StorageIBM Technology Day 2013 Sy Storage
IBM Technology Day 2013 Sy Storage
 
Present
PresentPresent
Present
 
инструментарий
инструментарийинструментарий
инструментарий
 
Interbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios androidInterbase xe7 - универсальная субд для windows linux mac ios android
Interbase xe7 - универсальная субд для windows linux mac ios android
 
проектная работа на тему субд
проектная работа на тему субдпроектная работа на тему субд
проектная работа на тему субд
 

Carlton doe. administering informix dynamic server. building the foundation

  • 1. Основы администрирования Informix Dynamic Server Благодарности Я не могу поверить, что окончил еще одну книгу. Всякий раз я говорил себе, что вот она – последняя книга, и вот сейчас я закончил писать эту книгу и начал следующую. Прежде всего, хочу поблагодарить вас за покупку. Есть другие книги, которые вы могли приобрести, но ваш выбор пал на эту. Я могу предположить, что вы купили книгу за свои деньги, а не за счет компании. В этом случае я особенно благодарен. В любом случае надеюсь, что книга пригодится вам как источник ответов на вопросы и для лучшего понимания работы Informix Dynamic Server. Окидывая взглядом промежуток времени с конца 90-х годов по сегодняшний день, могу сказать, что это были прекрасные годы. Компания Informix была приобретена IBM Сообщество Informix выжило и сейчас процветает. Informix расцвел благодаря IBM, Группа разработки IDS сконцентрирована на создании самого лучшего сервера БД для существующих и будущих заказчиков. Это БД-эквивалент выражения «если вы создадите, они придут». Как я писал в предисловии к моей небольшой книге о IDS 11.10, я очень горд, что могу представить работу этой группы. Они создали новые возможности, такие как MACH-11 и значительное повышение производительности, одновременно облегчив администрирование сервера. Я восхищаюсь тем, что будет сделано в новых релизах и насколько лучше станет сервер. Я решил написать эту книгу и ее продолжение, поскольку IBM активно продвигает IDS на рынке. Активные и потенциальные пользователи, а также другие компании- разработчики знают, что IDS возвращается. Я хочу внести свою лепту в поддержку и рост сообщества IDS. Написание книги – нелегкая задача, даже если вы делали это неоднократно. Были и бессонные ночи, и бесконечные вздохи, когда я пытался заставить себя взглянуть в монитор и написать хотя бы страницу. Иногда казалось, что слова сами срываются с пальцев, и я силой заставлял себя пойти спать, чтобы утром добраться до работы. К счастью, мне помогали многие люди. Рискуя забыть кого-то, я все-таки хочу поблагодарить тех, кто сделал выход этой книги возможным. Прежде всего хочу поблагодарить инженеров Informix, которые отвечали на мои вопросы и оказывали техническую поддержку, особенно John Miller, Jonathan Leffler, Jacques Roy, Scott Pickett, Mark Jamison, Guy Bowerman, Amit Dandekar, Charles Gonsalves, Paul-John To. За техническое редактирование спасибо Edgar Sanchez, Mark Jamison, Sudhir Katke, Randy House, Suma Vinod, Sanjit Chakraborty Я всегда буду в долгу у Jacques Roy за его работу. Он написал Java-методы определения размера таблиц. Спасибо Jerry Keesee за то, в своем плотном графике он нашел время и написал предисловие к книге, а также за помощь, которую он мне всегда оказывал. Susan Visser из IBM Publishing всегда была стойким защитником книг по IDS, благодаря ей вышли мои книги по Informix, в том числе и эта. Cathy Elliott – волшебница из мира IBM Marketing. Она всегда оказывала мне всю возможную поддержку, как и Michael Spano – мой менеджер. Мне также помогали многие люди из International Informix Users Group (IIUG), особенно Lester Knutsen, Walt Hultgen, Stuart Litel, Cindy Lichtenauer, Alexander Koerner и многие другие. Если вы с легкостью прочтете книгу, обязательно скажите спасибо Katie Tipton. Я работал со многими редакторами, но Katie – лучшая. Она отредактировала многие мои
  • 2. бессвязные мысли и логические пробелы в рукописи и исправила синтаксические ошибки, пропущенные мной и техническими редакторами. Jeff Phillips разработал обложку книги и не говорите мне, что обложка не важна. И, конечно, отдельное спасибо моей семье Содержание Предисловие О книге Часть 1 Введение в Informix Dynamic Server Что такое Informix Dynamic Server Модель Informix Dynamic Server Основные термины Заключение Часть 2 Введение в расширяемость Что такое расширяемость и зачем вам это нужно Расширяемые типы данных Преобразования Определенные пользователем процедуры и агрегаты Функциональные индексы Датаблейды, блейдлеты и другие дополнения Заключение Часть 3 Подготовка к инициализации Логический дизайн базы данных Вычисление размеров таблиц Вопросы, связанные с жестким диском Что использовать для db-пространств – выделенные файлы или сырые устройства Вопросы проектирования db-пространств Настройка ядра Стратегии архивирования Установка окружения Вопросы, связанные с несколькими экземплярами сервера Заключение Часть 4. Установка и инициализация IDS Установка или обновление сервера Изменение конфигурационных параметров Первый запуск экземпляра Системные базы данных
  • 3. Заключение Часть 5 Основные задачи администратора Утилиты администрирования Informix Изменение рабочих режимов Изменение режимов логирования Управление db- и BLOB-пространствами Создание, перемещение и изменение размеров логов. Автоматический запуск и останов IDS Управление доступом и безопасность Отстрел пользовательской сессии Заключение Часть 6 Создание окружения базы данных Утилита dbaccess Режимы логирования базы данных Создание базы данных Создание и партиционирование(partitioning) таблиц и индексов Ограничения, ссылочная целостность и индексы Внесение информации в базу данных Конкурентность и уровни изоляции Некоторые интересные SQL-запросы Утилита dbschema Заключение Часть 7 Архивирование и восстановление Стратегии архивирования Архивирование логического журнала Устройства для архивирования Как работает процесс архивирования Опции восстановления Использование утилиты ontape Использование ON-Bar и Informix Storege Manager Archecker и проверка архивов Использование Table-level restore Заключение Часть 8 Мониторинг экземпляра Новый интерфейс системного администрирования Утилиты командной строки Мониторинг системы и экземпляра с помощью ОАТ Заключение Приложение
  • 4. Вступительное слово Если вы держите в руках эту книгу, это значит, что вы открываете или уже открыли для себя самый лучший OLTP-сервер БД. Я не могу назвать себя беспристрастным, так как я – начальник группы разработки Informix, но приобретенная квалификация позволяет мне оценит инновации, внедренные в каждую часть этого замечательного продукта. На протяжении последних 15-ти лет я имел счастье работать с наиболее талантливыми инженерами, сотрудниками поддержки, техническими писателями и полевыми специалистами. За последние десятилетия технологии и аппаратное обеспечение развивались экспоненциально. Стали реальностью SOA, Web 2.0 и 3-D Интернет. На каждом витке развития эта прекрасная группа инженеров и архитекторов предвосхищали требования вашего бизнеса, а также совершенствовали базовые возможности продукта. Эта книга – портал в инновации и функциональность Informix с учетом последних усовершенствований и обновлений. Многолетний опыт автора позволяет ему показать четкую перспективу развития Informix. Я знаю Карлтона на протяжении 10 лет. За это время он написал несколько прекрасных книг по IDS. В Карлтоне присутствует уникальная комбинация глубоких знаний Informix и таланта писателя и преподавателя. Эта книга – прекрасный ресурс и для существующих, и для новых пользователей Informix. Карлтон использует пошаговый подход в раскрытии возможностей Informix – инициализация и инсталляция, архивирование и мониторинг. В книгу также включена информация о последних нововведениях в Informix – вплоть до текущего 11-го релиза. С самого начала в разработку Informix было положено стремление предоставить пользователям OLTP-возможности уровня Enterprise на основе архитектуры с минимальными затратами на администрирование. Другие могут обещать такое, мы уже сделали! Архитектура Informix обеспечивает производительность, возможность создания встраиваемых решений, масштабируемость с минимальными затратами на администрирование. Правильный выбор сервера БД может дать значительные преимущества, и когда принятие решения базируется на технических возможностях, то Informix – выбор лидеров. Возможно, вы даже не знаете, насколько широко используется Informix в мире. Под управлением Informix работают базы данных магазинов, совершаются он-лайновые банковские транзакции и проводится авторизация кредитных карт. Informix используется в службе «911», для бронирования авиабилетов, в системах GPS-навигации, телефонных маршрутизаторах, его применяют Konkan Railway в Индии, финансовые учреждения Китая, крупнейший поставщик молочных продуктов Новой Зеландии. Есть также множество других приложений, но о них я не могу рассказать. Благодаря своей надежности Informix используется для создания mission-critical приложений. Есть возможность создавать приложения 24х7 с надежностью 99.999 и выполнять масштабирование системы на недорогом аппаратном обеспечении. IDS 11 выводит Informix на новый уровень надежности и масштабируемости: кластеры активный- активный могут разделять один диск, есть возможность управлять географически удаленными репликами. Для управления этим функционалом есть понятные GUI- инструменты, позволяющие заказчикам масштабировать систему без сложных аддонов. Редакции Informix есть для всех популярных ОС – Linux, UNIX, Windows, Linux для zSeries и даже для Mac OS X. Наши заказчики и партнеры работают вместе с нами над формированием направлений развития продукта. Написанием этой книги Карлтон выполнил значительную работу по изложению основ администрирования Informix в понятном виде. Он преподносит подарок всем энтузиастам Informix. Наслаждайтесь книгой. Я надеюсь информация, представленная в книге, поможет вам еще раз взглянуть на работу сообщества Informix. Jerry Keesee, начальник отдела разработки Informix
  • 5. О книге. Поскольку вы читаете книгу, я могу предположить, что вы или администратор базы данных (DBA) , или отвечаете за обслуживание окружения базы данных под управлением Informix Dynamic Server (таких людей я называю администраторами Dynamic Server - DSA). Я не знаю, новичок ли вы в этой работе или уже имеете опыт, и какой именно. Возможно, вы работали с другими СУБД под UNIX, а сейчас хотите установить и администрировать IDS. Если да, то вы откроете для себя новый мир. Или вы в первый раз используете промышленный сервер , а до этого работали с простыми СУБД. Вы устанавливаете IDS, поскольку вам нужны надежность, функциональность, скорость, и хотите знать, что делать дальше. Вы тоже открываете для себя новый мир. Если вы похожи на меня, то, наверное, открытие коробки с дистрибутивом IDS было и возбуждающим, и пугающим. Когда в мои руки попало то, что известно, как самый быстрый и архитектурно правильный сервер на рынке, я был возбужден. Мне не терпелось установить его и оценить производительность. Одновременно я посетил сайт Informix и был устрашен количеством и размером документации. Поверхностный поиск выявил 32 книги и около 9000 страниц только по серверу без учета дополнительных продуктов типа DataBlades. Неужели сервер был настолько сложным, что требовался такой объем документации? На этот вопрос можно ответить и «да», и «нет». Да, сервер Informix сложнее, чем другие СУБД, представленные сегодня на рынке, и имеет больше опций. С другой стороны для запуска и настройки сервера нет необходимости изучать всю документацию. В документации приведено подробное описание того, как работает сервер и почему он работает именно так. Документация IDS подробна , доступна для понимания и заслуживает изучения. Структура книги В книге я попытался соединить сухие сведения из документации и реальную жизнь. Расположение тем, как мне кажется, соответствует логическому порядку работы с окружением базы данных. Сначала вы спроектируете окружение, затем создадите и наполните его. Будете выполнять архивирование данных, мониторить и настраивать сервер. Это самые важные задачи, и каждая из них разобрана в соответствующей части. Книга не ставит целью объяснить механизмы работы Informix, вместо этого она предназначена для помощи в запуске и управлении СУБД. В книге описаны основные и самые важные задачи администратора, которые выполняются регулярно. В следующей книге «Administering Informix Dynamic Server; Advanced Topics » мы поговорим о репликации, высокой доступности, распределенных транзакциях и других темах, к которым необходимо подробное объяснение. Надеюсь, что вы приобретете и вторую книгу. Предполагаемая аудитория. Книга написана в расчете на новичков в Informix, а также на тех, кто переходит с ранних версий. Я старался избегать объяснений на уровне битов и байтов. Если вам необходимо понимать работу сервера на таком уровне, стоит обратиться к руководству администратора IDS и другой документации сервера. Большинство того, что описано в книге, есть в официальной документации, поэтому не думайте, что книга сможет ее заменить. Не стоит, однако, полагать, что книга представляет собой обзор документации. Приведенные в книге рекомендации являются результатом долгой работы с Informix. В официальной документации этого нет. При написании книги я руководствовался одним важным предположением – я полагаю, что вы знаете концепции реляционных баз данных, а также что такое таблицы, столбцы и другие компоненты реляционной БД.к этим основам вы сможете добавить знание объектно-ориентированных возможностей Informix.
  • 6. Краткое содержание Часть 1 – Введение в Informix Dynamic Server Здесь рассказывается о структуре IDS, а также представлены и объяснены ключевые слова, используемые в книге. Часть 2 – Введение в расширяемость Эта часть посвящена объектно-ориентированным возможностям Informix Dynamic Server Часть 3 – Подготовка к инициализации Здесь затронуто множество вопросов по планированию окружения IDS. Разговор, во многом, ведется обобщенно, поскольку нет общих правил построения окружения БД. В конце объясняется, какие переменные окружения и файлы необходимо установить и как это сделать. Часть 4 – Установка и инициализация IDS В этой части описаны все необходимые для создания экземпляра или окружения БД шаги и переменные. Даны рекомендации по значениям самых критичных конфигурационных параметров. В конце приведены данные о системных базах данных IDS. Эта часть более конкретна, в отличии от предыдущих. Часть 5 – Основные задачи администрирования. Здесь мы поговорим о основных ежедневных задачах администрирования экземпляра: о добавлении и освобождении дискового пространства, запуске и остановке экземпляра, отстреле пользовательских сессий. Также в этой части представлены графические инструменты администрирования. Часть 6 – Создание окружения базы данных. Обсуждаются вопросы создания БД и наполнения ее данными: партиционирование таблиц и индексов, логирование, а также некоторые специфические для Informix SQL-запросы, знать которые будет весьма полезно. Часть 7 – Архивирование и восстановление Одна из самых малопривлекательных, но необходимых работ – архивирование БД на ленту или диск. Мы поговорим о различных стратегиях архивирования, их преимуществах и недостатках. Я расскажу, как Informix может выполнять moment-in-time архивирование и восстановление, без необходимости останавливать экземпляр. Подробно рассказывается о использовании утилиты ontape и комплекта утилит ON-Bar совместно с Informix Storage Manager (ISM) Часть 8 – Мониторинг экземпляра На протяжении всей книги вы будете встречать вывод данных мониторинговыми утилитами Informix. В этой части мы сосредоточимся на работе с этими утилитами и поговорим, что необходимо мониторить в первую очередь. В большинстве своем речь
  • 7. будет идти о утилитах командной строки и функциональности, доступной в новом средстве – Open Admin Tool (OAT) для Informix Соглашения, принятые в книге В книге использованы следующие соглашения:  Каждая часть начинается со списка тем, которые будут обсуждаться  Каждая часть заканчивается заключением, где приведены наиболее важные сведения, которые вам необходимо заполнить, а также говорится о том, какие вопросы будут обсуждаться в следующей части  Зарезервированные слова в примерах кода не выделены заглавными буквами, так как я считаю, что такое выделение только мешает читать код. Лично я использую заглавные буквы только в комментариях к исходным текстам, когда хочу привлечь внимание к важному месту.  Иногда вы будете видеть символ обратного слеша (). Он используется как маркер продолжения в примерах, которые разбиты на несколько частей. В действительности вам будет необходимо вводить все инструкции одной строкой.  На протяжении книги дополнительная информация будет выделяться с помощью специальных знаков.
  • 8. Введение в Informix Dynamic Server В этой части  Архитектура сервера  Определение ключевых терминов В независимости от того, новичок ли вы в Informix или переходите с младших версий вам необходимо знать как управлять сервером и использовать его функциональность. Цель этой книги – сделать процесс обучения более легким путем выделения того, что вам необходимо знать для конфигурирования, запуска и настройки окружения БД. IDS. Хотя на первый взгляд Informix Dynamic Server может показаться похожим на другие СУБД, он очень сильно другой. Вскоре вы убедитесь, что он более стабилен и надежен, проще управляем, чем другие сервера. В книге основное внимание уделяется IDS 11, который в чем-то похож на младшие версии сервера, а в чем-то радикально от них отличается. IDS 11 построен на полностью модифицированной архитектуре, которая была представлена в версии IDS 9.1. Несмотря на все изменения, сервер администрируется во многих случаях так, как и прежде Сегодня IDS - не «классический» сервер БД, скорее это «объектно-реляционный» сервер. Сервер включает в себя высокопроизводительное ядро, разработанное в начале 1990-х годов (и постоянно улучшаемое) для использования преимуществ симметричной многопроцессорной (symmetric multiprocessing SMP) и параллельной обработки (massively parallel processing MPP). Самым большим улучшением было внедрение в сервер объектно- ориентированного функционала в 1995 году, что предоставило разработчикам и администраторам новые возможности по моделированию баз данных и управлению данными. На сегодня IDS предоставляет значительно больше возможностей по сравнению со стандартным реляционным сервером БД. В этой части рассмотрена архитектура сервера и ее три основных компонента. Мы познакомимся со специальной терминологией Informix. После прочтения вы поймете, почему сервер получил свое имя, что такое поток, и из каких фундаментальных частей состоит сервер. Чтение книги предполагает, что вы знакомы с языком SQL и концепциями реляционных и объектно- ориентированных баз данных. В изложении я не буду спускаться до уровня битов и байтов; если вам необходим такой уровень подробности – обратитесь к официальной документации продукта или посетите веб-сайт IBM. Что такое Informix Dynamic Server? Informix Dynamic Server – сервер баз данных или, пользуясь маркетинговым новоязом, «объектно-реляционная система управления базами данных» (object-reletional database management system ORDBMS). Сервер может работать как со стандартными (реляционными) типами данных (числа, символы), так и с объектно-ориентированными. Эта технология является расширением возможности сервера хранить данные не-ASCII в BLOB-объектах. Сегодня IDS позволяет значительно больше, чем просто писать байтовый поток на диск, как это происходит с BLOB. Используя соответствующие функции, вы можете не только хранить «объект», но и искать в нем, изменять что-то и, вообще, выполнять любую операцию, имеющую смысл для этого «объекта» и поддерживаемую функцией. Этот новый функционал обычно называется расширяемость (extensibility). В общем случае задачей сервера БД является обеспечение такой обработки данных (хранение, изменение, удаление), которая защищает данные от компрометации или изменения вне правил, установленных администратором. В IDS включены логические и физические механизмы выполнения этих задач.
  • 9. С логической точки зрения IDS обеспечивает возможность установить правила и условия не только для столбца в таблице, но и для определения места хранения строки на диске. Вы можете указать условия изменения или удаления элементов строки. Для выполнения различных действий над БД можно использовать хранимые процедуры. С физической токи зрения IDS хранит набор логов, где записаны изменения в данных, и предоставляет механизм блокировок для поддержания целостности данных. Для минимизации простоя в случае поломки оборудования, балансирования нагрузки, обмена данными между различными БД сервер БД позволяет создавать копию всего окружения БД или его части на том же физическом сервере или на отдельном сервере. IDS позволяет выполнять архивирование и восстановление БД. Для отката пользовательской ошибки вы можете выполнить восстановление БД на конкретный момент времени. Недавно в сервер была добавлена возможность восстановления архива, сделанного на одном физическом сервере, на другом физическом сервере даже в том случае, когда сервера используют разные ОС. Informix Dynamic Server разработан на основе динамической масштабируемой архитектуры (Dynamic Scalable Architecture DSA) и позволяет эффективно использовать возможности современных компьютеров – многопроцессорность и большой объем памяти. Исследования показывают, что при добавлении в компьютерных ресурсов (например, установка второго процессора) производительность Informix растет линейно. Основой DSA является распараллеливание процесса (process parallelization) ,или параллельная обработка похожих задач. На рисунке 1.1. показана принципиальная схема работы такого процесса Рисунок 1.1 Принципиальная схема параллельного выполнения запроса На рисунке показано, как запрос может выполняться параллельно. Сначала происходит несколько операций чтения с диска. Затем над результатами этого шага выполняются функциональные операции. На каждом шаге данных, которые необходимо обработать, становится меньше,и результаты выполнения операции объединяются с результатами выполнения всех операций на этом уровне. Наконец, сервер возвращает результирующий
  • 10. набор данных клиентскому приложению. Этот алгоритм обработки запроса выполняется быстрее, чем последовательный, когда ожидается выполнение каждогошага перед началом следующего. Кроме выполнения клиентских запросов, IDS также распараллеливает выполнение административных операций – построение индексов, обновление статистики, проверку и, при необходимости, восстановление после сбоя. Такая функциональность Informix требует мониторинга и настройки. Как администратор сервера, вы должны установить необходимые ограничения на параллельную обработку запросов. Более подробно об этом будет говориться в моей следующей книге «Administering Informix Dynamic Server, Advanced Topics». Архитектура IDS позволяет динамически выделять и освобождать необходимые ресурсы «железного» сервера. Например, вы можете сконфигурировать IDS на использование х МБт оперативной памяти, у блокировок и т.п. При увеличении нагрузки IDS попробует выделить себе больше необходимых системных ресурсов. Вы можете ограничить максимальное количество ресурсов, которые IDS может получить. Большинство конфигурационных параметров IDS может быть изменено и в тот момент, когда сервер обрабатывает пользовательские транзакции. IBM дорабатывает эту возможность в каждом новом релизе сервера, и сейчас эта работа близка к завершению. Именно возможность управлять необходимыми ресурсами и администрировать сервер без перезапуска характеризуются словом «dynamic». В дополнение к объектно-ориентированной технологии IDS предоставляет функциональность, которая позволяет эффективно интегрировать прямо в базу данных новые и сложные типы данных. Это могут быть геодезические данные, аудио/видео, XML и другие пользовательские типы. IDS является нейтральным к используемым средствам разработки и поддерживает множество инструментов разработчика под управлением Linux, UNIX, Mac OS X, Microsoft Windows. Модель Informix Dynamic Server Архитектура сервера БД во многом определяет его производительность, масштабируемость, возможность поддерживать новые типы данных. Почти все современные серверы БД построены на устаревшей модели, которая предполагает запуск отдельного процесса для выполнения запросов каждого пользователя. Эта архитектура хорошо работала, если размер БД и количество пользователей были невелики. Сегодня такие сервера БД запускают сотни, а иногда и тысячи, процессов, управлением котороми занимается ОС. Система с одним ЦП может обрабатывать один процесс в квант времени, затем она переключается на другой и так далее. Поэтому процесс пользователя вынужден ждать, когда ОС снова даст ему выполняться. Масштабирование таких систем не зависит от программной составляющей, а зависит только от скорости процессора. Как я упомянул в предыдущем разделе, архитектура Informix (DSA)специально создана для работы с несколькими процессорами и большими объемами оперативной памяти. DSA включает в себя встроенную многопоточность и распараллеливание, динамическое управление памятью. Основными элементами архитектуры Informix Dynamic Server являются:  Процессорный компонент  Разделяемая память  Дисковый компонент Давайте рассмотрим каждый из них.
  • 11. Процессорный компонент IDS обеспечивает возможность масштабировать окружение БД путем настройки пула процессов сервера БД – виртуальных процессоров(VPs). В следующей книге мы рассмотрим механизмы работы этих процессоров. Как можно увидеть на рисунке 1.1., IDS разбивает пользовательские запросы на отдельные подзадачи (сканирование таблиц, объединение, группировка, сортировка), каждая из которых обрабатывается виртуальным процессором. Виртуальные процессоры очень похожи на обычные ЦП тем, как они планируют пользовательские запросы и управляют ими. На рисунке 1.2 показано, как работает пул виртуальных процессоров IDS Рисунок 1.2 Пул виртуальных процессоров IDS Поток – это отдельная задача в процессе сервера БД. Множество потоков может выполняться одновременно, в параллель, в пуле виртуальных процессоров. В отличие от однопоточного движка, где каждая задача выполняется в свой квант времени, виртуальные процессоры IDS являются многопоточными. Если какой-то поток ждет ресурса или окончил свою работу, то виртуальный процессор сразу переключается на выполнение следующего потока. Таким образом максимально используются ресурсы ЦП. Эта возможность IDS называется «fan-in parallelism» и проиллюстрирована на рисунке 1.3
  • 12. Рисунок 1.3 «Fan-in parallelism» Пользовательский запрос может быть распределен между несколькими виртуальными процессорами. Например, если выполняется многотабличное объединение (multitable join), сервер БД разделит задачу на несколько подзадач, каждая из которых будет выполняться на своем виртуальном процессоре. На рисунке 1.4 приведена иллюстрация этой возможности, которая называется «fan-out parallelism». Рисунок 1.4 «Fan-out parallelism»
  • 13. Суммарный эффект от этих двух типов распараллеливания – за единицу времени выполняется больше операций. Иными словами, сервер БД работает быстрее. Поскольку потоки не привязаны к виртуальным процессорам, IDS выполняет динамическое балансирование нагрузки. Виртуальные процессоры можно объединять в группы, оптимизированные для выполнения какой-то конкретной задачи. Иллюстрация этого факта приведена на рисунке 1.5, где показаны виртуальные процессоры, оптимизированные для операций с ЦП, ввода/вывода, связи, административных задач. Рисунок 1.5 Виртуальные процессоры IDS, оптимизированные для выполнения отдельных функций. Виртуальные процессоры IDS имеют средства мониторинга, позволяющие отследить деятельность пользователей и сервера БД. В однопоточных серверах БД каждая операция представляет собой независимый процесс в ОС со своими стеком данных, кэшем инструкций, что затрудняет мониторинг того, что происходит в сервере БД. В IDS предусмотрены утилиты onstat и oncheck , которые позволяют легко увидеть, кто и что делает и как это влияет на систему. Вы можете сконфигурировать необходимое количество ВП каждого класса, а также определить специальные ВП (определенные пользователем ВП). Эти ВП выполняются изолированно от ядра сервера, поэтому некорректно функционирующий пользовательский ВП не сможет привести к падению сервера. При необходимости можно изменять количество и тип ВП в то время, когда БД находится в on-line, например, при повышении нагрузки на сервер. В UNIX, Linux, Mac OS X использование многопоточных виртуальных процессоров значительно снижает количество процессов ОС, и как результат, вызывает меньше переключений контекста. В Windows ВП реализованы как потоки и используют многопоточные возможности ОС. Поскольку IDS имеет собственные возможности поддерживать несколько потоков для обслуживания
  • 14. клиентских запросов, то ему нужно меньше потоков Windows, что снижает затраты ОС на управление потоками. Поскольку IDS полностью использует возможности ЦП, то ему нужно меньше аппаратных мощностей, чем другому серверу БД. В исследованиях выявлено, что чтобы достичь той же производительности, что и однопоточный или процессо-ориентированный сервер БД, IDS необходимо 25-40 % ресурсов Такие возможности IDS позволят вам сэкономить некоторые деньги на закупке и обслуживании оборудования. Разделяемая память Поскольку все задачи сервер выполняет с помощью ВП, то и память сервера БД консолидирована. Этот большой блок разделяемой памяти предоставляет IDS возможность быстро пересылать данные между виртуальными процессорами, а также позволяет пользовательским приложениям получить данные прямо из памяти, если они там есть по запросу другого пользователя, а не дергать лишний раз диск. Память внутри этого блока многократно используется для обслуживания пользовательских запросов. Например, когда сессия пользователя заканчивается, потоко-специфичная память этой сессии очищается и может быть использована в другой сессии. Если для обслуживания пользователей серверу БД необходимо больше памяти, он запрашивает у ОС дополнительную память. Предельный объем памяти, доступной серверу БД, указывается во время конфигурирования IDS. Когда дополнительная память больше не нужна, она освобождается. Динамическое управление памятью позволяет избежать проседания производительности сервера БД при увеличении нагрузки. Освобожденная память возвращается под управление ОС и может быть использована другими процессами. Разделяемая память IDS состоит из четырех частей:  Резидентная часть  Виртуальная часть  Коммуникационная часть  Часть виртуального расширения Когда стартует окружение БД, выделяются, по крайней мере, две части памяти(управляются конфигурационными параметрами разделяемой памяти и подключений). В Части 4 описаны конфигурационные параметры разделяемой памяти. Ниже кратко описаны части разделяемой памяти IDS Резидентная часть Эта часть содержит, кроме всего прочего, общую информацию об окружении БД и буферный пул. Также в этой части памяти размещены некоторые общесистемные структуры, системные таблицы, содержащие данные о чанках, db-пространствах, блокировках, транзакциях, зеркалах, пользовательских соединениях, буферы физического и логического журнала. Информация из системных таблиц доступна через интерфейс мониторинга системы (System Monitoring Interface см Часть 4 ). В резидентной части разделяемой памяти также располагается буфер репликации HDR (если она запущена). Подробно о репликации HDR смотрите в моей следующей книге. Самую большую часть резидентной области занимают регулярные буферы, используемые для хранения данных, используемых пользовательскими приложениями. В зависимости от характера операций в БД эти буферы могут помочь снизить количество операций дискового ввода/вывода. Когда пользовательское приложение запрашивает некоторые данные, сервер сначала пытается найти их в этих буферах. Увеличение размера пула буферов может сниить количество дисковых операций и тем самым поднять общую производительность системы, особенно для OLTP-приложений. В пуле буферов IDS хранит часто используемые индексные и табличные данные. Для хранения применяется
  • 15. рейтинговая система. Когда некоторый элемент используется, его рейтинг повышается. Часть буферов хранит часто используемые данные, а другая часть – реже используемые. Для клиентского приложения такая сегментация данных абсолютно прозрачна. Когда данные запрашиваются реже, они перемещаются из буфера часто используемых в буфер реже используемых. В версиях IDS до 10 все буферы в зависимости от версии ОС имели размер 2 Кб или 4 КБ. Размер буфера совпадал с размером страницы диска. В IDS 10 появилась возможность создавать db-пространства с разным размером страниц. Максимальный размер страницы равен 16 КБ. Для каждого размера страницы может существовать только один пул буферов, поэтому если вы создадите три db-пространства с размером страницы 8 КБ, они будут делить один 8 КБ пул буферов. Для управления буферами используются конфигурационные параметры BUFFERPOOL, BUFFERS, LRU и некоторые другие. Сервер БД может самостоятельно управлять эти параметрами. Поскольку в резидентной части разделяемой памяти хранятся пользовательские данные, эта часть памяти существует всегда. Виртуальная часть Содержит стеки потоков, а также пулы памяти для следующих операций и данных  Сортировки данных  Кэширования словарей БД, содержащих информацию о таблицах и индексах БД  Кэширования данных из функций, определенных пользователем  Пула больших буферов для ВП асинхронного ввода/вывода (AIO VP)  Хранения откомпилированных версий хранимых процедур  «Глобального» пула  Некоторых таблиц мониторинга окружения. В виртуальном разделе также хранятся кэшированные планы для оптимизатора IDS. В большинстве OLTP-приложений в течении операционного дня выполняются одинаковые SQL-запросы с немного разными условиями (например, в запросе меняется идентификационный номер контрагента). Для выполнения запроса сервер БД строит план, как быстрее всего получить требуемые данные. Если данные уже находятся в буфере, то они считываются оттуда, если нет, то требуется обращение к диску. В этом случае оптимизатор строит план выполнения запроса. Оптимизатор ищет подходящий индекс (если есть), строит список db-пространств, которые необходимо просмотреть и т.д. Этот процесс незаметен для пользователей, но от него зависит время отклика системы. Informix имеет механизм кэширования плана. В кэше может храниться план выполнения запроса для использования этого плана последующими такими же запросами. Эта область памяти хранит сам SQL-запрос и информацию, необходимую оптимизатору для быстрого выполнения запроса. Вы можете сконфигурировать размер кэша и время попадания плана в кэш (например, после выполнения двух запросов). В большинстве случаев, чтобы не хранить в кэше план одиночного запроса, план помещается в кэш после выполнения запроса три или более раз. Если вам необходимо обновить планы выполнения запросов, вы можете очистить кэш. Например, это можно сделать после выполнения команды update statistics. Еще один интересный элемент виртуальной части – пул больших буферов. Предыдущие версии сервера имели два типа буферов – регулярные и большие. Регулярные буферы были очень похожи на буферы, хранимые в резидентной части разделяемой памяти. Большой буфер имел размер 8 страниц и использовался для буферирования больших последовательных объектов, например, блобов. В последней версии IDS для каждого AIO ВП (ВП асинхронного ввода/вывода) выделяется большой буфер. Размер буфера определяется ОС, но он значительно больше,
  • 16. чем в предыдущих версиях IDS. Буфер такого размера полезен при выполнении обработки контрольной точки (checkpoint) и для чтения большого объема данных при выполнении сложных аналитических запросов. После того, как данные помещены в большой буфер, для использования они перемещаются в буферный пул в резидентной части памяти. BLOB-объекты Informix читает и пишет через большой буфер, а не через резидентную часть памяти. Ниже в этой части мы рассмотрим уже использованную терминологию – страница данных, контрольная точка, BLOB. В зависимости от выполняемых сервером задач, объем виртуальной части памяти может меняться. Как я говорил выше, это динамическая часть памяти. Начальный размер виртуальной части памяти настраивается конфигурационным параметром SHMVIRTSIZE. Параметр SHMADD определяет размер дополнительно запрашиваемой памяти, а параметр SHMTOTAL указывает, сколько всего разделяемой памяти может запросить сервер. Виртуальная часть разделяемой памяти существует при работе любого сервера Informix. Коммуникационная часть Существует только в том случае, если настроено соединение с сервером через разделяемую память. Вы должны определить каждый необходимый вам протокол соединения с сервером IDS. Если вы включите протокол соединения через разделяемую память, приложения, выполняющиеся на одном железном сервере с IDS, будут соединяться с Informix через разделяемую память. В части 4 мы рассмотрим возможные протоколы соединения с сервером и параметр NETTYPE. В двух словах, при использовании сетевых протоколов для связи с IDS обмен данными между сервером и приложением идет через глобальный пул виртуальной части разделяемой памяти. Часть виртуального расширения Эта часть разделяемой памяти выполняет две функции. Здесь UDVP (определенный пользователем ВП) выполняет DataBlade или определенную пользователем функцию (UDR). Такой подход защищает сервер от падения из-за «кривой» UDR. Наличие этого раздела разделяемой памяти зависит от конфигурации сервера БД. Дисковый компонент В большинстве инсталляций IDS на UNIX и UNIX-подобных ОС сервер БД управляет обменом с дисками самостоятельно без участия ОС. В большинстве случаев данные хранятся на разделах диска без файловой системы – так называемые, сырые устройства (raw disk space). Данные с таких разделов читаются и пишутся с использованием прямого доступа к памяти (direct memory access DMA) и последовательного доступа к сырым устройствам (raw sequential access method RSAM). Механизм RSAM обеспечивает большую, по сравнению с использованием файловой системы UNIX, производительность. Если ОС поддерживает механизм асинхронного ввода/вывода (KAIO), то производительность вырастает еще больше. KAIO – это возможность процесса одновременно выполнять несколько операций дискового ввода/вывода без необходимости ожидать отклика от подсистемы ввода/вывода. База данных может быть размещена в файлах ОС (выделенное пространство cooked space). Использование выделенных файлов не гарантирует, что они будут расположены на диске последовательно. Вы должны исходить из предположения, что не будут. Эта особенность выделенных файлов влияет на производительность работы с диском. Некоторые операционные системы (типа Windows) для записи /чтения файлов используют небуферизированный и некешированный ввод/вывод. Из этого факта следует вывод: использование сырого диска под Windows выигрыша в производительности не принесет. С версии IDS 11 поддержка небуферизированного ввода/вывода средствами ОС переносится и на другие операционные системы. Эта функциональность может
  • 17. обеспечить производительность, сопоставимую с производительностью сырого диска, при использовании файловых чанков и db-пространств. Ради справедливости скажу, что этот функционал IDS не является уникальным. Некоторые серверы БД поддерживают хранение Баз данных только в выделенных файлах, другие поддерживают и выделенные файлы, и сырые диски. У IDS есть очень полезная возможность – распределять данные на диске в соответствии с некоторыми правилами. Informix поддерживает несколько схем партиционирования данных. Наличие такого функционала также повышает доступность данных, улучшает управляемость хранением старых данных (это называется data life-cycle management – управление жизненным циклом данных). В Informix диск представлен некоторыми физическими и логическими свойствами. для понимания этого я ниже ввожу необходимую терминологию. В Части 3 мы более подробно поговорим о дисковом компоненте. Основные термины. На протяжении книги я буду использовать некоторые фразы и слова, которые или имеют смысл только для Informix Dynamic Server, или трактуются в нем не так, как в других серверах БД. Поэтому перед тем, как двинуться дальше, давайте определимся с ключевыми терминами. Для избежания двусмысленности, я буду стараться использовать только правильные термины и избегать компьютерного сленга. В книге я буду постоянно обращаться к «экземплярам» и иногда к «серверу БД». Сервер БД – это откомпилированный исходный код, на использование которого вы приобрели лицензию и установили на физический сервер; это Informix Dynamic Server. Этот сервер имеет утилиты и программы для создания, администрирования сервера и подключения к нему клиентских приложений. Вам, возможно, вообще не придется администрировать и настраивать сам сервер. При правильной настройке файловой системы и переменных окружения на физический сервер можно установить несколько версий IDS, о чем мы подробно поговорим в части 3. Экземпляр – уникальное рабочее окружения или окружение времени выполнения, используемое для хранения набора баз данных, к которым могут иметь доступ (или не иметь) конечные пользователи. До этого момента в книге вместо термина «экземпляр» использовался термин «окружение базы данных». Экземпляры и базы данных настраиваются для достижения необходимой производительности. Изменения рабочего окружения базы данных проводятся на уровне экземпляра. Физический сервер, на который установлен сервер БД, может поддерживать несколько экземпляров. Каждый экземпляр обладает своим набором конфигурационных параметров, памятью и дисковым пространством. Физические элементы Чтобы понять, как физические элементы объединяются в логические структуры, давайте рассмотрим рисунок 1.6. на нем сплошные линии соответствуют физическим элементам, а пунктирные – логическим.
  • 18. Рисунок 1.6. Физические и логические структуры экземпляра IDS Базовый физический элемент экземпляра называется страница данных или просто страница. Страница данных имеет фиксированный размер, называемый размером страницы; размер страницы – минимальный объем данных, который может быть записан на диск или считан с диска. Как я говорил выше, в зависимости от версии ОС размер страницы может составлять 2 КБ или 4 КБ. Большинство утилит мониторинга и администрирования IDS выводят информацию об использовании дискового пространства в страницах, а не в килобайтах или мегабайтах. Для приведения этих данных к мегабайтам необходимо количество страниц умножить на 2 (4,6,8,12,16). Самый маленький дисковый компонент, который вы можете администрировать, называется чанк. С физической точки зрения чанк – это обычно целый дисковый раздел, хотя может быть и меньше раздела, но обязательно должен быть логически непрерывным (подробнее смотрите часть 5). Если для хранения данных вы используете выделенные файлы, то чанк представляет собой обычный плоский файл. С логической точки зрения чанк представляет собой набор страниц данных и является базовым элементом для создания db-пространств и добавления в них дополнительного пространства. DB-пространство – логический набор из одного или более чанков, созданных на одном или нескольких физических дисках. В db-пространствах хранятся таблицы баз данных. Если вы не сконфигурировали параметры, определяющие сортировку и упорядочение результатов выборки в памяти, то эти операции проводятся с использованием диска. DB- пространства не могут разделяться между несколькими экземплярами, а физический диск, на котором расположены чанки, может содержать чанки, принадлежащие другим db- пространствам или экземплярам, расположенным на том же физическом сервере (см. рисунок 1.7)
  • 19. Рисунок 1.7. Пересечение чанков db-пространств нескольких экземпляров Каждый из трех дисков, показанных на рисунке разделен на четыре раздела. Эти разделы (или чанки) использовались для создания db-пространств трех экземпляров сервера (danube, madeira, sarthe). DB-пространство Danube_1 создано из чанков ,расположенных на разных дисках (диск 2 и диск 3). В процессе создания db-пространства вы должны указать его первый чанк. Потом, при необходимости вы можете добавить чанки в db-пространство, а также удалить их. Начальный чанк db-пространства не может быть удален; вы должны удалить все db- пространство и выполнить полное архивирование базы данных. Итак, экземпляр – это автономное пространство для обработки данных, состоящие из db- пространств, где хранятся базы данных, временных пространств и предварительно скомпилированных функций (хранимые процедуры и определенные пользователем функции). Как вы увидите ниже, экземпляр имеет имя, под которым он известен в сети, и конфигурационные параметры, определяющие, как работает этот экземпляр. Элементы экземпляра. Экземпляр содержит в себе несколько структур данных, от которых зависит его работа. Корневое db-пространство(rootdbs) – это сердце экземпляра. Это db-пространство содержит всю информацию об экземпляре и, кроме того, может использоваться для выполнения некоторых операций, если в других db-пространствах экземпляра для этих операций не хватает места. Повреждение корневого db-пространства приводит к недоступности всего экземпляра; это же справедливо и для логического и физического журнала. Физический журнал содержит исходные образы страниц. Журнал используется в том случае, если необходимо отменить изменения, внесенные в данные. Логический журнал содержит исходные образы страниц, а также в него записываются изменения данных и фиксируется, были ли эти изменения записаны на диск. Без этих двух журналов экземпляр не работает. Термины баз данных Наверное, вы уже представляете, что такое реляционная база данных. Вы понимает, что данные хранятся в столбцах и что набор столбцов образует строку. Строки группируются в таблицы и на основе ключевых или важных столбцов для ускорения поиска данных могут быть построены индексы. Кроме числовых и символьных типов данных, общих для всех реляционных СУБД, вы можете использовать «нестандартные» или, в терминологии IDS, расширенные типы данных. Вы можете создавать типы данных, необходимые именно вашему приложению. Так как IDS поддерживается объектно-ориентированный подход, элементы, от столбца до таблицы, могут иметь поддержку наследственности и другого функционала, недоступного
  • 20. в чистой реляционной СУБД. Используя эту возможность, можно использовать традиционные элементы данных новыми методами, недоступными в реляционной модели данных. В IDS также включены большие двоичные объекты (binary large objects) или BLOB-ы. Существует два типа BLOB-ов – простые и смарт-BLOBы (simple and smart). Простые BLOBы являются с точки зрения сервера черным ящиком. Смарт-BLOBы состоят из типов данных, которыми сервер БД может манипулировать, используя функционал, добавленный в экземпляр. Этот функционал может браться из DataBlade, bladelet или вашей собственно определенной пользователем функции (UDR). Ниже мы рассмотрим этот вопрос более подробно. Преимущество BLOBов в том, что большие объемы данных могут хранится одним непрерывным блоком без разбиения их на куски фиксированной длины. BLOB-объекты могут храниться в специально настроенных db-пространствах (BLOB-пространства). Как и в случае с BLOB-объектами, существует два типа BLOB- пространств – простые BLOB-пространства (обычно называются BLOB-пространства) и смарт BLOB-пространства. BLOB-пространства не слишком отличаются от обычных db- пространств, особенно сейчас, когда появилась возможность создавать обычные db- пространства с разным размером страницы. BLOB-пространства были первыми db- пространствами с переменным размером страницы, то давало возможность хранить BLOB на одной BLOB-странице. Смарт-BLOBы отличаются тем, что их хранение и извлечение управляется с помощью метаданных, хранимых в смарт BLOB-пространстве. В части 5 мы поговорим о создании обоих типов BLOB-пространств. BLOB-объекты делятся на два больших типа – текстовые и двоичные. Текст- ориентированные BLOBы представляют собой документы в некоторой форме. Я работал с инсталляциями Informix, где в BLOB-ах хранились документы вместе с контрольными кодами. Когда из таблицы выбиралась строка, BLOB-столбец этой строки передавался как параметр скрипту, который запускал программу обработки текста. Для сохранения документа в БД пользователь запускал макрос, который записывал документ обратно в базу (используя SQL-команду insert или update). Таким же образом можно работать и с двоичными BLOBами. Двоичными BLOBами являются оцифрованные звук и видео, картинки и т.п. Интерпретацией информации из двоичных BLOBов должно заниматься клиентское приложение. Как говорилось выше, таблицы с данными хранятся в db-пространствах, состоящих из чанков. Чанки могут располагаться на сырых устройствах – дисковых разделах без файловой системы и в выделенных файлах. Физические сегменты, выделяемые для хранения данных таблицы, называются экстентами. Ориентируясь на ожидаемое количество строк в таблице, вы можете выделить экстент достаточного размера для хранения данных таблицы в логически непрерывном пространстве. Если база хранится в выделенных файлах, экстент не будет физически непрерывным, а если на сырых устройствах, то будет. Когда табличный экстент заполняется данными и требуется дополнительное место, сервер выделяет таблице новый экстент. Если в db-пространстве находится несколько таблиц, то новый экстент может не быть добавлен сразу вслед за заполненным. На рисунке 1.8 показан случай разделения экстентов одной таблицы экстентами других таблиц.
  • 21. Рисунок 1.8 Пересечение табличных экстентов Большое количество пересекающихся экстентов неблагоприятно влияет на производительность чтения данных. В части 8 мы рассмотрим команду, которая позволяет узнать о количестве пересечений экстентов в db-пространстве. Таблица может как находится целиком в одном db-пространстве, так и быть распределена по разным db- пространствам. Такой процесс называется фрагментированием или партиционированием таблицы. Таблица – не единственный объект, который можно фрагментировать, индексы также имеют опции фрагментирования. Грамотное фрагментирование таблиц и индексов может существенно улучшить производительность сервера. В части 5 мы детально поговорим о фрагментировании таблиц и индексов. Типы окружения базы данных. Окружения базы данных разделяют на две большие категории. OLTP-системы характеризуются большим количеством операций чтения/записи, обслуживают большое количество пользователей, выполняющих однотипные операции в базе данных и обеспечивают минимальное время отклика. Большинство бизнес-приложений являются именно OLTP-приложениями, например, системы обработки заказов. IDS прекрасно подходит для работы в качестве OLTP-сервера. OLAP-, или DSS-системы характеризуются гораздо меньшим количеством пользователей, однако, эти пользователи выполняют сложные запросы, часто за большие интервалы времени и не так требовательны ко времени отклика системы. Хотя IDS в наибольшей степени подходит для OLTP, многие заказчики используют его и в DSS, из-за наличия масштабируемости, расширенных типов данных, производительности и небольших затрат на администрирование. Транзакции Иногда необходимо, чтобы в базе данных выполнился или весь набор операций, или не выполнилось ничего. Такая группа операций называется транзакцией. Типовым примером транзакции является перечисление денег в банке. Предположим, что вы хотите перечислить деньги со счета на счет. В этом случае деньги должны быть сняты с одного счета, а затем зачислены на другой счет. Если одна из этих операций завершится неудачно, то должны быть откачены обе. Когда я объяснял концепцию корневого db-пространства, то упоминал о том, что сервер отслеживает операции в базе данных, используя два компонента на диске – физический и
  • 22. логический журнал. Физический журнал содержит исходный образ данных, которые будут изменяться. Когда данные модифицируются или удаляются, сервер записывает эти изменения в логический журнал. Если вернуться к нашему банковскому примеру, можно сказать, что когда обе операции выполнены, то транзакция зафиксирована(committed). Исходные значения и их изменения записаны в текущий логический журнал и транзакция помечена как завершенная. Если произошла ошибка, то сервер откатывает(roll back) транзакцию и использует данные физического журнала для восстановления исходных данных. Контрольные точки (checkpoints) Данные, находящиеся в разделяемой памяти, должны периодически записываться на диск. Это необходимо для сохранения целостности данных. В некоторых случаях данные записываются на диск автоматически в конце выполнения задачи; в других случаях запись осуществляется как часть обработки контрольной точки (checkpoint). Во время обработки контрольной точки данные на диске обновляются так, чтобы соответствовать данным, находящимся в разделяемой памяти. В предыдущих версиях IDS во время обработки контрольной точки остальные операции в базе приостанавливались на короткое время; это было необходимо для корректной обработки критически важных данных экземпляра и для записи данных на диск. В версии IDS это время значительно уменьшено. Пользователи не должны заметить прерывание в работе экземпляра. После завершения обработки контрольной точки сервер находится в логически целостном состоянии (logically consistent state). Более детально об обработке контрольной точки мы поговорим в следующей книге. Заключение В этом разделе дано общее описание архитектуры Informix Dynamic Server и приведен обзор основных терминов, относящихся к Informix. После прочтения вы должны знать о трех основных компонентах архитектуры IDS, как сервер работает с разделяемой памятью и что содержит каждая часть разделяемой памяти. Вам должна быть понятна основная терминология, разница между сервером и экземпляром, а также, что такое чанк и db- пространство, в чем разница между OLTP и DSS, что такое BLOBы и контрольные точки. Я несколько раз отмечал, что IDS отличается от остальных серверов БД с точки зрения используемой архитектуры и функциональной перспективы. В этой части рассказывалось о архитектурных отличиях. В части 2 мы поговорим на функциональных усовершенствованиях, доступных в IDS в результате интеграции объектно- ориентированного подхода к БД Illustra с динамически масштабируемой архитектурой IDS.