Основы администрирования Informix Dynamic ServerБлагодарностиЯ не могу поверить, что окончил еще одну книгу. Всякий раз я ...
бессвязные мысли и логические пробелы в рукописи и исправила синтаксические ошибки,пропущенные мной и техническими редакто...
ЗаключениеЧасть 5   Основные задачи администратора             Утилиты администрирования Informix             Изменение ра...
Вступительное словоЕсли вы держите в руках эту книгу, это значит, что вы открываете или уже открыли длясебя самый лучший O...
О книге.Поскольку вы читаете книгу, я могу предположить, что вы или администратор базыданных (DBA) , или отвечаете за обсл...
Краткое содержаниеЧасть 1 – Введение в Informix Dynamic ServerЗдесь рассказывается о структуре IDS, а также представлены и...
будет идти о утилитах командной строки и функциональности, доступной в новомсредстве – Open Admin Tool (OAT) для Informix ...
Введение в Informix Dynamic ServerВ этой части        Архитектура сервера        Определение ключевых терминовВ незави...
С логической точки зрения IDS обеспечивает возможность установить правила и условияне только для столбца в таблице, но и д...
набор данных клиентскому приложению. Этот алгоритм обработки запроса выполняетсябыстрее, чем последовательный, когда ожида...
Процессорный компонентIDS обеспечивает возможность масштабировать окружение БД путем настройки пулапроцессов сервера БД – ...
Рисунок 1.3 «Fan-in parallelism»Пользовательский запрос может быть распределен между несколькими виртуальнымипроцессорами....
Суммарный эффект от этих двух типов распараллеливания – за единицу временивыполняется больше операций. Иными словами, серв...
клиентских запросов, то ему нужно меньше потоков Windows, что снижает затраты ОС науправление потоками. Поскольку IDS полн...
рейтинговая система. Когда некоторый элемент используется, его рейтинг повышается.Часть буферов хранит часто используемые ...
чем в предыдущих версиях IDS. Буфер такого размера полезен при выполнении обработкиконтрольной точки (checkpoint) и для чт...
обеспечить производительность, сопоставимую с производительностью сырого диска, прииспользовании файловых чанков и db-прос...
Рисунок 1.6. Физические и логические структуры экземпляра IDSБазовый физический элемент экземпляра называется страница дан...
Рисунок 1.7. Пересечение чанков db-пространств нескольких экземпляровКаждый из трех дисков, показанных на рисунке разделен...
в чистой реляционной СУБД. Используя эту возможность, можно использоватьтрадиционные элементы данных новыми методами, недо...
Рисунок 1.8 Пересечение табличных экстентовБольшое количество пересекающихся экстентов неблагоприятно влияет напроизводите...
логический журнал. Физический журнал содержит исходный образ данных, которыебудут изменяться. Когда данные модифицируются ...
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
Upcoming SlideShare
Loading in …5
×

Carlton doe. administering informix dynamic server. building the foundation

6,455 views

Published on

