Сбой резервного копирования 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 в обоих случаях. Очень странно.
1 ответ
Вам нужно установить уникальное IpcName в firebird.conf для каждого сервера Firebird. В этом случае они оба смогут работать с локальным протоколом, и nbackup.exe будет работать успешно.