Шрифт:
Интервал:
Закладка:
. ! .
Имя пользователя и пароль
Когда Firebird проверяет полномочия при запуске gbak, он определяет пользователя в соответствии со следующей иерархией:
1. Имя пользователя и пароль, заданные переключателями в команде gbak.
2. Только для локального варианта gbak[149]. Имя пользователя и пароль, заданные в переменных окружения ISC_USERH ISC_PASSWORD, проверяются на присутствие в базе данных безопасности (security.fdb в версии 1.5 и isc4.gdb для версии 1.0.x). Сохранение постоянно установленных значений этих переменных строго не рекомендуется, поскольку крайне небезопасно.
3. Только для POSIX. Если не предоставлено учетных данных пользователя ни на одном из предыдущих уровней, Firebird позволяет пользователю root запускать gbak с сервера или с доверенной машины.
Выполнение копирования
Для вызова gbak или перейдите в каталог Firebird /bin, где размещается gbak, или укажите для утилиты полный путь. Вся команда должна размещаться в одной строке. В описании синтаксиса и примерах логически замкнутые части команды представлены в виде отдельных строк с отступами.
POSIX:$] ./gbak -b[ackup] <режимы> исходные-данные копил [n]
ИЛИ
$] /opt/firebird/bin/gbak -b[ackup] <режимы> исходные-данные копия [n]
Windows:C:Program FilesFirebirdFirebird_1_5bin> gbak -b[ackup] <режимы> исходные-данные копия [n]
ИЛИ
С:> C:Program FilesFirebird_1_5bingbak -b[ackup] <режимы> исходные-данные копия [n]
Аргументы для gbak -b[ackup]
исходные-данные- это полный путь и имя файла копируемой базы данных. В Firebird 1.5 это может быть алиас. При копировании многофайловой базы данных используйте имя только первого (первичного) файла базы данных.
копия- полный путь и имя файла, куда помещается резервная копия базы данных.
В случае, когда копия помещается во множество файлов, нужно указать несколько копий. Синтаксический элемент n является целым параметром, включаемым для каждого выходного файла, кроме последнего, для указания размера файла в байтах (по умолчанию). К числу могут быть добавлены буквы в нижнем регистре для задания того, что размер указан в килобайтах (к), мегабайтах (т) или гигабайтах (д). См. следующий пример.
В POSIX копией также может быть STDOUT. В этом случае gbak записывает результат в стандартный вывод (обычно канал)[150].
Режимы могут быть допустимой комбинацией переключателей из табл. 38.1. Переключатели чувствительны к регистру.
Переключатели копирования
В табл. 38.1 описаны переключатели, которые могут быть использованы в gbak при выполнении копирования.
Таблица 38.1. Переключатели gbak для копирования
Переключатель
Эффект
-b[ackup database]
Утилита gbak выполняет копирование указанной базы данных в файл или на устройства
-со[nvert]
Конвертирует внешние файлы во внутренние таблицы. При восстановлении любая внешняя таблица преобразуется во внутреннюю таблицу базы данных, а связь с внешним файлом будет уничтожена
-е[xpand]
Создает копию без компрессии данных
-fa[ctor] n
Использует коэффициент блокирования n для ленточных устройств
-g[arbage_collect]
Подавляет сборку мусора в процессе копирования. Используйте этот переключатель, если вы планируете сразу же восстановить базу данных с этой копии, gbak не сохраняет мусор, следовательно, не имеет смысла увеличивать накладные расходы, если вы не собираетесь позже использовать старую базу данных
-i[gnore]
Контрольные суммы игнорируются в процессе копирования. Вы можете использовать этот переключатель при повторном запуске копирования, которое аварийно завершилось из-за ошибок контрольных сумм
-1[imbo]
(Буква "L" в нижнем регистре). Зависшие 2РС транзакции будут проигнорированы. Не используйте данный переключатель для регулярного копирования. Это позволяет выполнить чистку после того, как двухфазная транзакция не выполнила подтверждения из-за потери связи с сервером
-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:dataourdata.fdb d:databackupsourdata.fbk
Имя исходного файла задается независимо от того, является ли копируемая база данных однофайловой или многофайловой. Когда вы выполняете копирование многофайловой базы данных, в команде копирования задавайте только первый файл. Пути ко второму и последующим файлам будут найдены утилитой gbak в базе данных и в заголовках файлов в процессе резервного копирования. Если вы зададите имена последующих файлов, они будут интерпретироваться как имена файлов копии.
Файл копии может иметь любое имя, какое вы ему зададите, если оно будет допустимым в той файловой системе, в которой этот файл записывается.
Копирование многофайловой базы данных во множество файлов
Когда вы копируете многофайловую базу данных во множество файлов с помощью gbak, не требуется соответствия файлов базы данных файлам копии. Если существует более одного файла копии, то имена и размеры файлов копии должны быть заданы для всех файлов за исключением последнего файла в наборе. По умолчанию размер файла (целое число) задается в байтах. Для изменения этого добавьте букву в нижнем регистре, чтобы указать утилите gbak, что задаете размер в килобайтах (к), мегабайтах (m) или гигабайтах (g).
Следующая команда выполняет копирование базы данных в три файла копии в различных разделах файловой системы и выводит подробный протокол. Все это одна команда, множество строк с отступами здесь показаны лишь для удобства чтения.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование