Инструменты пользователя

Инструменты сайта


gbak

gbak

Версии сервера

ВСЕ

Формат

gbak -b [backup option …] [common option …] source target

gbak -c|-r [restore option …] [common option …] source target

(-c|-r означает, что при вызове gbak нужно использовать либо -c, либо -r, но не вместе.)

Описание

gbak утилита Firebird для управления резервными копиями

В режиме бекапа source это путь к существующей БД (может включать имя сервера и\или альяс), а target файл резервной копии, это также может быть специальное устройство например /dev/stdout (для отправки резервной копии в STDOUT) или /dev/st для отправки на кассету.

В режиме востановления source это существующая резервная копия (или специальное устройство /dev/stdin,/dev/st), а target путь к БД (может включать имя сервера и\или альяс).

Все опции могут быть сокращены.

COMMON OPTIONS

-user username Пользователь для подключения к БД.

-ro[le] Роль подключения к БД

-pas[sword] password Пароль подключения к БД

-se[rvice] Использовать сервисный менеджер при работе с БД. (Позволяет работать с security2.fdb)

-v[erify] Выводить отчет о каждом действии.

-y path Перенаправлять сообщения в заданный путь.

-z Сообщить полную версию.

BACKUP OPTIONS

-b[ackup_database] Сделать резервную копию.

-co[nvert] Конвертировать внешние (external) таблицы в обычные. Без данной опции внешние таблицы игнорируются при резервном копировании.

-fa[ctor] blocking factor (древний параметр, использовавшийся при бэкапе на магнитные ленты)

-g[arbage_collect] не производить сборку мусора. Рекомендуемая опция.

-ig[nore] Игнорировать записи не прошедшие контрольную сумму. Эта опция должна использоваться только при поврежденной БД.

-l[imbo] Игнорировать транзакции в limbo. Изменения, произведенные незавершенными транзакциями двухфазного коммита, будут игнорироваться.

-m[etadata_only] Сохранять только метаданные.

-nt Использовать не переносимый формат файла. По умолчанию формат «переносимый». Под переносимостью понимается перенос с одной аппаратной платформы на другую (с разной последовательностью младших и старших байт в целых числах).

-ol[d_descriptions] Сохранять описания объектов в старом (InterBase 3.3) стиле.

RESTORE OPTIONS

-c[reate_database] Восстановить БД. Если файл БД существует, будет выдана ошибка.

-r[eplace_database] Восстановить БД, с перезаписью существующего файла БД.:!: Начиная с Firebird 2.0 требуется указание или полного имени параметра (-replace_database), или параметра o[verwrite] (-r o).

-bu[ffers] num Установить размер кэша, который будет использовать сервер для этой БД (в этом случае опция конфига DefaultDbCachePages будет игнорироваться).

-e[xpand] Отключает компрессию RLE для строк.

-i[nactive] Не активировать индексы (все).

-k[ill] Не восстанавливать теневую копию.

-mo[de] access Востановить БД с заданным типом доступа. Возможные варианты read_only и read_write.

-n[o_validity] Восстанавливать БД без проверки constraints.

-o[ne_at_a_time] Делать commit после восстановления каждой таблицы. FIXME

-p[age_size] num Задать новый размер страницы. Возможные значения 1024, 2048, 4086, 8192, 16384. С Firebird 2.0 FIXME размеры страницы 1024 и 2048 игнорируются, база создается всегда с размером страницы не менее 4096 байт.

-use_[all_space] Не оставлять резервное место на страницах данных. Рекомендуется только для read_only баз данных.

Востановление многофайловой БД

:!: многофайловые базы данных - атавизм, использовать не рекомендуется для Firebird 1.0 и выше.

При востановлении многофайловой БД target будет выглядеть так : file_1 pages_1 file_2 pages_2 … file_N-1 pages_N-1 file_N

Каждый pages_n показывает как много страниц будет помещенно в файл file_n. В последний файл (без указания размера) будут помещенный все страницы которые не поместились в файл file_N-1. :!: Помните что pages_n измеряется в страницах, а не в байтах. и зависит от размера страницы.

Например вам надо разбить БД на куски по 2Гб. Если размер страницы 8192, то каждый файл может иметь максимум 2*1024*1024*1024/8192 = 262144 pages.

Переменные окружения

ISC_USER параметр по умолчанию для опции -user

ISC_ROLE параметр по умолчанию для опции -role

ISC_PASSWORD параметр по умолчанию для опции -password

Пример

gbak -b db-srv:/DATABASE.fdb /dev/stdout | gzip > /file.fbk.gz
zcat /file.fbk.gz | gbak -c /dev/stdin db-srv:/new-DATABASE.fdb
#!/bin/bash
PATH=/opt/firebird/bin:${PATH}
bkpath=/opt/acbase/backup 

curdate=`date +%F`
echo `date` start backuping data
gbak -B -G -user SYSDBA -pass sysdba localhost:employee $bkpath/emp_$curdate.fbk
echo `date +%X` backup successfully
echo `date +%X` compressing
gzip $bkpath/emp_$curdate.fbk
echo `date +%X` compress ok

find $bkpath/emp_* -type f -mtime +4 -delete
echo `date +%X` remove old file

См. также

Источник

man gbak

Обсуждение

kdv, 2011/01/21 14:04

Поправил многое. Собственно, полное описание gbak я сделал уже давно тут http://www.ibase.ru/devinfo/gbak.htm причем с комментариями, рекомендациями и т.п. Переносить всю статью сюда не вижу смысла.

Wild Pointer, 2013/10/14 14:12

Готовые скрипты автоматизации резервного копирования под Windows (.bat) и *nix (.sh): http://auto-backup-firebird.blogspot.ru/

Ваш комментарий. Вики-синтаксис разрешён:
N H Z U B
 
gbak.txt · Последнее изменение: 2013/04/12 10:34 — 83.149.35.27