- •4.5. Упражнения 67
- •Глава 6. Устройство Informix Dynamic Server 165
- •Глава 7. Эксплуатация информационных систем 177
- •Глава 1 Обзор основных архитектур баз данных
- •1.1. Архитектура на основе разделяемых файлов
- •1.2. Архитектура “Хост-терминал”
- •1.3. Архитектура “Клиент-Сервер”
- •1.4. Архитектура с использованием сервера приложений (трехзвенная архитектура)
- •1.5. Упражнения
- •Глава 2 Модели данных
- •2.1. Уровни восприятия данных
- •2.2. Иерархическая модель данных
- •2.3. Сетевая модель данных
- •2.4. Реляционная модель данных
- •2.5. Объектно-реляционная модель данных
- •Глава 3 Реализация информационных систем на основе продуктов Informix Software
- •3.1. Обзор продуктов Informix
- •3.2. Варианты построения систем
- •Internet/Intranet-конфигурация
- •3.3. Выбор оптимальной конфигурации
- •Глава 4 Математические основы реляционных субд
- •4.1. Основные понятия
- •4.2. Ключи
- •4.3. Основные операции над таблицами и их интерпретация
- •4.4. Нормализация
- •4.5. Упражнения
- •Глава 5 Язык sql
- •5.1. Типы данных, доступные в sql
- •5.3. Основные sql-операторы для доступа и модификации данных
- •5.4. Управление транзакциями
- •5.5. Продвинутые варианты оператора поиска
- •5.5.1. Поиск по нескольким таблицам
- •5.5.2. Устранение повторения данных в операторе select
- •5.5.3. Вычисления внутри оператора select
- •5.5.4. Логические выражения в условии sql-операторов
- •5.5.5. Слияние двух выборок
- •5.5.6. Сортировка выборки
- •5.5.7. Вставка в таблицу нескольких строк одновременно
- •5.6. Использование sql в языках программирования
- •5.7. Программирование сервера базы данных
- •5.7.1. Динамический sql
- •5.7.3. Хранимые процедуры
- •5.7.4. Триггеры
- •5.8. Ограничители (задание целостности на уровне схемы)
- •5.9. Разграничение в sql прав пользователей
- •5.9.1. Права доступа
- •5.9.2. Права на уровне базы данных
- •5.9.3. Права на таблицы
- •5.9.4. Права на хранимые процедуры
- •5.9.5. Кто и как следит за соблюдением прав
- •5.9.6. Механизм ролей
- •5.9.7. Псевдотаблицы (view)
- •5.9.7. Синонимы
- •5.10. Управление одновременным доступом к данным
- •5.10.1. Что бывает, когда несколько человек одновременно пытаются обновить одни и теже данные
- •5.10.2. Открытие базы данных только для себя
- •5.10.3. Блокирование таблицы
- •5.10.4. Механизм блокирования записей и уровни изоляции
- •5.10.5. Управление ожиданием снятия блокировок
- •5.10.6. Тупиковые ситуации
- •5.11. Повышение скорости обработки запросов.
- •5.11.1. Индексы
- •5.11.2. Буферизация журнала транзакций
- •5.11.3. Блокировка на уровне записей и страниц
- •5.11.4. Эффективное построение запросов
- •5.11.5. Сортировка и поиск по коротким полям. Классификаторы
- •5.12. Объектное расширение sql в Informix ds/Universal Data Option
- •5.12.1. Зачем нужна поддержка объектов в серверах бд?
- •5.12.3. Внедрение объектно-ориентированной технологии
- •5.12.4. Реализация объектного подхода в Informix
- •Informix ds/Universal Data Option - объектно-реляционная субд
- •5.12.5. Итак…
- •Глава 6. Устройство Informix Dynamic Server
- •6.1. Внутренняя архитектура dsa
- •6.2. Механизм хранения данных
- •6.3. Инсталляция продукта
- •6.4. Запуск и останов сервера
- •6.5. Работа с русским языком
- •Глава 7. Эксплуатация информационных систем
- •Администрирование серверов баз данных
- •7.2. Обеспечение сохранности данных.
- •7.2.1. Технологии постоянного дублирования
- •7.2.2. Архивация
- •7.2.3. Так как же обеспечить сохранность данных?
- •7.3. Архивирование и восстановление данных
- •7.3.1. Что нужно архивировать
- •7.3.2. Утилиты архивации и восстановления
- •7.3.3. Создание архивов утилитой ontape
- •7.3.4. Восстановление из архивов утилитой ontape
- •7.3.5. Как узнать “когда”?
- •7.3.6. Практические советы
- •7.4. Средства контроля за доступом
- •7.4.1 Как работает аудитинг?
- •7.4.2. Конфигурирование списков протоколируемых событий
- •7.4.3. Задание файлов, запуск и остановка механизма аудитинга
- •Анализ протокола
- •7.4.5. Практические советы или Что делать, если вы хотите…
- •7.5. Реагирование на чрезвычайные ситуации
- •7.6. Мониторинг текущего состояния сервера базы данных
- •7.6.1. Кто работает с сервером базы данных
- •7.6.2. Сколько памяти использует сервер бд
- •7.6.3. Сколько свободного места имеется у сервера бд
- •7.7. Достижение требуемой производительности
- •7.7.1. Как узнать, что ждет некоторый запрос
- •7.7.2. Как выяснять причины падения производительности
- •2. Общие принципы предлагаемой технологии
- •3. Как портировать приложение
Глава 7. Эксплуатация информационных систем
Администрирование серверов баз данных
После ввода в строй ИС необходимо обеспечить ее работоспособность в течении всего периода эксплуатации. Такое обеспечение работоспособности называется сопровождением. По разным оценкам на сопровождение приходится около половины или более всех суммарных затрат по разработке и эксплуатации ИС [Фокс]. Таким образом, сопровождение ИС, обеспечение ее жизненного цикла является очень важной и ресурсоемкой задачей. Рассмотрим основные обязанности администратора сервера базы данных.
В главе про SQL мы ввели понятие администратора базы данных (DBA). Администратор какой-то конкретной базы данных - это человек, который следит за состоянием этой конкретной базы данных, дает права на доступ ко всей базе целиком или ее отдельным объектам. В отличии от администратора какой-либо БД, администратор сервера базы данных следит за состоянием и работоспособностью программного и аппаратного обеспечения, на котором функционирует сервер базы данных и, естественно, самой программы-сервера базы данных.
У администратора сервера базы данных основной задачей является поддержание системы в работоспособном состоянии, восстановлени работоспособности системы после сбоев, настройка производительности системы. Другими словами, информационная система должна работать, работать с достаточной скоростью, и, если все-таки что-то случится и произойдет сбой, работоспособность ИС должна быть восстановлена в требуемое время. Достаточно часто администратором сервера базы данных является администратор сетевой операционной системы (Unix, Windows NT).
База данных в ИС может быть распределенной. То есть в ее состав может входить несколько серверов баз данных, физически расположенных на разных компьютерах. В этом случае в обязанности администратора сервера базы данных также входит поддержание согласованного списка пользователей на разных компьютерах, организация тиражирования (репликации) данных и т.д.
Ниже, в следующих параграфах этой главы, мы рассмотрим некоторые аспекты администрирования серверов Informix. Приводимая здесь информация ни в коем случае не заменяет внимательное и тщательное изучение документации, в частности Руководства по администрированию Informix Dynamic Server, но позволяет понять некоторые аспекты администрирования и ответить на некоторые частные, но часто возникающие конкретные вопросы.
7.2. Обеспечение сохранности данных.
В подавляющем большинстве информационных систем (ИС) стоимость имеющейся в них информации превышает стоимость той аппаратуры, того программного обеспечения, на котором данная ИС работает. Поэтому обеспечить максимальную сохранность данных - одна из важнейших задач как разработчиков ИС, так и тех, кто ее обслуживает (администраторов, системных программистов и т.д.).
Очевидно, что не бывает ни абсолютно безошибочных программ, ни абсолютно надежных компьютеров. Так же как и не бывает людей, не совершающиъ ошибок. Следовательно, сделать абсолютно надежную ИС (в том смысле, чтобы разработчики и эксплуатационщики могли гарантировать бессбойную безошибочную работу ИС в течении нескольких лет) невозможно. Поэтому, говоря о сохранности информации в ИС следует говорить о таких понятиях, как среднее время простоя в год, вероятность сбоя, время восстановления работоспособности системы после сбоя и т.д. В любом из этих случаев обязательным является требование сохранить всю информацию или, в крайнем случае, минимировать потери информации.
Рассмотрим вопрос сохранности информации более подробно. Прежде всего, выделим основные причины, по которым информация может быть утрачена:
Отказ оборудования. Например, в системе питания твердого диска произошло короткое замыкание и от нагрева был испорчен сам носитель. К ошибкам подобного рода стоит отнести и ошибки в системном программном обеспечении (ОС).
Ошибка в прикладном программном обеспечении. Например, программа может неправильно формировать критерий удаления данных и пользователь, сам того не желая, может удалить несколько нужных записей вместо одной, только что неправильно введеной.
Человеческая ошибка. Администратор может опечататься и вместо нового, только что вставленного в систему жесткого диска, отформатировать старый диск с важными данными. Сюда же стоит отнести и преднамеренное уничтожение информации.
Единственным принципом, на котором может базироваться решение проблемы обеспечения сохранности информации (и, как следствие, гарантии доступности информации) - это тот или иной способ дублирования данных. Дублирование данных может быть постоянным, то есть имеющиеся в системе данные постоянно копируются в некоторую резервную среду хранения и, соответственно, резервные данные сооответствуют текущему состоянию данных (возможно, с некоторой задержкой). Другой вариант дублирования данных - это архивация, то есть создание некоторой копии данных в их текущем состоянии и консервация этой копии.
Рассмотрим принципиальные достоинства и недостатки постоянного дублирования данных и архивации. Затем рассмотрим основные способы постоянного дублирования и архивации.
Постоянное дублирование данных позволяет в высокой степени обезопасить систему от отказа оборудования. В зависимости от того или иного способа дублирования время восстановления системы может быть сведено практически к нулю (варианты постоянного дублирования рассматриваются ниже). Программная ошибка в прикладной программе, повлекшая за собой потерю информации, никак не сможет быть исправлена при постоянном дублировании, так как ошибочные изменения будут продублированы и в резервном экземпляре данных. Точно так же, постоянное дублирование не спасает и от человеческой ошибки или умышленного уничтожения данных.
Достоинством постоянного дублирования является очень быстрое восстановление работоспособности системы и минимальные потери информации после сбоя аппаратуры или системного программного обеспечения. Недостатком постоянного дублирования является невозможность вернуть информационную систему в состояние, которое было до момента потери данных в результате ошибки в прикладной системе или человеческой ошибки.
Архивирование предполагает создание некоторого “слепка” состояния ИС в фиксированный момент времени. Как правило, архивирование - это достаточно длительный процесс как с точки зрения создания архива, так и с точки зрения восстановления состояния ИС из сделанного ранее архива. Архивирование обычно выполняется на внешние носители (ленты, магнито-оптику, и т.д), которые хранятся отдельно от основной вычислиетльной системы, что повышает сохранность данных в случае чрезвычайных обстоятельств (пожара, землятресения и т.д.). Наличие архивных копий позволяет восстановить информацию после любой из рассмотренных выше причин потери информации.
Основным достоинством архивации по сравнению с постоянным дублированием является большая устойчивость к разным причинам потери информации, возможность вернуть ИС в то состояние, которое она имела на некоторый момент времени до каких-либо событий. Недостатком архивации является достаточно большое время возвращения ИС в нужное состояние (иногда, измеряемое часами и, даже, сутками). Также недостатком архивации является то, что теряется информация, занесенная в ИС в интервал между созданием последнего архива и моментом потери информации. При неразумно построенной политике создания архивных копий потерянной информации может быть недопустимо много.
Итак, видно, что постоянное дублирование и архивация данных взаимно дополняют друг друга. Другими словами, при разработке и эксплуатации ИС в целях снижения времени простоя и минимизации потери информации необходимо предусмотреть как дублирование, так и создание архивов.
