Поточное резервирование базы данных, передача по сети и восстановление с конвертацией из FB 2.5 в FB 3.0

Задача заключается в том, чтобы как можно быстрее перенести базу данных c одного сервера на другой, с конвертацией её ODS в 12.0.

Идея была позаимствована в статье Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0), в которой рассматривается вопрос поточной конвертации на одной машине, с установкой двух версий Firebird, что не очень удобно, когда рассматривается вопрос переезда на другой сервер.

Что имеем:

  1. Два сервера, с версиями FB 2.5 и FB 3.0
  2. Локальную сеть между серверами
  3. Файл БД весом в 145gb

Общая идея переноса состоит из того-же конвейера, который был приведён в вышеупомянутой статье, нужно только внести небольшие корректировки:

gbak -b -g ... база25.fdb stdout | ssh -t ... user@host "sudo gbak -c stdin база30.fdb"

После восстановления было бы хорошо указать пользователя firebird и проверить БД:

sudo chown firebird:firebird база30.fdb
gfix -v -full база30.fdb

Всё, если база данных целая, то ошибок никаких не будет, подробную информацию о результате проверки файла БД можно посмотреть в /var/lib/firebird.log, если и там всё отлично, то можно переключать пользователей на работу с новой БД.

На перенос ушло примерно 80 минут, что мне кажется довольно быстро.
Tags:
firebird, backup, restore, ssh

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.