Назад | Перейти на главную страницу

Сбой резервного копирования Firebird при двух установках в Windows

У меня есть Windows Server под управлением Firebird 2.5.4 на порту 3050, и у меня есть еще одна более старая версия Firebird Server на порту 3051.

Я использую сервер 3051 из соображений совместимости с другим приложением. Я включаю его, когда мне это нужно, и большую часть времени он отключается через службы Windows.

Однако теперь резервное копирование не выполняется при использовании nbackup. Команда

nbackup.com -u sysdba -p PASSWORD -B 0 "C:\DATABASE.FDB" "X:\BACKUP.fbk"

При запуске этой команды происходит сбой:

[
PROBLEM ON "attach database".
unavailable database
SQLCODE:-904
]
Failure: Database error

Подключение через isql также создает ту же проблему.

isql -u sysba -p PASSWORD "C:\DATABASE.FDB"

Statement failed, SQLSTATE = 08001
unavailable database

Однако через конкретный хост и порт подключения он работает нормально.

isql -u sysba -p PASSWORD "localhost/3050:C:\DATABASE.FDB"

Применить это к nbackup не удастся, так как нужен локальный доступ к файлу базы данных.

nbackup.com -u sysdba -p PASSWORD -B 0 "localhost/3050:C:\DATABASE.FDB" "X:\BACKUP.fbk"

[
PROBLEM ON "nbackup needs local access to database file".
SQLCODE:-999
]
Failure: Database error

Есть ли какая-то переменная среды или конфигурация, которая мешает nbackup правильно обращаться к файлу базы данных? Приложение Line of Business не имеет проблем с подключением и внесением изменений в базу данных. В обоих случаях ошибок в firebird.log нет. Очень странно.

Вам необходимо установить уникальное имя IpcName в firebird.conf для каждого сервера Firebird. В этом случае оба они смогут работать с локальным протоколом, и nbackup.exe будет работать успешно.