NAME="_Toc409866771">Программа oncheck
Программа позволяет протестировать пространство таблиц, пространство индексных страниц и т.д. Ключи данной программы можно посмотреть просто набрав ее без параметров. Для диагностики необходимо использовать следующий синтаксис команды:
оncheck -p <необходимый ключ>
1.5.6 База данных sysmaster
База данных sysmaster находиться в корневом пространстве баз данных. В ней находиться более 28 таблиц. Использовании лишь некоторых из них поддерживаеться и документируеться фирмой Informix. Из данных таблиц путем простых SQL запросов можно получить практически любую информацию о параметрах сервера, пространстве таблиц, подключенных пользовательских процессах и т.д. Для более детальной информации по структуре базы данных sysmaster обращайтесь к документации на продукт.
1.6 Выделение и ведение дискового пространства
Как вы знаете пространство баз данных состоит из отдельных кусочков - chuncks. Эти кусочки могут располагаться либо на "сыром" устройстве либо в виде файла операционной системы. Предпочтителен способ расположения chunks на "сыром" устройстве. Если не оговариваеться особенно то действия описаные в пункте одинаковы как для файла, так и для "сырого" устройства. Для "сырого" устройства необходимо знать смещение. Смещение это то, сколько (в килобайтах) нужно отступить от начала "сырого" устройства, для того чтобы создать новый chunk на чистом месте и не затереть уже существующие chunks. Допустим мы создали пространство баз данных которое состоит из двух chunks, расположенных друг за другом на "сыром" устройстве. Первый chunk имеет размер 20000 Кб, а второй 30000 Кб. Тогда, если мы хотим добавить новый chunk к пространству баз данных, и хотим его расположить на том же "сыром" устройстве, то мы должны задать для него смещение в 50000 Кб.
1.6.1 Добавление нового chunk к существующему пространству баз данных.
При добавлении нового chunk к существующему пространству баз данных необходимо сначала создать файл (при расположении на файлах) или определить "сырое" устройство и смещение (если используеться управление диском напрямую).
Если данное пространство баз данных зеркалируется то дополнительно необходимо подготовить по одному дополнительному chunk на каждый добовляемый.
Добавление нового chunk к существующему пространству баз данных с помощью onspaces
Войти в систему пользователем informix
Подготовить пространство для нового chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
onspaces -a <имя пространства БД> -p <путь к подгот. chunk> -o <смещ> -s <размер в Кб>
Примечание:
В графе <имя пространства БД> указывается имя пространства баз данных к которому производиться добавление нового chunk.
В графе <смещ> указывается смещение в Кб для "сырого" устройства. Для файлов этот параметр равен 0 но все равно является обязательным.
Добавление нового chunk к существующему пространству баз данных с помощью onmonitor
- Войти в систему пользователем informix
- Подготовить пространство для нового chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
- Запустите onmonitor
- Выбрать Dbspaces-> Add_chunk
- Выбрать пространство баз данных для которого будет добавляться chunk
- Нажать Ctrl-B
- В появившемся окне заполните необходимые пункты (Full Pathname - путем и именем подготовленого chunk, Offset - смещение, Size - размер). Если ваше пространство баз данных зеркалируется, то необходимо также подготовить о описать зеркальный chunk.
- Нажмите ESC
1.6.2 Удаление chunk из пространства баз данных.
Для удаления chunk из пространства баз данных необходимо сначала удалить все данные, которые находяться в chunk. Затем удалить chunk из прстранства баз данных. Последним шагогм является удаление chunk из файловой системы (при расположении на файлах) или пометка для себя, что данное пространство "сырого" устройства являеться свободным (если используеться управление диском напрямую).
Необходимо отметить, что после выполнения операций по удалению chunk из пространства баз данных требуется создание архива уровня 0 (полное архивирование системы).
Удаление chunk из пространства баз данных
- Освободите пространство chunk от данных, для этого произведите следующие действия:
- Выгрузить данные из базы данных которая распологаеться на данном chunk воспользовавшись одной из следующих утилит
- Dbexport/dbimport
- Onload/onunload
- Удалите все записи в базе данных или просто удалите саму базу данных
- После удаления chunk не забудте восстановить все выгруженые данные.
- Удалите chunk из пространства баз данных:
Onspaces -d <имя пространства БД> -p <путь к удал. chunk> -o <смещ>
- Удалите файл в файловой системе представлявший chunk (только при построении на файлах).
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.6.3 Восстановление chunk из зеркальных.
Если пространство баз данных зеркалируеться, то это значит, что для каждого входящего в его состав chunk существует еще один точно такой же chunk - "зеркало". При разрушении одного из этих chunk сервер автоматически переключаеться на рабочий chunk и через некоторое время выставляет флаг D для "сломавшегося" (см. раздел по диагностированию пространства баз данных). После обнаружения факта разрушения вам необходимо отремонтировать место занимаемое сбойным chunk (заменить диск и т. п.) и воостановить зеркалирование. Для этого дать команду:
- onspaces -s <имя пространства БД> -p <путь к chunk кот мы хотим восстановить> -o <смещ> -О
Примечание
Последний параметр это большая английская буква "О"
1.6.4 Добавление нового пространства баз данных.
При создании нового пространства баз данных необходимо сначала создать файл (при расположении на файлах) или определить "сырое" устройство и смещение (если используеться управление диском напрямую) в которых будет размещаться первый chunk.
Если данное пространство баз данных зеркалируется то дополнительно необходимо подготовить еще один дополнительный chunk.
Необходимо отметить, что возможность зеркалирования не выставляеться автоматически при установке сервера. Для того, чтобы появилась возможность зеркалировать пространства баз данных, необходимо выставить возможность зеркалирования на уровне сервера. Для этого необходимо прописать в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции MIRROR единицу ("1").
Добавление нового пространства баз данных с помощью onspaces
- Войти в систему пользователем informix
- Подготовить пространство для нового chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
onspaces -c -d <имя нового простр. БД> -p <путь к сhunk> -o <смещ> -s <размер chunk>
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
Добавление нового пространства баз данных с помощью onmonitor
Войти в систему пользователем informix
Подготовить пространство для нового chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
- Запустите onmonitor
- Выберите Dbspaces-> Create
- В появившемся окне заполните необходимые пункты
- Dbspace Name - имя нового пространства баз данных
- Mirror - (Y/N) информация о том будет ли зеркалироватся новое пространство баз данных или нет. Если будет зеркалироваться то вам необходимо будет ввести информацию по зеркальному chunk в секции MIRROR CHUNK INFORMATION.
- Temp - (Y/N) буква "Y" в данном поле определяет, что данное пространство баз данных будет использоваться только для хранения временных данных сервера (временные таблицы и т.д.). Кроме того не забудте прописать имя этого "временного" пространства баз данных в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции DBSPACETEMP.
- Full Pathname - путем и именем подготовленого chunk,
- Offset - смещение,
- Size - размер). Если ваше пространство баз данных зеркалируется, то необходимо также подготовить о описать зеркальный chunk.
- Нажмите ESC для создания описаного пространства баз данных.
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.6.5 Как включить зеркалирование пространства баз данных.
Если пространство баз данных первоначально было создано без зеркалирования, то мы имеем возможность спустя некоторое время при возникновении необходимости зазеркалировать его.
Включить зеркалирование пространства баз данных с помощью onspaces
- Войти в систему пользователем informix
- Подготовить пространство для зеркального chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
- Остановить сервер
- Прописать (если не прописано) в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции MIRROR единицу ("1").
- Запустить сервер
- Дать команду
onspaces -m <имя простр. БД> -p <путь к сhunk для кот вкл.> -o <смещ> -m <путь к зеркальному сhunk>
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
Включить зеркалирование пространства баз данных с помощью onmonitor
- Войти в систему пользователем informix
- Подготовить пространство для зеркального chunk.
Для расположения на файлах:
Дать команды
cd <Каталог для размещения>
cat /dev/null > <имя файла>
chmod 660 <имя файла>
Для расположения на "сыром" устройстве:
Вычеслить смещение
- Остановить сервер
- Прописать (если не прописано)в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции MIRROR единицу ("1").
- Запустить сервер
- Запустите onmonitor
- Выберите Dbspaces->Mirror
- Укажите подготовленный зеркальный chunk
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.6.6 Удаление пространства баз данных.
При необходимости удаления пространства баз данных необходимо сначала очистить все chunk входящие в данное пространство. Затем нужно удалить все chunk входящие в него, кроме первого (как это делаеться можно прочитать в соответствующем пункте). И после этого удалять пространство баз данных.
Удалить пустое пространство баз данных с помощью onspaces
onspaces -d <имя простр. БД>
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
Удалить пустое пространство баз данных с помощью onmonitor
- Запустите onmonitor
- Выберите Dbspaces->Drop
- Выберите пространство баз данных которое вы хотите удалить.
- Нажмите CTRL-B
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.6.7 Добавление логических журналов
При работе может возникнуть необходимость в добавлении логических журналов. После того как журналы будут добавлены необходимо произвести архивирование уровня 0. Без данной операции добавленые журналы не станут активными и их использование будет невозможно.
Добавить новый логический журнал с помощью onparams
- Перейти в однопользовательский режим (Quiescent)
- Дать команду
оnparams -a -d < имя простр. БД > -s <размер журнала Кб>
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.6.8 Удаление логических журналов
При работе может возникнуть необходимость в удалении логических журналов. После того как журналы будут удалены необходимо произвести архивирование уровня 0. Для удаления журнала необходимо знать его id. Для его определения необходимо воспользоваться командой onstat -l (см. пункт по мониторингу системы).
Удалить логический журнал с помощью onparams
- Перейти в однопользовательский режим (Quiescent)
- Дать команду
оnparams -d -l <id журнала >
- Сделайте архив уровня 0, для этого дайте команду
ontape -s -L 0
1.7 Архивирование данных.
При архивировании в Informix используеться три уровня архивов. Первый это архивирование уровня 0, то есть архив всей системы. Второй это архивирование уровня 1, то есть архив только тех данных, которые поменялись с момента архивирования уровня 0. Третий это архивирование уровня 2, то есть архив только тех данных, которые поменялись с момента архивирования уровня 1. Исходя из такой идеологии видно, что при выполнении архива уровня 0 все предидущие архивы уровней 1 и 2 теряют актуальность и т.д. для архивов более низкого уровня. Для выполнения архивов рекомендуеться использовать стримерную ленту. Однако это не обязательное требование. Архивирование можно производить на следующие устройства:
- Локально расположенный стример (например /dev/mnt/0mb)
- Локально расположенный файл (например /opt/data/file)
- Удаленную ленту на другой машине (например hostname:/dev/mnt/0mb)(эта возможность как не нужная microsoft не реализуется под NT)
- В пустоту в /dev/null
Архивирование производиться на устройство прописанное в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции TAPEDEV (кроме того вы можете прописать устройство воспользовавшись утилитой onmonitor (Archive-> Tape-Parameters)). Не забудте также указать размер ленты и размер блока. Помните, что восстановление производимое с какого либо устройства требует чтобы параметры касающиеся размера ленты и размера блока совпадали с теми, которые были при создании архива на устройстве. Внимание! При использовании утилиты ontape архив всегда начинаеться с начала устройства.
Сделать архив уровня 0
оntape -s -L 0
- После ваполнения архива запишите следующую информацию по архиву:
- Дату создания архива
- Время создания архива
- Номер логического журнала. Данный номер появляеться в выводе после выполнения архивирования.
Сделать архив уровня 1
оntape -s -L 1
- После ваполнения архива запишите следующую информацию по архиву:
- Дату создания архива
- Время создания архива
Сделать архив уровня 2
оntape -s -L 2
- После ваполнения архива запишите следующую информацию по архиву:
- Дату создания архива
- Время создания архива
Примечание:
Если вы используете для архивирования устройство, расположенное на удаленном компьютере, вам необходимо прописать на этой удаленной машине в файле /etc/hosts.equv имя машины с которой будет производиться архивирование.
1.8 Восстановление данных
При восстановлении данных вы должны использовать носители с архивами уровня 0, 1, 2 и носители которые содержат набор логических журналов с номерами начиная от номера, который был выдан при проведении последнего архива уровня 0. Восстановление производиться в следующем порядке:
- Восстановление последнего архива уровня 0
- Восстановление последнего архива уровня 1
- Восстановление последнего архива уровня 2
- Прокручивание действий по логическим журналам
Перед востановлением необходимо восстановить конфигурацию сервера в первоначальном виде, а именно восстановить все прстранства баз данных, восстановить зеркалирование, восстановить те же самые устройства с теми же самыми ID и так далее. Используйте линки если нет возможности восстановить устройства один в один.
1.8.1 Восстановление отдельного пространства баз данных
При восстановлении отдельного пространства баз данных необходимо чтобы это пространство не являлось местом для хранения системной информации. В этом случае возможно теплое восстановление, то есть восстановление при рабочем сервере. Для восстановления дайте команду:
ontape -r -D <имя восстанавлевоемого пространства баз данных>
При этом необходимо, чтобы устройство было прописано в файле конфигурации (имя файла конфигурации определено в переменной окружения ONCONFIG) в секции TAPEDEV и носитель находился в устройстве.
1.8.2 Восстановление всех данных
Восстановление всех данных выполняеться на не рабочем сервере. Для восстановления выполните след шаги:
- Остановите серве
- Дайте команду
ontape -r
- Ответте на вопросы о необходимости использовать при восстановлении архивы первого и второго уровня если при необходимости
- После восстановления сервер переходит в режим fast recovery. Подождите некоторое время для того чтобы сервер самостоятельно перешел из данного состояния в режим Quiescent (примерно 1-2 мин.)
- Перевидите сервер в режим OnLine