ГЛАВА 38. Резервное копирование и восстановление баз данных (gbak).

We use cookies. Read the Privacy and Cookie Policy

ГЛАВА 38. Резервное копирование и восстановление баз данных (gbak).

Корректное резервное копирование базы данных Firebird компактно сохраняет метаданные и данные базы данных в файле на жестком диске или на другом запоминающем устройстве. Настоятельно рекомендуется перезаписывать файлы резервных копий на сменные носители и хранить в физически защищенном месте в стороне от сервера.

Регулярное резервное копирование является основной для поддержания базы данных в хорошем состоянии, обеспечения целостности данных, безопасности и возможности избежать неприятностей. Утилита командной строки резервного копирования и восстановления данных в Firebird gbak создает и восстанавливает резервные копии ваших баз данных. Она создает независимый от платформы архив фиксированного снимка базы данных, который может быть записан в дисковый файл, и он при желании может быть сжат посредством утилит сторонних разработчиков.

Резервная копия Firebird является "горячей" копией - нормальная работа с базой данных может продолжаться в то время, как gbak анализирует метаданные и записывает файл копии. Операция выполняется в транзакции SNAPSHOT, захватывающей состояние базы данных, которое она имела на момент старта транзакции. Изменения данных, которые клиенты подтверждают в базе данных после начала резервного копирования, не записываются в файл копии.

! ! !

ВНИМАНИЕ! Операционные системы обычно включают средства для архивирования файлов баз данных. Не полагайтесь на копии ваших баз данных Firebird, выполненные такими утилитами или утилитами файловой системы, или утилитами сжатия данных, такими как gzip или WinZip, если работа базы данных полностью не завершена. Подобные копии баз данных не являются "гигиеничными" - неубранный мусор будет восстановлен вместе с другими данными файла. Поскольку эти утилиты обычно используют низкоуровневые блокировки диска, их использование приводит к разрушению базы данных, если при их выполнении сохраняются живые соединения с базой данных.

. ! .

Файлы gbak

Утилита gbak анализирует и разбивает на части файлы Firebird, сохраняя отдельно метаданные и данные в компактном формате. Копия, сделанная gbak, не является файлом базы данных и не будет распознаваться сервером. Чтобы стать используемой, она должна быть восстановлена в формат Firebird, который будет читаем сервером с учетом версии gbak, соответствующей версии выполняемого сервера Firebird.

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

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

! ! !

ВНИМАНИЕ! Выполнение резервного копирования является лишь одной стороной защиты схемы. Если вы ослеплены верой в сохранение целостности при резервном копировании, то, независимо от используемой вами системы резервного копирования, вы будете неизбежно наказаны. Тот факт, что копирование завершилось, не является гарантией, что копия будет восстановлена. Делайте тестовое восстановление периодически или регулярно вместе с резервным копированием.

. ! .

Другие таланты gbak

Утилита gbak также выполняет последовательность других важных задач в процессе анализа, сохранения и восстановления базы данных. Одни являются автоматическими, другие должны быть запрошены при использовании переключателей при вызове программы из командной строки.

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

Задачи восстановления могут включать:

* балансировку индексов для улучшения производительности вашей базы данных;

* освобождение пространства, занимаемого удаленными записями, и упаковку остальных данных. Это часто уменьшает размер базы данных и улучшает производительность с "упакованными" данными;

* по желанию изменение размера страницы при восстановлении;

* изменение владельца базы данных. Это по желанию- но смотрите! Это может привести к авариям, если вы не будете осторожны;

* обновление базы данных InterBase до Firebird или с меньшей версии базы данных Firebird до более высокой версии (например, обновление ODS);

* разделение базы данных на множество файлов или изменение размеров существующих нескольких файлов. Это выполняется по желанию;

* распределение многофайловой базы данных на несколько дисков. Это выполняется по желанию.

Копирование и восстановление также играют важную роль при наличии неприятных событий, которые могут разрушать базы данных. Подробности осуществления стратегии восстановления базы данных см. в приложении 4.