Transaction

事務如何幫助恢復系統故障?

  • April 1, 2016

我了解交易的開發是為了滿足兩個要求:

  1. 並發數據庫訪問
  2. 對系統故障的恢復能力

我了解並發問題的動機;克服數據庫一致性問題。

但是,我有一個問題:事務如何幫助系統恢復故障?

如果我理解您的問題,“系統故障恢復能力”由伺服器處理,以確保事務:

  1. 成功送出事務。

要麼:

  1. 確保未送出的事務回滾到以前的狀態。

換句話說,事務成功完成,否則(在失敗中)由於事務不完整,所有正在進行的更改都將被撤消。

這個問題的一個常見答案是檢查銀行轉賬如何運作。

從賬戶 A 向賬戶 B 轉賬至少有兩個不同的過程:

Account A decreases total
Account B increases total

如果系統在第一個程序完成後出現故障,並且每個單獨的程序都送出了數據,那麼帳戶 A 將減少而帳戶 B 不會增加。這筆錢實際上會“失去”。

將其包裝在事務中意味著兩個程序都必須成功才能送出事務。金錢不可能“失去”。

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