- •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. Как портировать приложение
6.4. Запуск и останов сервера
У сервера базы данных Informix Dynamic Server существует несколько режимов работы. Можно выделить два основных режима работы – рабочее (on‑line) и полный останов (off‑line).
Запуск сервера в работу (перевод сервера в рабочий режим из выключенного состояния)производится командой
oninit
Останов (выключение) работающего сервера производится командой:
onmode –ky
Для того, чтобы узнать в каком режиме в данный момент времени находится сервер, можно выполнить команду:
onstat -c
Если указанная команда выдает сообщение вида
shared memory not initialized for INFORMIXSERVER 'tcp_ods'
то это означает, что сервер по имени ‘tcp_ods’ остановлен (выключен), а если выдача имеет вид:
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 16 days 00:54:23 -- 8936 Kbytes
то такая выдача сообщает, что сервер включен (указан режим On-Line).
Кроме двух основных режимов (рабочее и полный останов) сервера Informix Dynamic Server существуют еще и несколько промежуточных режимов. Некоторые из них являются системными, то есть перевод сервера в эти режимы производится автоматически. Кроме этого, существует еще и специальный, однопользовательский административный режим, вход и выход из которого производится по команде администратора.
Очень часто обеспечение работы сервера баз данных является основным назначением некоторого компьютера. Поэтому целесообразно автоматически запускать сервер базы данных в работу, как только производится запуск компьютера. Аналогично, при выключении ОС желательно обеспечить автоматический останов сервера базы данных. В ОС Unix подобные возможности реализуются с помощью редактирования специальных файлов, находящихся в директории /etc/rc*.
Если в качестве серверной платформы вы используете MS Windows NT/95, или управляете сервером Informix DS с помощью специально выделенного компьютера, на котором установлен Informix Enterprise Command Center, то куправлять запуском и остановкой сервера можно и из графического режима:
Для обеспечения автоматического запуска и остановки сервера БД Informix DS в случае использования MS Windows NT следует воспользоваться встроенными в Windows NT возможностями автоматического запуска служб. Для этого надо открыть Control Panel (Панель управления) и выбрать управление службами (Services). Далее, для всех служб, относящихся к данному экземпляру сервера (их две, и они легко видны по названию) следует в диалоге StartUp установить опцию «Automatic»:
6.5. Работа с русским языком
Informix Dynamic Server, как другие продукты фирмы Informix, поддерживают работу с русским языком. Поддержка русского языка осуществляется на основе стандарта GLS (Global Language Support – поддержка национального языка). Суть этой поддержки в следующем – существуют специальные файлы, в которых описываются набор допустимых символов, порядок сортировки букв в данном алфавите, способы перекодировки из одной кодовой таблицы в другую (если для данного языка есть несколько кодовых страниц). На основе этой информации сервер БД определяет
является ли тот или иной символ допустимым для данного языка;
как определять какое слово «раньше», если производится сортировка по полям с русскими символами;
как преобразовывать символ, если клиент работает с одной кодовой таблицей, а данные в БД находятся в другой кодовой таблице.
Как известно, в отечественной практике используется несколько кодовых страниц для работы с русским языком. В стандартной поставке имеются следующие локали (локаль – это описание конкретной кодовой страницы):
cp866 – кодировка, используемая для MS DOS программ (соответствует так называемой «альтернативной» кодировке;
1251 – кодировка, применяемая при работе с русским языком в MS Windows;
ISO8859-5 – кодировка для русского языка, определенная Международной Организацией по Стандартам, обычно используется в современных Unix-системах;
КОИ-8 – самая старая кодировка для символов русского языка, используется в некоторых Unix-системах.
Если Вы применяете кодировку, отличную от перечисленных выше, то в службе технической поддержки Informix специально для вас могут скомпилировать файл с поддержкой конкретной локали.
В сервер баз данных Informix Dynamic Server введены два новых специальных типа данных, максимально полно обеспечивающих работу с национальными языками – это типы NCHAR и NVARCHAR. Эти типы используются вместо типов CHAR и VARCHAR соответсвенно. То есть, при создании таблицы с текстовыми полями с русскими символами следует использовать типы NCHAR и NVARCHAR. Использование этих модифицированных типов данных прозрачно для приложений.
Для корректной работы с русскими данными в сервере БД Informix следует выполнить следующие действия. Первое – надо создать базу данных с поддержкой русского языка, то есть с конкретной русской кодировкой. Второе, для обеспечения доступа к этой базе данных, на клиенте надо корректно прописать кодировку клиентской программы и кодировку в базе данных.
Если вы работаете в алфавитно-цифровом режиме, то для этого используются переменные окружения DB_LOCALE и CLIENT_LOCALE. Первая отвечает за кодировку в базе данных, а вторая – за кодировку на клиенте. Естественно, значения этих переменных могут различаться. Возможные значения данных переменных, соответсвенно: ru_ru.866, ru_ru.1251, ru_ru.8859-5 и ru_ru.koi-8. Если вы, например, хотите запустить некоторое терминальное приложение my_application, ваш терминал работает в кодировке КОИ-8, а данные в БД лежат в кодировке ISO, то надо выполнить следующие команды:
DB_LOCALE=ru_ru.8859-5; export DB_LOCALE CLIENT_LOCALE=ru_ru.koi-8; export CLIENT_LOCALE my_application
Переменные DB_LOCALE и CLIENT_LOCALE должны быть установлены и тогда, когда вы только создаете базу данных. В этом случае оператор CREATE DATABASE, явно или неявно выполненный из данной сессии, создаст БД с кодировкой, которая задана переменной DB_LOCALE.
Если вы используете графическое окружение, например MS Windows, то переменные DB_LOCALE и CLIENT_LOCALE следует установить в окне настроек:
С одной и той же базой данных, использующей вполне конкретную кодировку для хранения русских символов, одновременно могут работать несколько клиентов с разной кодировкой. Для каждого клиента следует установить свое значение переменной CLIENT_LOCALE и сервер БД будет автоматически проводить преобразование символов для каждого клиента.
Для того, чтобы узнать, какие кодовые страницы поддерживаются в конкретном сервере Informix, следует запустить команду glfiles –lc, которая сформирует в текущей директории текстовый файл, содержащий все возможные кодировки.