====== 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
===== См. также =====
[[nbackup]]
===== Источник =====
man gbak