数据库如何在事务中处理此状态?

时间:2017-03-05 08:06:21

标签: database transactions

我对数据库事务处理有疑问。

如果数据库在事务中将某些数据写入持久存储而非全部时关闭数据库,那么它们如何解决此状态?

(+)具有自动重试逻辑的客户端如何处理数据库完成事务但在获得响应之前断开连接的状态?

感谢阅读。

1 个答案:

答案 0 :(得分:0)

DBMS崩溃恢复的常见解决方案是ARIES算法中使用的解决方案。 简而言之,数据库维护write-ahead-log,所有修改在应用之前都会写入其中。 崩溃后,恢复管理器撤消未提交的更改,并确保将所有已提交的更改写入磁盘。

(+)关系数据库的优点在于它们提供ACID保证。     由于durability属性,客户端确信所有成功提交的事务都反映在磁盘上,因此不需要以特殊方式处理DBMS崩溃场景。