Выбрать главу

-m[etadata]

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

-nt

Создает копию в непереносимом формате. По умолчанию данные, сохраняемые в файлах gbak, записываются в формате XDR, являющемся стандартным протоколом для данных, переносимых между платформами

-ol[d descriptions]

Устаревший переключатель- он сохраняет метаданные в старом формате InterBase

-pa[ssword] пароль

Проверяет пароль перед доступом к базе данных. Это требуется (вместе с именем пользователя) для удаленного копирования, а также для локального, если недоступны переменные окружения ISC_USER и ISC_PASSWORD. Обратите внимание, что сокращение переключателя -password (-pa) для gbak отличается от сокращения для isql (-pas)

-role имя

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

-se[rvice] сервис

Создает файлы копии на хосте, где располагаются и исходные файлы базы данных. Аргумент сервис вызывает Менеджер сервисов на сервере. Подробный синтаксис см. в разд. "Использование gbak с Менеджером сервисов Firebird"

-t[ransportable]

Сохраняет данные gbak в переносимом формате XDR. Это значение по умолчанию. Для сохранения данных в сжатом родном формате используйте переключатель -nt

-u[ser] имя

Проверяет имя пользователя перед доступом к базе данных. Это требуется (вместе с паролем) для удаленного копирования, а также для локального, если недоступны переменные окружения ISC_USER и ISC_PASSWORD

-v[erbose]

Выводит подробные сообщения о том, что делает gbak. Вы можете вывести текст в файл, задав переключатель -y

-y { файл | suppress output}

Направляет сообщения о состоянии в файл, полный путь к файлу, который вы хотите создать. Операция завершится с ошибкой, если файл уже существует. Если копирование завершится нормально и не был использован переключатель -v[erbose], то этот файл будет пустым, suppress output может быть использовано вместо "молчаливого" копирования, при котором не выводится вообще никаких сообщений

-z

Показывает версии gbak и сервера Firebird

Переносимые копии

Используйте значение по умолчанию, переключатель -transportable, если вы работаете в многоплатформенном окружении. При этом данные записываются в межплатформенном стандартном формате external Data Representation (XDR)[151], позволяющем программе gbak читать файл на аппаратной платформе, отличной от той, на которой была создана копия.

Копии разных версий

Программа gbak на серверах со значением ODS более низким, чем сервер Firebird, который создал базу данных, обычно не сможет восстановить копию с более высоким значением ODS. Однако на практике версия gbak из InterBase 5.x проявляет способности восстанавливать большинство баз данных диалекта 1, созданных в Firebird 1.0.x.

! ! !

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

. ! .

Копирование в один файл

Для простого локального копирования однофайловой или многофайловой базы данных используйте:

gbak -b d:\data\ourdata.fdb d:\data\backups\ourdata.fbk

Имя исходного файла задается независимо от того, является ли копируемая база данных однофайловой или многофайловой. Когда вы выполняете копирование многофайловой базы данных, в команде копирования задавайте только первый файл. Пути ко второму и последующим файлам будут найдены утилитой gbak в базе данных и в заголовках файлов в процессе резервного копирования. Если вы зададите имена последующих файлов, они будут интерпретироваться как имена файлов копии.

Файл копии может иметь любое имя, какое вы ему зададите, если оно будет допустимым в той файловой системе, в которой этот файл записывается.

Копирование многофайловой базы данных во множество файлов

Когда вы копируете многофайловую базу данных во множество файлов с помощью gbak, не требуется соответствия файлов базы данных файлам копии. Если существует более одного файла копии, то имена и размеры файлов копии должны быть заданы для всех файлов за исключением последнего файла в наборе. По умолчанию размер файла (целое число) задается в байтах. Для изменения этого добавьте букву в нижнем регистре, чтобы указать утилите gbak, что задаете размер в килобайтах (к), мегабайтах (m) или гигабайтах (g).

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

POSIX:

./gbak -b /data/accounts.fdb /backups/accounts.fbl 2g

/backups2/accounts.fb2 750m /backups3/accounts.fb3

-user SYSDBA -password mlllpOnd

-v -y /logs/backups/accounts.20040703.log

Windows:

gbak -b d:\data\accounts.fdb e:\backups\accounts.fbl 2g

f:\backups2\accounts.fb2 750m g:\backups3\accounts.fb3

-user SYSDBA -password mlllpOnd

-v -y d:\data\backuplogs\accounts.20040703.log

Копия однофайловой базы данных во множество файлов

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

Важно отметить некоторые моменты.

* Копирование не будет выполняться, если любой из файлов копии будет меньше чем 2048 байт. Если вы ведете протокол, причина появится в протоколе.

* Утилита gbak заполняет указанные файлы в порядке слева направо. Она не начнет работать со следующим файлом, пока предыдущий не достигнет указанного размера. В предыдущем примере файл accounts.fb3 не будет создан, пока accounts.fb2 не будет заполнен.

* Пути для файлов копии не обязательно должны находиться под физическим управлением хоста, однако если вы используете переключатель -service (см. разд. "Использование gbak с Менеджером сервисов Firebird") в системах, где действуют полномочия к файлам, ваш пользовательский профиль должен иметь соответствующие полномочия на запись данных. В некоторых инсталляциях версии 1.5 это может быть по умолчанию пользователь или группа firebird; в некоторых инсталляциях версии 1.0.x это может быть по умолчанию пользователь interbase.

Копирование только метаданных

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

gbak -b -m d:\data\accounts.fdb e:\QA\accounts.fbk

Выполнение удаленного копирования

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

* на диск или в разделе, который размещен на клиентской машине;

* на устройстве, к которому имеет доступ локальная машина (Windows);

* в сетевой файловой системе (NFS) (Linux/UNIX).

вернуться

151

Информацию о стандарте XDR можно найти на http://asg.web.cmu.edu/rfc/rfcl832.html.