- •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.3. Архивирование и восстановление данных
Для того, чтобы уменьшить неприятные последствия после полной или частичной потери информации существуют специальные программные средства архивации и последующего восстановления данных. Архивация есть создание копии данных (всех или только части) в некотором файле или на некотором внешнем носителе (ленточке, компакт-диске и т.д.).
Средства архивирования могут работать на уровне операционной системы, на уровне прикладной программы, на уровне СУБД. То есть средства архивирования и восстановления данных могут работать соответственно с объектами в понимании операционной системы (файлы, диски), могут сохранять некоторые внутренние параметры прикладной программы, а могут работать и с объектами сервера базы данных (таблицами, базами данных). Нас интересует архивация и восстановление именно на уровне СУБД, а, более конкретно, эти средства в серверах фирмы Informix Dynamic Server. Рассмотрим эти средства более подробно.
Грамотное применение средств архивации и востановления данных позволит достаточно быстро вернуть информационную систему в прежнее, работоспособное состояние с минимальными потерями информации или вообще без потерь. Такая возможность важна, а иногда просто необходима, для таких приложений, как банковские системы, системы учета поступающих заказов и т.д.
7.3.1. Что нужно архивировать
Стоит напомнить о том, как реально хранятся данные в сервере Informix Dynamic Server. На диске для хранения данных выделяются чанки (chunks). Чанк - это файл, устройство прямого доступа (раздел диска без файловой системы) или их фрагменты. Чанки объединены в наборы, называемые пространствами данных (dbspace). Внутри пространств данных существует системная область для внутренней информации, хранятся таблицы с данными и, кроме того, имеются логические журналы. В таблицах хранятся текущие данные, а в логические журналы записываются все изменения в таблицах (типа “пользователь Х в момент времени t поменял значение поля F с M на N”).
Другими словами, существует несколько категорий объектов в базе данных. С точки зрения администратора сервера базы данных (пользователя “informix”), в базе данных существуют такие объекты, как чанки (chunks), пространства данных (dbspaces) и журналы транзакций (logical logs). С точки зрения разработчика той или иной конкретной системы, в СУБД хранятся базы данных, состоящие из таблиц, хранимых процедур и т.д. Соответственно, Informix Dynamic Server предоставляет возможность каждой из указанных категорий найти те средства архивации и восстановления, которые ей подходят.
7.3.2. Утилиты архивации и восстановления
Имеются следующие утилиты архивирования и восстановления данных, предназначеные для администратора СУБД, то есть работающими с такими категориями, как журнал транзакций, пространство данных и т.д.:
ontape onarchive onbar
Для архивации и восстановления отдельных баз данных, то есть для программистов и администраторов каких-то конкретных баз данных, существуют утилиты
dbexport dbimport
Здесь мы рассмотрим только одну утилиту, которая, наверное, чаще всего используется для выполнения рассматриваемых здесь задач, а именно утилиту ontape.
Утилита ontape позволяет как создавать архивы, так и восстанавливать данные из архивов, которые были сделаны с ее помощью. Утилита ontape позволяет создавть как архивы данных (архивировать текущее состояние всех баз данных в системе и системную информацию), так и отдельные архивы журналов транзакций. При создании архивов данных (и, естественно, их восстановлении) утилита ontape использует следующие конфигурационные параметры:
TAPEDEV - устройство, обычно ленточное, для создания архивов, на котором будет создаваться архив (например, /dev/rmt/0m);
TAPEBLK - размер блока для TAPEDEV в килобайтах, то есть тот объем информации, который будет использоваться для обмена с устройством TAPEDEV (например 100);
TAPESIZE - емкость носителя (обычно магнитной ленты) в килобайтах на устройстве TAPEDEV, то есть сколько информации может быть сохранено на одном носителе (например, 2000000 для 4 мм 2ГБт ленточки).
Для создания и восстановления архивов журналов транзакций используются аналогичные параметры:
LTAPEDEV - устройство, обычно ленточное, для создания архивов журнала (например, /dev/rmt/1m);
LTAPEBLK - размер блока для LTAPEDEV в килобайтах (например 50);
LTAPESIZE - емкость носителя (обычно магнитной ленты) в килобайтах на устройстве LTAPEDEV.
В принципе, в качестве устройств (параметры TAPEDEV и LTAPEDEV) могут выступать и файлы, только надо убедиться, что пользователь informix имеет право читать и писать в данный файл и, так как утилита ontape проверяет наличие данного устройства, этот файл должен существовать. Кроме того, ничто не мешает использовать одно и тоже устройство и для создания архива данных, и для создания архива журнала транзакций. Просто в этом случае надо быть внимательным при смене носителей в устройстве.
