1

I have a Windows Server running Firebird 2.5.4 on port 3050, and I have another Firebird Server older version on port 3051.

I use the 3051 server for compatibility reasons for another application. I turn it on when I need it, and most of the time it is off via windows services.

However, backups are now failing when using nbackup. The command is

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

When running this command it fails with:

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

Connecting via isql similarly generates the same problem.

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

Statement failed, SQLSTATE = 08001
unavailable database

However via the specific connection host & port it works fine.

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

Applying this to nbackup fails since one needs local access to the database file.

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

Is there some sort of environment variable or configuration that prevents nbackup from accessing the database file correctly? The Line of Business application has no problem connecting, and making changes to the database. No errors in firebird.log on both instances. Very weird.

Israel Lopez
  • 113
  • 3

1 Answers1

1

You need to set unique IpcName in firebird.conf for each Firebird Server. In this case both of them will be able to work with Local protocol and nbackup.exe will works succesfully.

Alex Gilev
  • 26
  • 1
  • I no longer have access to the system this applied, do but in looking up the IpcName setting I do see now how this makes sense. Thank you! – Israel Lopez Jul 09 '17 at 20:34
  • another option would be to set those Firebird services so that the intended server starts first and captures the local protocol before the second starts. And I wonder if nBackup can use TCP connection string to the database, so the TCP port could be specified – Arioch 'The Sep 26 '17 at 08:12