Database

Firebird 2.1:gfix -online 返回“數據庫關閉”

  • July 7, 2013

不幸的是,Google搜尋這個並沒有什麼不同,因為大多數結果都指定了在使用gfix -shut -force 30(或任何其他秒數) as之後使數據庫聯機的語法gfix -online dbname,並且我在gfix -online dbname使用和不使用登錄憑據的情況下執行了相關數據庫.

我得到的資訊是:

database dbname shutdown

這很好,只是我現在想把它放到網上。關閉 fbserver.exe(在 Windows 機器上執行,afaik 它是 Classic Server 2.1.1 但它可能是 Super)是不可能的,因為我們還有其他數據庫需要幾乎 24/7 的正常執行時間。執行另一個gfix -shut -force或 -attach 或 -tran的消息Target shutdown mode is invalid for database dbname似乎與數據庫已經完全關閉時發生的情況的文件相匹配。Target shutdown mode invalid如果我使用-online singleor-online multi而不是-online/ ,也會出現該消息-online normal

非常感謝您的想法和意見,特別是因為目前時間對我來說是一個因素。謝謝!

編輯:我關閉數據庫的全部原因是清除連結到特定 IP 地址的“活動”事務,而那台電腦是我的開發終端(實際上是我為數據庫軟體開發前端的虛擬機),但我當時沒有程序連接到數據庫。對我來說,它們看起來像是孤立的交易,而且它們並沒有陷入困境。執行手動掃描並沒有清除它們,從 MON$STATEMENTS 中刪除行不起作用,即使 Firebird 2.1 應該支持以這種方式取消查詢。我最後的手段是“重新啟動”數據庫,因此出現了上述問題。

編輯 2:剛剛在 2.1.3 發行說明中註意到了這一點:

當使用 -attach 或 -tran 選項呼叫關閉時,新 gfix 關閉模式的實現會出現回歸問題。如果在指定的超時到期時連接仍然存在,則引擎會返回一條消息,指示關閉不成功。但是,它並沒有讓數據庫處於應有的線上狀態,而是將數據庫置於某種不確定的“離線”狀態,並拒絕進一步的連接。

我用過-shut -force 30,應該不受影響。但是,在 30 秒後呼叫沒有正確返回,並且在等待大約 3 分鐘後,我關閉了我的 tty 到伺服器(Windows 伺服器框上的 linux 虛擬機),這可能會或可能不會中止 gfix 操作。執行ps不顯示任何 gfix 程序。想知道這是否使數據庫處於“不確定狀態”…

線上使用

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

使用數據庫後重試

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

我也遇到了同樣的問題,最近我首先停止了 FB 服務,然後我終止了伺服器上的所有 fbclient 連接。重新啟動 fbservice 並使用使伺服器聯機 cmd。希望這可以幫助

引用自:https://serverfault.com/questions/136885