【发布时间】:2017-03-05 08:06:21
【问题描述】:
我对数据库事务处理有疑问。
如果数据库在事务将一些数据写入持久存储但不是全部时关闭,他们如何解决这种状态?
(+) 具有自动重试逻辑的客户端如何处理数据库完成事务但在得到响应之前断开连接的状态?
感谢阅读。
【问题讨论】:
标签: database transactions
我对数据库事务处理有疑问。
如果数据库在事务将一些数据写入持久存储但不是全部时关闭,他们如何解决这种状态?
(+) 具有自动重试逻辑的客户端如何处理数据库完成事务但在得到响应之前断开连接的状态?
感谢阅读。
【问题讨论】:
标签: database transactions
DBMS 崩溃恢复的常见解决方案是ARIES 算法中使用的解决方案。 简而言之,数据库维护一个write-ahead-log,所有修改都在应用之前写入其中。 崩溃后,恢复管理器撤消未提交的更改,并确保所有已提交的更改都写入磁盘。
(+) 关系数据库的好处是它们提供ACID 保证。 由于durability 属性,客户端确定所有成功提交的事务都反映在磁盘上,因此无需以特殊方式处理 DBMS 崩溃情况。
【讨论】: