Утилита gbak анализирует и разбивает на части файлы Firebird, сохраняя отдельно метаданные и данные в компактном формате. Копия, сделанная gbak, не является файлом базы данных и не будет распознаваться сервером. Чтобы стать используемой, она должна быть восстановлена в формат Firebird, который будет читаем сервером с учетом версии gbak, соответствующей версии выполняемого сервера Firebird.
При восстановлении файлов копии в формат базы данных gbak выполняет проверку метаданных и данных перед внутренним использованием языка запросов для воссоздания базы данных и наполнения ее данными.
Если обнаружено разрушение данных, gbak останавливает восстановление и выдает сообщение. Возможность этой утилиты анализировать проблемы делает ее неоценимо полезной при попытках восстановления разрушенной базы данных. Если вы находитесь в такой грустной ситуации, обратитесь к приложению 4.
! ! !
ВНИМАНИЕ! Выполнение резервного копирования является лишь одной стороной защиты схемы. Если вы ослеплены верой в сохранение целостности при резервном копировании, то, независимо от используемой вами системы резервного копирования, вы будете неизбежно наказаны. Тот факт, что копирование завершилось, не является гарантией, что копия будет восстановлена. Делайте тестовое восстановление периодически или регулярно вместе с резервным копированием.
. ! .
Другие таланты gbak
Утилита gbak также выполняет последовательность других важных задач в процессе анализа, сохранения и восстановления базы данных. Одни являются автоматическими, другие должны быть запрошены при использовании переключателей при вызове программы из командной строки.
В процессе копирования gbak выполняет сборку мусора устаревших записей - необязательный переключатель, выполняется по умолчанию. Если он включен, его действие появляется, даже если вы не восстанавливаете копию, а начинаете работать с чистым файлом. Заметьте при этом, что выполнение gbak не упаковывает базу, как это делает копирование - выполняйте полную сборку мусора для выполнения этого.
Задачи восстановления могут включать:
* балансировку индексов для улучшения производительности вашей базы данных;
* освобождение пространства, занимаемого удаленными записями, и упаковку остальных данных. Это часто уменьшает размер базы данных и улучшает производительность с "упакованными" данными;
* по желанию изменение размера страницы при восстановлении;
* изменение владельца базы данных. Это по желанию- но смотрите! Это может привести к авариям, если вы не будете осторожны;
* обновление базы данных InterBase до Firebird или с меньшей версии базы данных Firebird до более высокой версии (например, обновление ODS);
* разделение базы данных на множество файлов или изменение размеров существующих нескольких файлов. Это выполняется по желанию;
* распределение многофайловой базы данных на несколько дисков. Это выполняется по желанию.
Копирование и восстановление также играют важную роль при наличии неприятных событий, которые могут разрушать базы данных. Подробности осуществления стратегии восстановления базы данных см. в приложении 4.
Обновление структуры на диске (ODS)
Вероятно, основным изменением в новых релизах сервера Firebird является изменение структуры на диске (Оп-Disk Structure, ODS). Если ODS изменилась, и вы хотите использовать преимущества новых возможностей Firebird, обновите ваши базы данных до новой ODS. Новая версия сервера может работать с базами данных, созданными в некоторых предыдущих версиях, однако сервер не может использовать свои новые возможности для старой базы данных с более низким значением ODS.
Вы можете использовать большинство баз данных Firebird 1.0.x непосредственно в Firebird 1.5, хотя ODS версии 1.5 (10.1) выше, чем в версии 1.0.x (10.0). Тем не менее рекомендуется выполнить процедуру обновления для ваших баз данных, обновив их с 10.0 до 10.1, для получения преимуществ повышения производительности за счет возможности индексирования системных таблиц в версии 1.5.
Для обновления существующих баз данных до новой версии ODS выполните следующие шаги:
1. Перед инсталляцией новой версии ODS Firebird выполните резервное копирование баз данных с использованием старой версии gbak.
2. Установите новую версию сервера Firebird, как описано в главе 1.
3. После инсталляции новой версии восстановите базы данных с использованием утилиты gbak новой версии из каталога /bin корневого каталога Firebird.
Диалект 1 базы данных остается диалектом 1 и после восстановления базы данных. База данных остается ограниченной возможностями языка InterBase 5, хотя некоторые ограничения применяются к диалекту 1 баз данных в новой версии ODS, которые не применялись к InterBase 5. Например, в Firebird есть множество новых зарезервированных слов, которые будут недопустимыми в базе данных диалекта 1. Полный список зарезервированных слов см. в приложении 11.