Mariadb
如何查找正在回滾的事務
我的 MariaDB 伺服器今天早些時候崩潰了,但仍在恢復中。錯誤日誌顯示
InnoDB:回滾:1 個事務,519345 行
從日誌條目看來,回滾將需要大約 4 小時才能完成。而且我的網站幾乎沒有響應,因為伺服器正忙於回滾。
根據正在回滾的事務影響的行數,我懷疑伺服器正在嘗試回滾涉及日誌表的事務。如果是這樣的話,我不介意失去數據。
如何找到受回滾事務影響的表?如果確實是非關鍵表,我該如何跳過回滾?
…我的網站幾乎沒有響應,因為伺服器正忙於回滾。
坦率地說,我很驚訝這個數據庫除了執行回滾之外還能響應其他任何事情。
如果您有多個數據庫,那麼是的,它們都會受到嚴重影響。
一個影響****519k記錄的事務對我來說聽起來不像是“日誌表”問題,或者,如果是,那麼它正在被一個看似從未發出送出的程序更新!(也許僅在程序關閉時?)。
事務,包括其日誌記錄,應盡可能短(即快)。
對我來說,這聽起來更像是一個中斷的批處理作業。
我怎樣才能找到受影響的表…
我不確定你能不能。
如果確實是非關鍵表,我該如何跳過回滾?
簡短的回答 - 你不能。
回滾是實例恢復的基本部分,您的數據庫在發生故障後必須通過它才能使您的數據恢復到良好的“已知狀態”。
您可能能夠對“未記錄”的特定表進行更改(我不記得 MariaDB 是否支持),但這樣做可能會給您在數據庫恢復領域帶來其他“有趣”的問題。