Программный продукт "Атирра" > Дополнения

Утилита создания резервной копии базы данных FIREBIRD

<< < (2/4) > >>

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? Из программы надо выходить или достаточно в ней не работать в это время? И ещё. Объясните тайный смысл резервного копирования Файл/Администрирование/Обслуживание сервера. Там создается некий промежуточный файл, из которого потом восстанавливается база. В этом файле сохраняется больше данных или какие-то дополнительные данные по сравнению с тупым копированием файла базы "ручками"?

Шумко Дмитрий:
Можно и простое копирование файла, но необходимо всем выходить из ПО.

Недостаток в этом случае в том, что в базе данных остается "мусор" (старые версии данных).
А резервное копирование через промежуточный файл удаляет всю ненужную информацию,
переиздаются все индексы, проверяется целостность базы данных, что приводит к уменьшению БД
и к увеличению  производительности системы в целом.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии