如果一个事务被“提交”,那么它会被保存吗?

SQL*_*ice 12 sql-server-2008 sql-server sql-server-2008-r2

如果事务成功提交,我能否 100% 确定它已写入数据库和日志文件?我可以确定数据已保存吗?

今天我们的日志文件已经达到了驱动器的限制,我们得到了很多错误。此外,其他一些服务也崩溃了。我们增加了磁盘并重新启动了服务器。

在启动期间,服务器进行了“数据库恢复”——我能确定一切正常吗?

Rem*_*anu 16

如果客户端应用程序已发出 COMMIT 并取回成功代码,则引擎保证事务是持久的。可以保证事务中所做的所有更改都是可见的,即使在崩溃之后也是如此。此外,恢复还保证任何未提交的事务都将在崩溃的情况下回滚。

有关更多详细信息,我建议阅读ARIES论文。

如果底层存储硬件出现故障(损坏),则预写式日志记录和恢复无法保证。任何工程产品都可能存在缺陷。

您的应用程序与所有其他应用程序一样,需要仔细编写以在出现崩溃(错误)时正确运行。没有魔法。