在Windows Server 2016上使用SuperServer时是否可以备份Firebird DB?

时间:2018-06-30 21:35:30

标签: firebird firebird-3.0

当我执行Firebird 3.0.x备份命令时:

c:\Db>"C:\Program Files\Firebird\Firebird_3_0\gbak.exe"  -b c:\Db\Db1.fdb c:\Db\Db1_backup.fbk -garbage_collect -transportable -verify -user SYSDBA -pas PASSWORD

发生错误1:

gbak: ERROR:I/O error during "CreateFile (open)" operation for file "C:\DB\DB1.FDB"
gbak: ERROR:    Error while trying to open file
gbak: ERROR:    The process cannot access the file because it is being used by another process.
gbak:Exiting before completion due to errors

具有TCP / INET / localhost /远程协议的示例2:

c:\Db>"c:\Program Files\Firebird\Firebird_3_0\gbak.exe" -backup inet://c:\Db\Db1.fdb d:\_Backups\Db1_20180702_230546.fbk -garbage_collect -transportable -verify -skip_data SOMETAB_TO_SKIP -user SYSDBA -password PASSWORD123

发生错误2:

gbak: ERROR:Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

首先...说实话,我不确定何时开始或为什么开始。我可能没有看服务器三个月,但是今天我的备份磁盘坏了,所以我不得不这么做。我今天才第一次看到此错误,我坚信我的备份有效。但是我以前有Firebird 2.5。

问题是:这仅适用于Windows上的Firebird 3 SuperServer吗?当FB服务器使用Firebird 3 SuperServer数据库时,没有办法备份它吗?

在Windows Server 2016的Firebird服务器3.0.2和3.0.3上测试并失败。

Firebird正在作为服务运行

firebird.config中的任何内容均未更改,除了:

WireCompression = true
RemoteServicePort = 1234
CpuAffinityMask = 8
ServerMode = Super or SuperClassic (when I testing it)

当我在SuperClassic上执行第一个命令时,它可以工作。

当我在SuperServer 2.5.x上执行第一个命令时,它将起作用。

1 个答案:

答案 0 :(得分:0)

好,所以我终于弄清楚了问题出在哪里。这是解释:

我的密码错误!

但是!

当我使用SuperClassic时,我可以使用 WRONG 密码和Firebird 允许访问数据库。 (以本地用户身份)

当我使用SuperServer时,我可以使用 WRONG 密码和Firebird 允许访问数据库,而当我是 FIRST连接时! (作为具有和不具有远程协议的本地用户)

当我使用SuperServer并使用WRONG密码时,Firebird拒绝访问数据库,这是我的第二个(或更多)连接! (本地也是远程用户)

只有远程协议,您不能使用错误的密码访问数据库。

根据我的意思是远程协议 this。)

这是行为不同的原因,也是为什么我没有看到使用WRONG密码的原因。感谢所有试图帮助我的人。

相关问题