在進行持續數據操作後,發現報錯-203錯誤,通過查閱巨杉文檔發現是因爲日誌文件大小不足。但是修改後發現,實際的產生的原因並不是日誌文件大小不足。 產生這個問題的原因一般有兩個。
1. 事務日誌大小確實不足,在大量操作的情況下可能出現事務日誌不足的情況(默認事務日誌大小64MB,文件數20)
2. 存在事務開啓未提交或回滾的狀況,導致該事務一直佔用事務日誌(未提交或者回滾不能清除)。當該事務一直積壓在事務日誌中,其他新的事務記錄進不來,導致日誌空間不足的情況。
而我的問題是第二個導致的,我的一個事務操作一直沒有提交。
該問題的具體排查方法問題排查:
-203是通過協調節點報錯顯示的,報錯時會提示哪個數據節點報錯的-203。 直連該數據節點,通過snapshot(8)事務快照查看該節點的事務,在通過sessionID定位到某一個會話,通過snapshot(2)查看會話LastOpBegin 、 LastOpEnd兩個定位到是哪個會話卡死(之前我查這兩個值不準,存在無值或者last的時間早與begin時間的問題,不知道是否已經修復),通過force該會話,嘗試數據操作是否還存在報錯-203的問題。
應用端的問題會導致-203問題的發生。 有可能是應用端顯示的爲所有操作開啓了事務(ORM框架),卻未進行之後的提交或者回滾,導致的事務日誌不足。具體情況再具體分析,但是大致思路應該差不多。
如果不是因爲大小不足的原因,單純調大事務日誌大小,會再次發生這個問題。