Смекни!
smekni.com

Работать без непосредственного участия человека.

Сохранение страниц и логического протокола в архиве

Все, чем управляет INFORMIX-OnLine может быть заархивировано за исключением следующего:

Страницы dbspace, выделенные для сервера, но не привязанные к какому-либо фрагменту tblspace;

Конфигурационные файлы не архивируются;

Страницы из зеркальных фрагментов не архивируются, если доступен первичный фрагмент;

Blob’ы в blobspace, хранимые на оптическом носителе;

Уровни архива

Нет смысла каждый раз архивировать все данные INFORMIX-OnLine. Поддерживаются три типа добавочного архивирования:

Level-0 – архивируются все страницы;

Level-1 – архивируются все изменения с момента последнего архива нулевого уровня;

Level-2 – архивируются все изменения с момента последнего архива первого уровня.

Архивирование логического протокола

Если было инициировано протоколирование БД, то INFORMIX-OnLine записывает транзакции, произошедшие между процедурами архивирования, в логический протокол, который состоит из определенного числа файлов логического протокола на диске. Сервер нуждается как в записи новых данных в протокол, так и в чтении протокола для восстановления транзакций. Для того, чтобы файлы логического протокола не закончились, необходимо архивировать заполненные файлы логического протокола.

Если же протоколирование не используется, тем не менее, все равно необходимо архивировать файлы логического протокола. В этом случае протокол содержит информацию о создании и удалении фрагментов диска и о записи контрольной точки. Эта информация нужна для “теплого” восстановления БД даже в том случае, когда БД не протоколируются.

Автоматическое и непрерывное архивирование

Если необходимо архивировать файлы логического протокола сразу после их заполнения, то нужно запустить автоматическое архивирование. В этом режиме архивируются все файлы логического протокола, готовые к архивированию и процесс останавливается на текущем файле.

Также можно запустить непрерывное архивирование. Тогда сервер автоматически архивирует файл логического протокола сразу по его заполнению.

При автоматическом архивировании нет необходимости помнить об архивировании файла, но нужно помнить, что на устройстве архивирования всегда должно быть свободное место.

Режимы восстановления данных

В процессе восстановления INFORMIX-OnLine воссоздает данные, которые стали недоступными в результате аппаратного или программного сбоя. В любом из трех приведенных ниже случаях необходимо восстановление данных:

Ошибка в программе запортила данные в БД;

Необходимо перенести данные на другой компьютер.

Процесс восстановления делится на фазы физического и логического восстановления:

При физическом восстановлении из архива восстанавливаются страницы dbspace и blobspace;

При логическом восстановлении производится восстановление транзакций.

Выбор типа физического восстановления

Если необходимо восстановить данные после сбоя, в результате которого сервер перешел в режим off-line, то необходимо восстановить все данные, управляемые сервером. Такой тип восстановления называется полным восстановлением системы. Если сбой не привел к останову системы, то можно выборочно восстанавливать выборочные dbspace или blobspace.

При переходе INFORMIX-OnLine в режим off-line из-за сбоя диска критические данные dbspace будут повреждены. К критическим dbspace относятся:

· root dbspace;

· содержащий физический протокол dbspace;

· содержащий файлы логического протокола dbspace.

Восстановление критических dbspace необходимо производить в “холодном” режиме.

Выборочное восстановление dbspace или blobspace

Если после сбоя INFORMIX-OnLine не перешел в состояние off-line, то повреждения dbspace не являются критическими. Если сбой случился в фрагменте диска dbspace, который размещается на нескольких фрагментах, то все активные транзакции в этом dbspace должны быть прерваны перед восстановлением. Можно запустить операцию восстановления до завершения транзакций. Тогда процесс восстановления будет ждать, пока сервер не завершит проверку того, что все транзакции, активные в момент сбоя, были завершены.

“Холодный” режим восстановления

Как показано на рис. 1, восстановление всех dbspace и blobspace (полное восстановление системы) можно сделать с помощью одного физического и одного логического восстановления.

INFORMIX-OnLine находится в режиме off-line в начале процесса восстановления, но затем, после восстановления резервных страниц, сервер переходит в режим восстановления. С этого момента сервер находится в данном режиме до тех пор, пока не будет завершено логическое восстановление.

“Теплый” режим восстановления

В данном режиме можно восстанавливать некритичные dbspace и blobspace при работе INFORMIX-OnLine в режиме on-line или quiescent. “Теплый” режим состоит из одного или нескольких физических восстановлений, логического архивирования и восстановления.

При “теплом” восстановлении заархивированные файлы логического протокола “проигрываются” для восстановления транзакций в восстановленных dbspace (рис. 2).

