Восстановление с использованием инструмента gbak
Восстановление с использованием инструмента gbak
Так же как и резервное копирование, восстановление можно осуществить двумя способами - с помощью утилиты gbak и с помощью Services API (если версия InterBase-сервера имеет это API). Наиболее универсальным способом, который мы и рассмотрим, является использование gbak.
Формат команды восстановления база данных следующий:
gbak {-C|-R} [options] <файл_резервной_копии_источник> <файл
создаваемой базы данных>
При восстановлении с помощью gbak необходимо указать либо параметр —С, либо параметр -R, чтобы производить именно restore (по умолчанию gbak будет пытаться произвести backup). Параметр -С означает, что будет создан новый файл базы данных, но если его имя совпадет с уже существующим, то процесс будет
остановлен с ошибкой, сигнализирующей о том, что файл с именем <файл создаваемой базы данных> уже существует. Параметр —R также приводит к созданию базы данных, но в случае совпадения имен без дополнительных вопросов перезапишет существующий файл базы данных.
Опции options, применяющиеся для того, чтобы повлиять на процесс восстановления, описаны в таблице 4.5.
Табл 4.5. Опции gbak при восстановлении из резервной копии
Опция
Описание
-c[reate_database]
Восстанавливает базу данных из резервной копии
-buffers]
Устанавливает размер буфера базы данных
-i[nactive]
Делает индексы неактивными после восстановления
-k[ill]
Не создает shadow-копий, которые были определены для базы данных ранее
-mo[de] [read_write | read_only}
Устанавливает режим записи для восстанавливаемой базы данных. Возможны значения read_write ("чтение и запись" - режим по умолчанию) и read_only ("только для чтения")
-n[o_validity]
Удаляет ограничения ссылочной целостности из восстанавливаемой базы данных, что позволяет восстанавливать те данные, которые не удовлетворяют этим ограничениям
-o[ne_at_a_time]
Восстанавливает одну таблицу зараз - это бывает полезным для частичного восстановления базы данных, которая содержит поврежденные данные
-p[age_slze] n
Устанавливает размер страницы восстанавливаемой базы данных в n байт. Доступны значения 1024, 2048, 4196 или 8192; По умолчанию размер страницы - 1024 байта
-pas[sword] text
Пароль пользователя, подключающегося к базе данных для восстановление из резервной копии
-r[eplace_database]
Восстанавливать базу данных в новый файл, а если такой файл уже существует, то перезаписать поверх
-se[rvice] servicename •
Восстановить базу данных на том же компьютере, где находится база данных-оригинал. Для этого вызывается Service Manager на компьютере-сервере, причем формат вызова отличается для различных сетевых протоколов: TCP/IP hostname:service_mgr; SPX hostname@service_mgr; Named pipes \hostnameservice_mgr; Local service_mgr
-u[ser] name
Имя пользователя, который подключается к базе данных для восстановлениям
-use_[all_space]
Восстанавливает базу данных со 100 %-ным заполнением каждой страницы данных, вместо 80 %-ного заполненния по умолчанию
-v[erbose]
Включить показ подробного протокола действий gbak во время restore
-y [file | suppress_output]
Направлять сообщения в файл (файла с таким именем не должно существовать) или подавить вывод сообщений
-z
Показать версию gbak и версию ядра InterBase-сервера
Коротко рассмотрим некоторые важные ключи процесса восстановления. Во- первых, ключ -p[age_size] n, который устанавливает размер страницы создаваемой базы данных. Выполнить восстановление с этой опцией - это единственный способ изменить размер страницы базы данных.
Во-вторых, сочетание ключей -use_[all_space] и -mo[de] read_only позволяет создать базу данных только для чтения, с максимальным заполнением страниц данных. Это полезно при создании баз данных-справочников, распространяемых на компакт-дисках.
В-третьих, ключи -i[nactive] (деактивация индексов) и -n[o_validity] (удаление ограничений ссылочной целостности) часто применяются при восстановлении поврежденных баз данных (см. ниже главу "Починка базы данных" (ч. 4)).