我在想下面的情景。
BEGIN TRANSACTION;
INSERT SOMETHING;
INSERT SOMETHING;
##CLIENT COMPUTER EXPLODES如果我正确理解,在每个INSERT语句之后,将向数据库服务器的WAL写入一个日志条目。
在这个场景中,WAL中现在有两个新行,但是由于客户端计算机爆炸,COMMIT语句将永远不会被执行。那么写成WAL的2行会发生什么呢?它们会在连接丢失后被删除吗?它们是否会永远保存在不完整的交易中?在客户端断开连接后,是否会将中止语句插入到WAL中?
发布于 2021-10-21 03:28:35
WAL记录仍然存在;WAL从不追溯修改。它们将在恢复过程中被重放,但是由于WAL中没有该事务的COMMIT记录,它们将保持不可见性。
https://dba.stackexchange.com/questions/301428
复制相似问题