不幸的是,用谷歌搜索这个并没有什么区别,因为大多数结果都指定了使用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 命令。希望这能有所帮助