Наиболее универсальным инструментом, позволяющим осуществить резервное копирование базы данных на любой платформе, является gbak - утилита командной строки, входящая в поставку InterBase. С помощью gbak можно обратиться к любому функционирующему InterBase-серверу и произвести считывание данных и получение на их основе резервной копии, а также восстановить базу данных из резервной копии.
Надо заметить, что в случае использования для работы баз данных, чьи версии не совпадают с версией gbak. действует принцип "обратной совместимости". Это значит, что более "старшие" версии gbak могут работать с серверами и базами данных, созданными и функционирующими под управлением "младших" версий (например, gbak от 5.x может сделать backup базы данных, которая была создана в 4 х). Однако gbak от 4.x не сможет работать с базами данных, которые созданы в 5.x и старше, и также не сумеет распаковать резервные копии от старших версий. Единственным исключением является случай, когда gbak запускается под управлением "младшего" сервера (например, 5.x), а в качестве источника данных указывает старший сервер (например, 6.x), в этом случае произойдет резервное копирование "наоборот" - данные из формата базы данных старшей версии попадут в формат backup младшей версии. Такой прием применяется при переходе от старших версий сервера на младшие - этот процесс называется "обратной миграцией" (подробности см. ниже в главе "Миграция").
Давайте рассмотрим утилиту gbak поподробнее. Для того чтобы создать резервную копию базы данных, необходимо воспользоваться следующим образцом запуска gbak: gbak [-B] [options] <база_данных-источник> <файл резервной копии>
Переключатель -В означает, что необходимо выполнить резервное копирование базы данных, путь к которой указан как <база_ланных-источник>, а результаты резервного копирования упаковать в файл, указанный как <файл резервной копии>. Обратите внимание, что -В взято в квадратные скобки. По общепринятому соглашению квадратные скобки означают, что параметр внутри них необязателен. В нашем случае это значит, что gbak без параметров будет делать именно backup базы данных.
|
Опция |
Описание |
|
-b[ackup_dafabase] |
Осуществить резервное копирование базы данных |
|
Опции, влияющие на процесс создания резервной копии |
|
|
-cofnvert] |
Преобразовать внешние файлы во внутренние таблицы |
|
-e[xpand] |
Не производить сжатие резервной копии |
|
-fa[ctor] n |
Использовать блокирующий фактор n для ленточного накопителя |
|
-g[arbage_collect] |
Не собирать "мусор" во время резервного копирования |
|
-ig[nore] |
Игнорировать контрольные суммы |
|
-l[imbo] |
Игнорировать "зависшие" двухфазные транзакции (limbo) |
|
-m[etadata] |
Произвести резервное копирование только метаданных |
|
-rtf |
Создать резервную копию в нетранспортабельном формате |
|
-ol[d_descriptions] |
Производить резервное копирование метаданных в формате "старого стиля", т.е. в режиме совместимости со старыми базами данных |
|
-pas[sword]text |
Пароль пользователя, подключающегося к базе данных для резервного копирования |
|
-role name |
Подсоединиться с использованием роли name |
|
-se[rvice] servicename |
Создать резервную копию на том же компьютере, где находится "база данных-источник". Для этого вызывается Service Manager на компьютере-сервере, причем формат вызова отличается для различных сетевых протоколов: TCP/IP hostname:service_mgr; SPX hostname@service_mgr; Named pipes \\hostname\service_mgr; Local service_mgr |
|
-t[ransportable] |
Создавать транспортабельную (переносимую) резервную копию - этот параметр включен по умолчанию |
|
-u[ser] name |
Имя пользователя, который подключается к базе данных для резервного копирования |
|
-v[erbose] |
Включить показ подробного протокола действий gbak во время backup |
|
-y [file | suppress_output] |
Направлять сообщения в файл (файла с таким именем не должно существовать) или подавить вывод сообщений |
|
-z |
Показать версию gbak и версию ядра InterBase-сервера |