Программный продукт "Атирра" > Дополнения
Утилита создания резервной копии базы данных FIREBIRD
apog:
Спасибо, возьмем на заметку. Вот мой вариант. Я делаю без остановки сервера. Правда и без чистки.
--- Код: ---#!/bin/sh
# Скрипт для ежечасного резервного копирования БД Firebird.
# В результате работы получаем полные сжатые копии БД
# с автоматической недельной ротацией (24*7).
ARCHIV=tv4 # имя архива
DB=localhost:TV # полный путь и имя файла базы данных
# или адрес_сервера:алиас
BACKUPDIR=/home/archiv/firebird # где храним резервные копии
DOW=`date +%u` # День недели (1..7), 1 обозначает понедельник
HOUR=`date +%H` # Час (00..23)
gbak -b -se localhost:service_mgr $DB $BACKUPDIR/$ARCHIV-$DOW-$HOUR.fbk -user SYSDBA -pass masterkey
exit 0
--- Конец кода ---
dimadom1398:
Извините. Разжуйте пожалуйста для "особо одаренных" как пользоваться программой backup. Она резервирует разово или постоянно? Куда резервирует? Как восстанавливать базу если что? Можно ли базу тупо скопировать ручками (какой файл?), а при переустановке системы подсунуть эти файлы?
Шумко Дмитрий:
Резервное копирование и восстановление из копии является одним из
самых важных процессов в администрировании базы данных FireBird.
Резервное копирование - один из самых надежных способов сохранить и
предохранить свои данные от потери или порчи. Процесс резервного
копирования также делается в профилактических целях, для увеличения
производительности базы данных - это достигается за счет того, что в
момент копирования происходит считывание последних версий всех
записей, старые же версии в копию никогда не попадают. Здесь важно
заметить, что недостаточно одного лишь резеврного копирования, нужно
иногда проверять восстанавливаемость базы данных из резеверной копии,
потому что бывают случаи, что база данных работает в режиме 24*7, то
есть 24 часа в сутки и 7 дней в неделю, backup базы данных может
происходит нормально, но в силу определенных причин база данных не
восстанавливается, последствия могут быть плачевными для всех данных.
Причины могут следующими: в базе данных есть ограничения, такие как
NOT NULL поля, внешние ключи, уникальность, а существующие данные в
базе данных этим ограничениям не соответствуют по каким-либо причинам.
Такие данные могут мирно существовать до тех пор, пока они не будут
задействованы в операциях редактирования или удаления. В процессе
восстановления <<прощупываются>> все данные - в первую очередь
создаются ограничения и затем заливаются данные, в этот момент и
происходит ошибка. Для профилактики следует восстанавливать базу
данных в тестовую, и лишь при успешном завершении процесса
восстановления, делать Restore в текущую базу. В случае возникновения
ситуации с поврежденным файлом backup'а следует найти в базе данных
несоответствия и исправить их.
Утилита gbak с соответствующими ключами позволяет совершать
резервирование и восстановление базы данных, синтаксис выполнения
операций следующий:
Резервирование
--- Код: --- gbak [-B] [ключи] файл_базы_данных файл_резервной_копии
Значение ключей:
-g не собирать мусор во время резервного копирования;
-l игнорировать лимбо-транзакции;
-m резервирование только метаданных;
-user имя пользователя;
-password пароль пользователя;
-v показать протоколирование во время выполнения процесса;
-z показать версию gbak.
Пример:
gbak -b -user SYSDBA -password masterkey C:workwork.gdb C:workwork.gbk
--- Конец кода ---
Восстановление
--- Код: --- gbak [-R/-С] [ключи] файл_базы_данных файл_резервной_копии
Ключи:
-R восстановление базы данных в уже существующий файл;
-С восстановление базы данных в новый файл, если файл уже существует,
то процесс будет прерван с ошибкой;
-p размер страницы (1024,2048,4196 или 8192). По умолчанию 1024;
Пример:
gbak -R -user SYSDBA -password masterkey C:workwork.gbk C:workwork.gdb
--- Конец кода ---
Следует отметить один нюанс, если запустить утилиту gbak без ключа -B
или -R/-C, то будет начат процесс резервного копирования базы данных.
Подробное описание gbak Утилита GBAK Firebird
вот еще тема о создании резервных копий с помощью gbak Резервное копирование FireBird
--- Цитировать ---Извините. Разжуйте пожалуйста для "особо одаренных" как пользоваться программой backup. Она резервирует разово или постоянно? Куда резервирует? Как восстанавливать базу если что? Можно ли базу тупо скопировать ручками (какой файл?), а при переустановке системы подсунуть эти файлы?
--- Конец цитаты ---
Возможно простое копирование файла базы данных, но для этого нужно чтоб никто не работал с ПО, что не всегда возможно, GBAK можно запускать в любой момент времени, на работу пользователей это не влияет.
dimadom1398:
Т.е. пока не наберёмся ума можно просто копировать файл ATIRRA_DB.FDB? Из программы надо выходить или достаточно в ней не работать в это время? И ещё. Объясните тайный смысл резервного копирования Файл/Администрирование/Обслуживание сервера. Там создается некий промежуточный файл, из которого потом восстанавливается база. В этом файле сохраняется больше данных или какие-то дополнительные данные по сравнению с тупым копированием файла базы "ручками"?
Шумко Дмитрий:
Можно и простое копирование файла, но необходимо всем выходить из ПО.
Недостаток в этом случае в том, что в базе данных остается "мусор" (старые версии данных).
А резервное копирование через промежуточный файл удаляет всю ненужную информацию,
переиздаются все индексы, проверяется целостность базы данных, что приводит к уменьшению БД
и к увеличению производительности системы в целом.
Навигация
Перейти к полной версии