Смешанный режим восстановления

Смешанный режим восстановления состоит из холодного восстановления, за которым следует теплое восстановление. Некоторые dbspace и blobspace восстанавливаются в холодном режиме (INFORMIX-OnLine находится в режиме off-line). Такой режим восстановления обычно применяется, когда требуется полное восстановление системы, но в ходе его требуется частичный доступ к некоторым таблицам. В этом случае выполняется холодное восстановление критических dbspace и dbspace, которые содержат важную информацию.

Экспорт-импорт данных

Миграция данных, т.е. перенос базы данных или ее частей может понадобиться по следующим причинам:

Для переноса разработанной системы заказчику;

Для переноса на другую аппаратную платформу;

Для распространения пользователям;

Для переноса данных между INFORMIX-SE и INFORMIX-OnLine.

Методы миграции данных, используемые в INFORMIX-OnLine

Сервер INFORMIX-OnLine следующие методы для переноса данных из одной БД в другую:

Утилитами onunload и onload;

Утилитами dbexport и dbimport;

Выражениями LOAD и UNLOAD;

Утилитой dbload.

Утилиты onunload и onload взаимосвязаны, т.е. для того, чтобы загрузить данные с помощью onload, их необходимо предварительно выгрузить с помощью onunload. Аналогично, для работы dbimport нужны файлы, подготовленные dbexport. Утилита dbload и выражение LOAD могут загружать данные из любого файла, если он отвечает определенным требованиям по формату.

Утилита dbschema по схеме БД создает файл с выражениями на SQL, который можно использовать затем для создания таблиц с аналогичной структурой.

Использование утилит onunload и onload

Эти две утилиты выгружают и загружают данные из БД или ее части страницами. Поэтому на использование этих утилит накладываются некоторые ограничения.

При переносе данных между компьютерами необходимо:

Убедиться, что размер страницы и представление чисел должно быть одинаковым на обоих системах.

Запустить утилиту oncheck для проверки целостности базы данных.

Запустить утилиту onunload.

Если нужно, перенести носитель с выгруженными данными на другую систему.

Запустить утилиту onload.

Установить желаемый статус протоколирования новой БД.

Создать архив нулевого уровня новой БД.

При переносе таблиц между компьютерами с помощью onunload и onload необходимо выполнить следующие шаги:

Удостовериться, что размер страниц и представление чисел одинаково на обоих системах.

Запустить утилиту oncheck для проверки целостности базы данных.

Запустить утилиту onunload.

Если нужно, перенести носитель с выгруженными данными на другую систему.

Выключить протоколирование

Запустить утилиту onload.

Создать архив нулевого уровня модифицированной БД.

Включить протоколирование, если нужно.

Создать необходимые синонимы и права доступа к данной таблице.

Выбор между onunload, dbimport и LOAD

При невозможности использования утилит onunload и onload, необходимо сделать выбор между dbload, dbimport и LOAD. Каждый из этих способов позволяет модифицировать схему БД.

Утилита dbimport загружает БД целиком и ею необходимо воспользоваться в том случае, когда нет возможности использовать onload. Для загрузки таблиц используйте выражение LOAD или утилиту dbload.

При использовании утилиты dbload (или выражения LOAD) нужно загружать данные в уже существующую таблицу. Если таблицы не существует, то ее нужно создать, например, с помощью SQL-выражения CREATE можно создать таблицу, представление или синоним.

Модификация схемы БД

Утилита dbschema создает файл с SQL-операторами, необходимыми для воспроизведения указанной БД, таблицы и других объектов БД (например, триггера). После создания файла со схемой БД, этот файл можно вручную отредактировать с целью изменения некоторых характеристик БД или таблицы (или еще чего-нибудь). Можно изменить следующие характеристики:

Права доступа;

Владельца объекта (таблица, индекс, представление);

Режим блокировки;

Размеры начального и последующих extent’ов.

Dbspace, где хранятся таблицы.

Использование выражений UNLOAD и LOAD

Выражение UNLOAD позволяет записывать строки, извлеченные выражением SELECT в ASCII-файл. Выражение UNLOAD создает файл в соответствие с установками в окружении пользовательского приложения.

Оператор LOAD загружает данные из предварительно созданного файла в объект БД (таблицу, синоним или представление). Обычно на входе используется файл, созданный оператором UNLOAD, т.к. оператор LOAD требует строго форматированный файл.

Использование утилиты dbload

Данная утилита, используя команды в командном файле dbload, может форматировать входные данные перед тем, как вставлять их в указанную таблицу. В дополнение к этому опции командной строки dbload дают следующие возможности: