SequoiaDB 運行日誌報錯-203的解決辦法

在進行持續數據操作後,發現報錯-203錯誤,通過查閱巨杉文檔發現是因爲日誌文件大小不足。但是修改後發現,實際的產生的原因並不是日誌文件大小不足。 產生這個問題的原因一般有兩個。

1. 事務日誌大小確實不足,在大量操作的情況下可能出現事務日誌不足的情況(默認事務日誌大小64MB,文件數20)

2. 存在事務開啓未提交或回滾的狀況,導致該事務一直佔用事務日誌(未提交或者回滾不能清除)。當該事務一直積壓在事務日誌中,其他新的事務記錄進不來,導致日誌空間不足的情況。

 

而我的問題是第二個導致的,我的一個事務操作一直沒有提交。

該問題的具體排查方法問題排查:

-203是通過協調節點報錯顯示的,報錯時會提示哪個數據節點報錯的-203。 直連該數據節點,通過snapshot(8)事務快照查看該節點的事務,在通過sessionID定位到某一個會話,通過snapshot(2)查看會話LastOpBegin 、 LastOpEnd兩個定位到是哪個會話卡死(之前我查這兩個值不準,存在無值或者last的時間早與begin時間的問題,不知道是否已經修復),通過force該會話,嘗試數據操作是否還存在報錯-203的問題。

應用端的問題會導致-203問題的發生。 有可能是應用端顯示的爲所有操作開啓了事務(ORM框架),卻未進行之後的提交或者回滾,導致的事務日誌不足。具體情況再具體分析,但是大致思路應該差不多。

如果不是因爲大小不足的原因,單純調大事務日誌大小,會再次發生這個問題。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章