Mariadb

如何查找正在回滾的事務

  • November 12, 2021

我的 MariaDB 伺服器今天早些時候崩潰了,但仍在恢復中。錯誤日誌顯示

InnoDB:回滾:1 個事務,519345 行

從日誌條目看來,回滾將需要大約 4 小時才能完成。而且我的網站幾乎沒有響應,因為伺服器正忙於回滾。

根據正在回滾的事務影響的行數,我懷疑伺服器正在嘗試回滾涉及日誌表的事務。如果是這樣的話,我不介意失去數據。

如何找到受回滾事務影響的表?如果確實是非關鍵表,我該如何跳過回滾?

…我的網站幾乎沒有響應,因為伺服器正忙於回滾。

坦率地說,我很驚訝這個數據庫除了執行回滾之外還能響應其他任何事情。

如果您有多個數據庫,那麼是的,它們都會受到嚴重影響。

一個影響****519k記錄的事務對我來說聽起來不像是“日誌表”問題,或者,如果是,那麼它正在被一個看似從未發出送出的程序更新!(也許僅在程序關閉時?)。

事務,包括其日誌記錄,應盡可能短(即快)。

對我來說,這聽起來更像是一個中斷的批處理作業。

我怎樣才能找到受影響的表…

我不確定你能不能。

如果確實是非關鍵表,我該如何跳過回滾?

簡短的回答 - 你不能。

回滾是實例恢復的基本部分,您的數據庫在發生故障後必須通過它才能使您的數據恢復到良好的“已知狀態”。

可能能夠對“未記錄”的特定表進行更改(我不記得 MariaDB 是否支持),但這樣做可能會給您在數據庫恢復領域帶來其他“有趣”的問題。

引用自:https://dba.stackexchange.com/questions/302511