我有一个在端口3050上运行Firebird 2.5.4的Windows服务器,并且在端口3051上有另一个Firebird服务器旧版本。
出于兼容性原因,我使用3051服务器来处理其他应用程序。 我在需要时打开它,大部分时间都是通过Windows服务closures的。
但是,使用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
是否有某种环境variables或configuration阻止nbackup正确访问数据库文件? 业务线应用程序没有问题连接,并对数据库进行更改。 两个实例上都没有firebird.log错误。 很奇怪。
您需要为每个Firebird服务器在firebird.conf中设置唯一的IpcName。 在这种情况下,他们都可以使用本地协议和nbackup.exe将工作成功。