?
1、事務的幾個概念
中止事務:事務在執行過程中發生故障,不能執行完成的事務。可以進行事務回滾,保持數據庫的一致性。
事務回滾:將中止事務對數據庫的更新操作撤銷稱為事務回滾。
已提交事務:成功執行完成的事務稱為已提交事務。已提交的事務不能進行回滾操作,必須由程序員手工執行一個補償事務才能撤銷提交的事務對數據庫的影響。
2、事務的狀態?
事務執行的情況:事務成功執行,數據庫進入一個新的一致狀態;事務因為故障或其他原因未能夠成功執行,這個時候數據庫處于不一致狀態,需要對未成功執行的事務造成的變更進行回滾操作,即事務回滾。
2.1 事務的五種狀態
活動狀態:事務的初始狀態,事務執行時處于這個狀態。
部分提交狀態:當操作序列的最后一條語句自動執行后,事務處于部分提交狀態。此時事務雖然已經完全執行,但由于實際輸出可能還臨時駐留在內存中,在事務成功完成之前還有可能出現硬件故障,事務仍有可能中止的情況。因此部分提交狀態不表示事務一定成功執行。
失敗狀態:因為硬件或邏輯等錯誤,使得事務不能繼續正常執行,事務就會進入失敗狀態,然后必須執行回滾操作,然后事務就進入中止狀態。
中止狀態:事務回滾并且數據庫恢復到事務開始執行前的狀態。
提交狀態:事務成功完成后,稱事務處于提交狀態。只有事務處于提交狀態后,才表明事務已經提交。
2.2 事務的狀態轉換?
?begin transation:開始執行事務,使得事務處于活動狀態。
end transation:表示事務中所有對數據庫的操作都已經完成。
commit transation:標志事務已經成功完成。、,事務中對數據庫的操作已經安全存入數據庫,事務進入提交狀態,結束事務的運行。
abort transaction:標志事務進入失敗狀態,系統撤銷事務中所有操作對數據庫的影響,結束事務的運行。
2.3 事務進入中止狀態一般會有以下兩種選擇
1、重啟事務:如果事務是因為軟、硬件錯誤引起,不是事務內部邏輯錯誤所產生時,一般會采用重啟事務的方法。重啟事務可以理解為一個新的事務。
2、殺死事務:這種選擇通常是因為事務中內部邏輯造成的錯誤或者輸入的錯誤。
?
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識
?