Шрифт:
Интервал:
Закладка:
Следующая команда выполняет копирование базы данных в три файла копии в различных разделах файловой системы и выводит подробный протокол. Все это одна команда, множество строк с отступами здесь показаны лишь для удобства чтения.
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:dataaccounts.fdb e:backupsaccounts.fbl 2g
f:backups2accounts.fb2 750m g:backups3accounts.fb3
-user SYSDBA -password mlllpOnd
-v -y d:databackuplogsaccounts.20040703.log
Копия однофайловой базы данных во множество файловЕсли вы копируете однофайловую базу данных во множество файлов копий, синтаксис идентичен. Фактически gbak не интересуется тем, является ли ваша исходная база данных одно- или многофайловой.
Важно отметить некоторые моменты.
* Копирование не будет выполняться, если любой из файлов копии будет меньше чем 2048 байт. Если вы ведете протокол, причина появится в протоколе.
* Утилита gbak заполняет указанные файлы в порядке слева направо. Она не начнет работать со следующим файлом, пока предыдущий не достигнет указанного размера. В предыдущем примере файл accounts.fb3 не будет создан, пока accounts.fb2 не будет заполнен.
* Пути для файлов копии не обязательно должны находиться под физическим управлением хоста, однако если вы используете переключатель -service (см. разд. "Использование gbak с Менеджером сервисов Firebird") в системах, где действуют полномочия к файлам, ваш пользовательский профиль должен иметь соответствующие полномочия на запись данных. В некоторых инсталляциях версии 1.5 это может быть по умолчанию пользователь или группа firebird; в некоторых инсталляциях версии 1.0.x это может быть по умолчанию пользователь interbase.
Копирование только метаданных
Копирование только метаданных обычно требуется для создания "пустой" базы данных, когда вы готовы поставлять систему пользователям, загружать данные или восстанавливать базу с целью миграции. Следующая команда выполняет копирование только метаданных нашей базы данных accounts:
gbak -b -m d:dataaccounts.fdb e:QAaccounts.fbk
Выполнение удаленного копирования
Если вы запускаете gbak с удаленной клиентской машины, она записывает файлы копии в текущий каталог или в локальный каталог, заданный полным путем. Если вы задаете размещение для файла копии, оно должно быть доступно с машины, на которой выполняется gbak. Размещение может быть одним из следующих:
* на диск или в разделе, который размещен на клиентской машине;
* на устройстве, к которому имеет доступ локальная машина (Windows);
* в сетевой файловой системе (NFS) (Linux/UNIX).
При задании переключателя -se[rvice] вы можете вызвать Менеджер сервисов Firebird с удаленного сервера и заставить gbak передать выполнение вашей команды серверу. В этом случае локализация базы данных и файлов копии должна осуществляться с точки зрения размещения с серверной машины. Каталог, из которого была запущена программа gbak, не действует при копировании через Менеджер сервисов. Подробнее о Менеджере сервисов см. далее разд. "Использование gbak с Менеджером сервисов Firebird".
Решение вопросов безопасности
Хорошей мерой предосторожности является присваивание атрибутов только для чтения вашим файлам копии на уровне файловой системы после их создания для предотвращения их случайной или намеренной перезаписи.
Вы можете защитить ваши базы данных от воровства в системах UNIX и Windows NT/2000/XP, поместив файлы копии в каталоги с ограниченным доступом.
! ! !
ВНИМАНИЕ! Файлы копий, которые хранятся в системах Windows 95/98/ME или в областях со свободным доступом в других системах, являются совершенно беззащитными.
. ! .
Возвращаемые коды и ответная реакция
Копирование базы данных, выполняемое под Windows, возвращает код 0 при успешном завершении и 1 при ошибках. Если встретилась ошибка, посмотрите файл firebird.log (interbase.log в версии 1.0.x). Для получения полного протокола копирования используйте переключатели -у и -v.
Выполнение восстановления
Синтаксис восстановления базы данных из копии следующий.
POSIX:
$] ./gbak {-c[reate] | -r[eplace_database] } <режимы> исходная-копия база-данных или
$] /opt/firebird/bin/gbak {-c[reate] | -r[eplace_database] } <режимы> исходная-копия база-данных
Windows:
C:Program FilesFirebirdFirebird_1_5bin> {-c[reate] | -r[eplace database] } <режимы> исходная-копия база-данных
ИЛИ
С: > C:Program FilesFirebird_1_5bingbak {-c[reate] | -r[eplace database] } <режимы> исходная-копия база-данных
Аргументы gbak для восстановления
исходная-копия- полный путь и имя файла копии gbak. Если копия содержит несколько файлов, укажите только первый (первичный) файл gbak. В POSIX исходной- копией может быть также stdin, в этом случае gbak читает свои входные данные из стандартного ввода (обычно канал).
База-данных- полный путь и имя файла восстанавливаемой базы данных. В Firebird 1.5 это может быть алиас. База может быть одним файлом или множеством файлов. Возможные варианты синтаксиса баз данных обсуждаются в следующих разделах этой главы.
Режимы могут быть допустимой комбинацией переключателей из табл. 38.2. Переключатели нечувствительны к регистру.
Переключатели восстановления
В табл. 38.2 перечисляются и описываются переключатели, которые могут быть использованы в gbak при выполнении восстановления базы данных.
Таблица 38.2. Переключатели gbak для выполнения восстановления базы данных
Переключатель
Эффект
-c[reate database]
Восстанавливает базу данных в новый файл
-b[uffers]
Устанавливает значение по умолчанию для размера кэша (в страницах базы данных) для восстанавливаемой базы данных
-i[nactive]
Делает неактивными индексы в восстанавливаемой базе данных. Полезно при повторной попытке восстановления, когда первая попытка оказалась неудачной из-за ошибок индекса
-k[ill]
Подавляет создание ранее определенных теневых копий (shadow)[152]
-mo[de] {read write | read_only}
Задает, будет ли восстанавливаемая запись только для чтения или для чтения/записи. Возможные значения read_write (по умолчанию) и read only
-n[o validity]
Удаляет ограничения проверки данных из восстанавливаемых метаданных. Используйте, если вам нужно повторить попытку восстановления, если первая попытка оказалась неудачной из- за нарушений ограничения CHECK
-o[ne at a time]
Восстанавливает одну таблицу за один раз. Может быть использовано при частичном восстановлении, если база данных содержит разрушенные данные
-p[age size] n
Устанавливает новый размер страницы в n байтах (1024, 2048, 4096, 8192 или 16 384). Размер по умолчанию 4096. Размер страницы 16 384 байт невозможен, если файловая система не поддерживает 64-битовый ввод/вывод
-pa[ssword] пароль
Проверяет пароль вместе с -u[ser] перед попыткой создания базы данных
-r[eplace database]
Восстанавливает базу данных, заменяя существующий файл с тем же именем, если он существует; если нет, создает новый файл с указанным именем
-se[rvice] сервис
Создает восстанавливаемую базу данных на хосте, где располагаются файлы копии. Используйте этот переключатель, если вы запустили gbak с удаленного узла и хотите восстановить из копий, размещенных на том же сервере, что и база данных. Это вызывает Менеджер сервисов Firebird на серверной машине, экономит время и сетевой трафик. См. подробности в разд. "Использование gbak с Менеджером сервисов Firebird"
-u[ser] имя
Проверяет пользователя имя вместе с -pa[ssword] перед попыткой создания базы данных
-use_[all space]
Восстанавливает базу данных со 100-процентным заполнением каждой страницы данных вместо значения по умолчанию 80-процентное заполнение. Это идеал для баз данных только для чтения, поскольку им не надо иметь зарезервированное пространство на страницах базы данных для хранения версий строк при добавлении, изменении или удалении. Чтобы вернуть восстановленную базу данных к обычному коэффициенту заполнения, используйте gfix с переключателем -use (т. е. gfix -use reserve)
-v[erbose]
Выводит подробные сведения о том, что выполняет gbak. Вы можете по желанию вывести этот текст в файл при использовании переключателя -у
-y [ файл | suppress output]
Направляет сообщения в файл, задающий полный путь к файлу, который вы хотите создать. Вызовет ошибку, если указанный файл уже существует. Если восстановление завершится нормально и не был использован переключатель -v[erbose], то этот файл будет пустым. suppress_output может быть использовано вместо "молчаливого" восстановления, при котором не выводится вообще никаких сообщений
-z
Показывает версии gbak и сервера Firebird
Восстанавливать или создавать?
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование