【问题标题】:ACID transactions, durabilityACID 事务,持久性
【发布时间】:2018-09-06 08:48:00
【问题描述】:

我正在尝试了解 ACID 事务,但我对持久性一无所知。

就我而言,持久性可确保保存所有已完成的事务,即使发生某种技术故障。即使发生某种技术故障,被拯救意味着什么。例如,如果我的服务器在 Transaction 期间崩溃,在将数据保存到数据库之前,持久性如何确保服务器再次启动时正确保存数据?

【问题讨论】:

  • 这是两个独立的问题,其中任何一个都足以证明整个答案的合理性。因此,您应该将它们作为两个单独的问题提出。 StackOverflow 模型是每个线程一个问题:请尊重它。
  • "crushed during Transaction" != "completed transactions",不确定这是否是您想知道的,以及您是否了解它对已完成交易的工作原理。

标签: mysql database oracle acid


【解决方案1】:

实际上,如果发生技术故障,事务要么全部提交,要么全部回滚。

涉及服务器意外停止的故障(例如,由于灾难性破坏)通常会导致事务回滚(数据保留在事务开始之前的状态,而不是某个中间状态)。

必须重复回滚事务。这取决于使用数据库的应用程序。因此,ACID 给应用程序带来了一定的负担,以了解事务何时完成或不完成。

在实践中这是一个非常复杂的主题。数以万计的程序员年已经花费了使事务处理尽可能强大的时间。

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多