首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果一个事务在中间中止,那么写的WAL日志会发生什么呢?

如果一个事务在中间中止,那么写的WAL日志会发生什么呢?
EN

Database Administration用户
提问于 2021-10-20 21:44:07
回答 1查看 266关注 0票数 1

我在想下面的情景。

代码语言:javascript
复制
BEGIN TRANSACTION;

INSERT SOMETHING;
INSERT SOMETHING;
##CLIENT COMPUTER EXPLODES

如果我正确理解,在每个INSERT语句之后,将向数据库服务器的WAL写入一个日志条目。

在这个场景中,WAL中现在有两个新行,但是由于客户端计算机爆炸,COMMIT语句将永远不会被执行。那么写成WAL的2行会发生什么呢?它们会在连接丢失后被删除吗?它们是否会永远保存在不完整的交易中?在客户端断开连接后,是否会将中止语句插入到WAL中?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-10-21 03:28:35

WAL记录仍然存在;WAL从不追溯修改。它们将在恢复过程中被重放,但是由于WAL中没有该事务的COMMIT记录,它们将保持不可见性。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/301428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档