Firebird 2.1:gfix -online 返回“数据库关闭”

Firebird 2.1:gfix -online 返回“数据库关闭”

不幸的是,用谷歌搜索这个并没有什么区别,因为大多数结果都指定了使用gfix -shut -force 30(或任何其他秒数)后在线数据库的语法,并且我已经使用和不使用相关数据库的登录凭据gfix -online dbname运行过。gfix -online dbname

我收到的信息是:

database dbname shutdown

这很好,只是我现在想让它上线。关闭 fbserver.exe 是不可能的(在 Windows 机器上运行,据我所知它是 Classic Server 2.1.1,但它可能是超级的,因为我们有其他数据库在运行,它们几乎需要 24/7 的正常运行时间。执行另一个gfix -shut -force或 -attach 或 -tran时出现的消息Target shutdown mode is invalid for database dbname似乎与数据库已完全关闭时发生的情况的文档相符。如果我使用或,但不使用/ ,Target shutdown mode invalid也会出现该消息。-online single-online multi-online-online normal

非常感谢您的意见和建议,尤其是因为目前时间对我来说是一个因素。谢谢!

编辑:我关闭数据库的全部原因是为了清除链接到特定 IP 地址的“活动”事务,并且该计算机是我的开发终端(实际上是一个虚拟机,我在其中开发数据库软件的前端),但当时我没有连接到数据库的进程。在我看来,它们看起来像是孤立的事务,据我所知它们并没有处于不确定状态。运行手动清除并没有清除它们,从 MON$STATEMENTS 中删除行不起作用,尽管 Firebird 2.1 据称支持以这种方式取消查询。我的最后一个办法是“重新启动”数据库,因此出现了上述问题。

编辑2:刚刚在2.1.3发行说明中注意到了这一点:

当使用 -attach 或 -tran 选项调用关机时,新 gfix 关机模式的实现会出现回归问题。如果在指定的超时到期时连接仍然有效,则引擎会返回一条消息,表明关机失败。但是,它不会像应该的那样让数据库处于在线状态,而是将数据库置于某种不确定的“离线”状态,并拒绝进一步的连接。

我使用了-shut -force 30,所以应该不会受到影响。但是,30 秒后,调用没有正确返回,等待大约 3 分钟后,我关闭了与服务器(Windows 服务器框上的 Linux 虚拟机)的 tty,这可能中止了 gfix 操作,也可能没有。运行ps没有显示任何 gfix 进程。想知道这是否使数据库处于“不确定状态”...

答案1

在线使用

gfix  -user "SYSDBA" -password "masterkey"  -online DATA.FDB

数据库使用后重试

gfix  -user "SYSDBA" -password "masterkey"   -shut -force 0 DATA.FDB

答案2

我也遇到了同样的问题,最近我先停止了 FB 服务,然后关闭了服务器上的所有 fbclient 连接。重新启动 fbservice 并使用 Bring Server Online 命令。希望这能有所帮助

相关内容