Informix Stuff

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,455
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Carlton doe. administering informix dynamic server. building the foundation

  1. 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-JohnTo.За техническое редактирование спасибо Edgar Sanchez, Mark Jamison, Sudhir Katke, RandyHouse, Suma Vinod, Sanjit Chakraborty Я всегда буду в долгу у Jacques Roy за его работу. Он написал Java-методы определенияразмера таблиц. Спасибо Jerry Keesee за то, в своем плотном графике он нашел время и написалпредисловие к книге, а также за помощь, которую он мне всегда оказывал. Susan Visser из IBM Publishing всегда была стойким защитником книг по IDS, благодаряей вышли мои книги по Informix, в том числе и эта. Cathy Elliott – волшебница из мираIBM Marketing. Она всегда оказывала мне всю возможную поддержку, как и MichaelSpano – мой менеджер. Мне также помогали многие люди из International Informix Users Group (IIUG), особенноLester Knutsen, Walt Hultgen, Stuart Litel, Cindy Lichtenauer, Alexander Koerner и многиедругие. Если вы с легкостью прочтете книгу, обязательно скажите спасибо Katie Tipton. Яработал со многими редакторами, но Katie – лучшая. Она отредактировала многие мои
  2. 2. бессвязные мысли и логические пробелы в рукописи и исправила синтаксические ошибки,пропущенные мной и техническими редакторами. Jeff Phillips разработал обложку книги и не говорите мне, что обложка не важна.И, конечно, отдельное спасибо моей семье СодержаниеПредисловиеО книгеЧасть 1 Введение в Informix Dynamic Server Что такое Informix Dynamic Server Модель Informix Dynamic Server Основные термины ЗаключениеЧасть 2 Введение в расширяемость Что такое расширяемость и зачем вам это нужно Расширяемые типы данных Преобразования Определенные пользователем процедуры и агрегаты Функциональные индексы Датаблейды, блейдлеты и другие дополнения ЗаключениеЧасть 3 Подготовка к инициализации Логический дизайн базы данных Вычисление размеров таблиц Вопросы, связанные с жестким диском Что использовать для db-пространств – выделенные файлы или сырые устройства Вопросы проектирования db-пространств Настройка ядра Стратегии архивирования Установка окружения Вопросы, связанные с несколькими экземплярами сервера ЗаключениеЧасть 4. Установка и инициализация IDS Установка или обновление сервера Изменение конфигурационных параметров Первый запуск экземпляра Системные базы данных
  3. 3. ЗаключениеЧасть 5 Основные задачи администратора Утилиты администрирования Informix Изменение рабочих режимов Изменение режимов логирования Управление db- и BLOB-пространствами Создание, перемещение и изменение размеров логов. Автоматический запуск и останов IDS Управление доступом и безопасность Отстрел пользовательской сессии ЗаключениеЧасть 6 Создание окружения базы данных Утилита dbaccess Режимы логирования базы данных Создание базы данных Создание и партиционирование(partitioning) таблиц и индексов Ограничения, ссылочная целостность и индексы Внесение информации в базу данных Конкурентность и уровни изоляции Некоторые интересные SQL-запросы Утилита dbschema ЗаключениеЧасть 7 Архивирование и восстановление Стратегии архивирования Архивирование логического журнала Устройства для архивирования Как работает процесс архивирования Опции восстановления Использование утилиты ontape Использование ON-Bar и Informix Storege Manager Archecker и проверка архивов Использование Table-level restore ЗаключениеЧасть 8 Мониторинг экземпляра Новый интерфейс системного администрирования Утилиты командной строки Мониторинг системы и экземпляра с помощью ОАТ ЗаключениеПриложение
  4. 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. 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. 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 совместно с InformixStorage Manager (ISM)Часть 8 – Мониторинг экземпляраНа протяжении всей книги вы будете встречать вывод данных мониторинговымиутилитами Informix. В этой части мы сосредоточимся на работе с этими утилитами ипоговорим, что необходимо мониторить в первую очередь. В большинстве своем речь
  7. 7. будет идти о утилитах командной строки и функциональности, доступной в новомсредстве – Open Admin Tool (OAT) для Informix Соглашения, принятые в книгеВ книге использованы следующие соглашения:  Каждая часть начинается со списка тем, которые будут обсуждаться  Каждая часть заканчивается заключением, где приведены наиболее важные сведения, которые вам необходимо заполнить, а также говорится о том, какие вопросы будут обсуждаться в следующей части  Зарезервированные слова в примерах кода не выделены заглавными буквами, так как я считаю, что такое выделение только мешает читать код. Лично я использую заглавные буквы только в комментариях к исходным текстам, когда хочу привлечь внимание к важному месту.  Иногда вы будете видеть символ обратного слеша (). Он используется как маркер продолжения в примерах, которые разбиты на несколько частей. В действительности вам будет необходимо вводить все инструкции одной строкой.  На протяжении книги дополнительная информация будет выделяться с помощью специальных знаков.
  8. 8. Введение в Informix Dynamic ServerВ этой части  Архитектура сервера  Определение ключевых терминовВ независимости от того, новичок ли вы в Informix или переходите с младших версий вамнеобходимо знать как управлять сервером и использовать его функциональность. Цель этой книги – сделать процесс обучения более легким путем выделения того, чтовам необходимо знать для конфигурирования, запуска и настройки окружения БД. IDS.Хотя на первый взгляд Informix Dynamic Server может показаться похожим на другиеСУБД, он очень сильно другой. Вскоре вы убедитесь, что он более стабилен и надежен,проще управляем, чем другие сервера. В книге основное внимание уделяется IDS 11, который в чем-то похож на младшиеверсии сервера, а в чем-то радикально от них отличается. IDS 11 построен на полностьюмодифицированной архитектуре, которая была представлена в версии IDS 9.1. Несмотряна все изменения, сервер администрируется во многих случаях так, как и прежде Сегодня IDS - не «классический» сервер БД, скорее это «объектно-реляционный»сервер. Сервер включает в себя высокопроизводительное ядро, разработанное в начале1990-х годов (и постоянно улучшаемое) для использования преимуществ симметричноймногопроцессорной (symmetric multiprocessing SMP) и параллельной обработки (massivelyparallel processing MPP). Самым большим улучшением было внедрение в сервер объектно-ориентированного функционала в 1995 году, что предоставило разработчикам иадминистраторам новые возможности по моделированию баз данных и управлениюданными. На сегодня IDS предоставляет значительно больше возможностей посравнению со стандартным реляционным сервером БД. В этой части рассмотренаархитектура сервера и ее три основных компонента. Мы познакомимся со специальнойтерминологией Informix. После прочтения вы поймете, почему сервер получил свое имя,что такое поток, и из каких фундаментальных частей состоит сервер. Чтение книгипредполагает, что вы знакомы с языком SQL и концепциями реляционных и объектно-ориентированных баз данных. В изложении я не буду спускаться до уровня битов ибайтов; если вам необходим такой уровень подробности – обратитесь к официальнойдокументации продукта или посетите веб-сайт IBM.Что такое Informix Dynamic Server?Informix Dynamic Server – сервер баз данных или, пользуясь маркетинговым новоязом,«объектно-реляционная система управления базами данных» (object-reletional databasemanagement system ORDBMS). Сервер может работать как со стандартными(реляционными) типами данных (числа, символы), так и с объектно-ориентированными.Эта технология является расширением возможности сервера хранить данные не-ASCII вBLOB-объектах. Сегодня IDS позволяет значительно больше, чем просто писать байтовыйпоток на диск, как это происходит с BLOB. Используя соответствующие функции, выможете не только хранить «объект», но и искать в нем, изменять что-то и, вообще,выполнять любую операцию, имеющую смысл для этого «объекта» и поддерживаемуюфункцией. Этот новый функционал обычно называется расширяемость (extensibility). В общем случае задачей сервера БД является обеспечение такой обработки данных(хранение, изменение, удаление), которая защищает данные от компрометации илиизменения вне правил, установленных администратором. В IDS включены логические ифизические механизмы выполнения этих задач.
  9. 9. С логической точки зрения IDS обеспечивает возможность установить правила и условияне только для столбца в таблице, но и для определения места хранения строки на диске.Вы можете указать условия изменения или удаления элементов строки. Для выполненияразличных действий над БД можно использовать хранимые процедуры. С физической токи зрения IDS хранит набор логов, где записаны изменения в данных, ипредоставляет механизм блокировок для поддержания целостности данных. Дляминимизации простоя в случае поломки оборудования, балансирования нагрузки, обменаданными между различными БД сервер БД позволяет создавать копию всего окруженияБД или его части на том же физическом сервере или на отдельном сервере. IDS позволяетвыполнять архивирование и восстановление БД. Для отката пользовательской ошибки выможете выполнить восстановление БД на конкретный момент времени. Недавно в сервербыла добавлена возможность восстановления архива, сделанного на одном физическомсервере, на другом физическом сервере даже в том случае, когда сервера используютразные ОС. Informix Dynamic Server разработан на основе динамической масштабируемойархитектуры (Dynamic Scalable Architecture DSA) и позволяет эффективно использоватьвозможности современных компьютеров – многопроцессорность и большой объемпамяти. Исследования показывают, что при добавлении в компьютерных ресурсов(например, установка второго процессора) производительность Informix растет линейно. Основой DSA является распараллеливание процесса (process parallelization) ,илипараллельная обработка похожих задач. На рисунке 1.1. показана принципиальная схемаработы такого процесса Рисунок 1.1 Принципиальная схема параллельного выполнения запросаНа рисунке показано, как запрос может выполняться параллельно. Сначала происходитнесколько операций чтения с диска. Затем над результатами этого шага выполняютсяфункциональные операции. На каждом шаге данных, которые необходимо обработать,становится меньше,и результаты выполнения операции объединяются с результатамивыполнения всех операций на этом уровне. Наконец, сервер возвращает результирующий
  10. 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. 11. Процессорный компонентIDS обеспечивает возможность масштабировать окружение БД путем настройки пулапроцессов сервера БД – виртуальных процессоров(VPs). В следующей книге мырассмотрим механизмы работы этих процессоров. Как можно увидеть на рисунке 1.1., IDSразбивает пользовательские запросы на отдельные подзадачи (сканирование таблиц,объединение, группировка, сортировка), каждая из которых обрабатывается виртуальнымпроцессором. Виртуальные процессоры очень похожи на обычные ЦП тем, как онипланируют пользовательские запросы и управляют ими. На рисунке 1.2 показано, какработает пул виртуальных процессоров IDS Рисунок 1.2 Пул виртуальных процессоров IDS Поток – это отдельная задача в процессе сервера БД. Множество потоков можетвыполняться одновременно, в параллель, в пуле виртуальных процессоров. В отличие отоднопоточного движка, где каждая задача выполняется в свой квант времени,виртуальные процессоры IDS являются многопоточными. Если какой-то поток ждетресурса или окончил свою работу, то виртуальный процессор сразу переключается навыполнение следующего потока. Таким образом максимально используются ресурсы ЦП.Эта возможность IDS называется «fan-in parallelism» и проиллюстрирована на рисунке 1.3
  12. 12. Рисунок 1.3 «Fan-in parallelism»Пользовательский запрос может быть распределен между несколькими виртуальнымипроцессорами. Например, если выполняется многотабличное объединение (multitable join),сервер БД разделит задачу на несколько подзадач, каждая из которых будет выполнятьсяна своем виртуальном процессоре. На рисунке 1.4 приведена иллюстрация этойвозможности, которая называется «fan-out parallelism». Рисунок 1.4 «Fan-out parallelism»
  13. 13. Суммарный эффект от этих двух типов распараллеливания – за единицу временивыполняется больше операций. Иными словами, сервер БД работает быстрее. Поскольку потоки не привязаны к виртуальным процессорам, IDS выполняетдинамическое балансирование нагрузки. Виртуальные процессоры можно объединять вгруппы, оптимизированные для выполнения какой-то конкретной задачи. Иллюстрацияэтого факта приведена на рисунке 1.5, где показаны виртуальные процессоры,оптимизированные для операций с ЦП, ввода/вывода, связи, административных задач. Рисунок 1.5 Виртуальные процессоры IDS, оптимизированные для выполненияотдельных функций.Виртуальные процессоры IDS имеют средства мониторинга, позволяющие отследитьдеятельность пользователей и сервера БД. В однопоточных серверах БД каждая операцияпредставляет собой независимый процесс в ОС со своими стеком данных, кэшеминструкций, что затрудняет мониторинг того, что происходит в сервере БД. В IDSпредусмотрены утилиты onstat и oncheck , которые позволяют легко увидеть, кто и чтоделает и как это влияет на систему. Вы можете сконфигурировать необходимое количество ВП каждого класса, а такжеопределить специальные ВП (определенные пользователем ВП). Эти ВП выполняютсяизолированно от ядра сервера, поэтому некорректно функционирующийпользовательский ВП не сможет привести к падению сервера. При необходимости можноизменять количество и тип ВП в то время, когда БД находится в on-line, например, приповышении нагрузки на сервер. В UNIX, Linux, Mac OS X использование многопоточныхвиртуальных процессоров значительно снижает количество процессов ОС, и какрезультат, вызывает меньше переключений контекста. В Windows ВП реализованы какпотоки и используют многопоточные возможности ОС. Поскольку IDS имеетсобственные возможности поддерживать несколько потоков для обслуживания
  14. 14. клиентских запросов, то ему нужно меньше потоков Windows, что снижает затраты ОС науправление потоками. Поскольку IDS полностью использует возможности ЦП, то ему нужно меньшеаппаратных мощностей, чем другому серверу БД. В исследованиях выявлено, что чтобыдостичь той же производительности, что и однопоточный или процессо-ориентированныйсервер БД, IDS необходимо 25-40 % ресурсов Такие возможности IDS позволят вамсэкономить некоторые деньги на закупке и обслуживании оборудования.Разделяемая памятьПоскольку все задачи сервер выполняет с помощью ВП, то и память сервера БДконсолидирована. Этот большой блок разделяемой памяти предоставляет IDSвозможность быстро пересылать данные между виртуальными процессорами, а такжепозволяет пользовательским приложениям получить данные прямо из памяти, если онитам есть по запросу другого пользователя, а не дергать лишний раз диск. Память внутриэтого блока многократно используется для обслуживания пользовательских запросов.Например, когда сессия пользователя заканчивается, потоко-специфичная память этойсессии очищается и может быть использована в другой сессии. Если для обслуживанияпользователей серверу БД необходимо больше памяти, он запрашивает у ОСдополнительную память. Предельный объем памяти, доступной серверу БД, указываетсяво время конфигурирования IDS. Когда дополнительная память больше не нужна, онаосвобождается. Динамическое управление памятью позволяет избежать проседанияпроизводительности сервера БД при увеличении нагрузки. Освобожденная памятьвозвращается под управление ОС и может быть использована другими процессами. Разделяемая память IDS состоит из четырех частей:  Резидентная часть  Виртуальная часть  Коммуникационная часть  Часть виртуального расширенияКогда стартует окружение БД, выделяются, по крайней мере, две частипамяти(управляются конфигурационными параметрами разделяемой памяти иподключений). В Части 4 описаны конфигурационные параметры разделяемой памяти.Ниже кратко описаны части разделяемой памяти IDSРезидентная частьЭта часть содержит, кроме всего прочего, общую информацию об окружении БД ибуферный пул. Также в этой части памяти размещены некоторые общесистемныеструктуры, системные таблицы, содержащие данные о чанках, db-пространствах,блокировках, транзакциях, зеркалах, пользовательских соединениях, буферы физическогои логического журнала. Информация из системных таблиц доступна через интерфейсмониторинга системы (System Monitoring Interface см Часть 4 ). В резидентной частиразделяемой памяти также располагается буфер репликации HDR (если она запущена).Подробно о репликации HDR смотрите в моей следующей книге. Самую большую часть резидентной области занимают регулярные буферы,используемые для хранения данных, используемых пользовательскими приложениями. Взависимости от характера операций в БД эти буферы могут помочь снизить количествоопераций дискового ввода/вывода. Когда пользовательское приложение запрашиваетнекоторые данные, сервер сначала пытается найти их в этих буферах. Увеличение размерапула буферов может сниить количество дисковых операций и тем самым поднять общуюпроизводительность системы, особенно для OLTP-приложений. В пуле буферов IDSхранит часто используемые индексные и табличные данные. Для хранения применяется
  15. 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. 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 – это возможность процессаодновременно выполнять несколько операций дискового ввода/вывода без необходимостиожидать отклика от подсистемы ввода/вывода. База данных может быть размещена в файлах ОС (выделенное пространство cookedspace). Использование выделенных файлов не гарантирует, что они будут расположенына диске последовательно. Вы должны исходить из предположения, что не будут. Этаособенность выделенных файлов влияет на производительность работы с диском. Некоторые операционные системы (типа Windows) для записи /чтения файловиспользуют небуферизированный и некешированный ввод/вывод. Из этого факта следуетвывод: использование сырого диска под Windows выигрыша в производительности непринесет. С версии IDS 11 поддержка небуферизированного ввода/вывода средствами ОСпереносится и на другие операционные системы. Эта функциональность может
  17. 17. обеспечить производительность, сопоставимую с производительностью сырого диска, прииспользовании файловых чанков и db-пространств. Ради справедливости скажу, что этотфункционал IDS не является уникальным. Некоторые серверы БД поддерживаютхранение Баз данных только в выделенных файлах, другие поддерживают и выделенныефайлы, и сырые диски. У IDS есть очень полезная возможность – распределять данные надиске в соответствии с некоторыми правилами. Informix поддерживает несколько схемпартиционирования данных. Наличие такого функционала также повышает доступностьданных, улучшает управляемость хранением старых данных (это называется data life-cyclemanagement – управление жизненным циклом данных). В Informix диск представлен некоторыми физическими и логическими свойствами. дляпонимания этого я ниже ввожу необходимую терминологию. В Части 3 мы болееподробно поговорим о дисковом компоненте.Основные термины. На протяжении книги я буду использовать некоторые фразы и слова, которые или имеютсмысл только для Informix Dynamic Server, или трактуются в нем не так, как в другихсерверах БД. Поэтому перед тем, как двинуться дальше, давайте определимся сключевыми терминами. Для избежания двусмысленности, я буду стараться использоватьтолько правильные термины и избегать компьютерного сленга. В книге я буду постоянно обращаться к «экземплярам» и иногда к «серверу БД». Сервер БД – это откомпилированный исходный код, на использование которого выприобрели лицензию и установили на физический сервер; это Informix Dynamic Server.Этот сервер имеет утилиты и программы для создания, администрирования сервера иподключения к нему клиентских приложений. Вам, возможно, вообще не придетсяадминистрировать и настраивать сам сервер. При правильной настройке файловойсистемы и переменных окружения на физический сервер можно установить нескольковерсий IDS, о чем мы подробно поговорим в части 3. Экземпляр – уникальное рабочее окружения или окружение времени выполнения,используемое для хранения набора баз данных, к которым могут иметь доступ (или неиметь) конечные пользователи. До этого момента в книге вместо термина «экземпляр»использовался термин «окружение базы данных». Экземпляры и базы данныхнастраиваются для достижения необходимой производительности. Изменения рабочегоокружения базы данных проводятся на уровне экземпляра. Физический сервер, накоторый установлен сервер БД, может поддерживать несколько экземпляров. Каждыйэкземпляр обладает своим набором конфигурационных параметров, памятью и дисковымпространством.Физические элементыЧтобы понять, как физические элементы объединяются в логические структуры, давайтерассмотрим рисунок 1.6. на нем сплошные линии соответствуют физическим элементам, апунктирные – логическим.
  18. 18. Рисунок 1.6. Физические и логические структуры экземпляра IDSБазовый физический элемент экземпляра называется страница данных или простостраница. Страница данных имеет фиксированный размер, называемый размеромстраницы; размер страницы – минимальный объем данных, который может быть записанна диск или считан с диска. Как я говорил выше, в зависимости от версии ОС размерстраницы может составлять 2 КБ или 4 КБ. Большинство утилит мониторинга иадминистрирования IDS выводят информацию об использовании дискового пространствав страницах, а не в килобайтах или мегабайтах. Для приведения этих данных к мегабайтамнеобходимо количество страниц умножить на 2 (4,6,8,12,16). Самый маленький дисковый компонент, который вы можете администрировать,называется чанк. С физической точки зрения чанк – это обычно целый дисковый раздел,хотя может быть и меньше раздела, но обязательно должен быть логически непрерывным(подробнее смотрите часть 5). Если для хранения данных вы используете выделенныефайлы, то чанк представляет собой обычный плоский файл. С логической точки зрениячанк представляет собой набор страниц данных и является базовым элементом длясоздания db-пространств и добавления в них дополнительного пространства. DB-пространство – логический набор из одного или более чанков, созданных на одномили нескольких физических дисках. В db-пространствах хранятся таблицы баз данных.Если вы не сконфигурировали параметры, определяющие сортировку и упорядочениерезультатов выборки в памяти, то эти операции проводятся с использованием диска. DB-пространства не могут разделяться между несколькими экземплярами, а физический диск,на котором расположены чанки, может содержать чанки, принадлежащие другим db-пространствам или экземплярам, расположенным на том же физическом сервере (см.рисунок 1.7)
  19. 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. 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. 21. Рисунок 1.8 Пересечение табличных экстентовБольшое количество пересекающихся экстентов неблагоприятно влияет напроизводительность чтения данных. В части 8 мы рассмотрим команду, котораяпозволяет узнать о количестве пересечений экстентов в db-пространстве. Таблица можеткак находится целиком в одном db-пространстве, так и быть распределена по разным db-пространствам. Такой процесс называется фрагментированием или партиционированиемтаблицы. Таблица – не единственный объект, который можно фрагментировать, индексытакже имеют опции фрагментирования. Грамотное фрагментирование таблиц и индексовможет существенно улучшить производительность сервера. В части 5 мы детальнопоговорим о фрагментировании таблиц и индексов.Типы окружения базы данных.Окружения базы данных разделяют на две большие категории. OLTP-системыхарактеризуются большим количеством операций чтения/записи, обслуживают большоеколичество пользователей, выполняющих однотипные операции в базе данных иобеспечивают минимальное время отклика. Большинство бизнес-приложений являютсяименно OLTP-приложениями, например, системы обработки заказов. IDS прекрасноподходит для работы в качестве OLTP-сервера.OLAP-, или DSS-системы характеризуются гораздо меньшим количеством пользователей,однако, эти пользователи выполняют сложные запросы, часто за большие интервалывремени и не так требовательны ко времени отклика системы. Хотя IDS в наибольшейстепени подходит для OLTP, многие заказчики используют его и в DSS, из-за наличиямасштабируемости, расширенных типов данных, производительности и небольших затратна администрирование.ТранзакцииИногда необходимо, чтобы в базе данных выполнился или весь набор операций, или невыполнилось ничего. Такая группа операций называется транзакцией. Типовым примеромтранзакции является перечисление денег в банке. Предположим, что вы хотитеперечислить деньги со счета на счет. В этом случае деньги должны быть сняты с одногосчета, а затем зачислены на другой счет. Если одна из этих операций завершитсянеудачно, то должны быть откачены обе. Когда я объяснял концепцию корневого db-пространства, то упоминал о том, что серверотслеживает операции в базе данных, используя два компонента на диске – физический и
  22. 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.

×