Поточное резервирование базы данных, передача по сети и восстановление с конвертацией из FB 2.5 в FB 3.0
Идея была позаимствована в статье Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0), в которой рассматривается вопрос поточной конвертации на одной машине, с установкой двух версий Firebird, что не очень удобно, когда рассматривается вопрос переезда на другой сервер.
Что имеем:
- Два сервера, с версиями FB 2.5 и FB 3.0
- Локальную сеть между серверами
- Файл БД весом в 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 минут, что мне кажется довольно быстро.