如果PostgreSQL数据库或服务器异常关闭,脏数据会怎样?

She*_*sib 2 postgresql database-design postgresql-performance postgresql-13 postgresql-14

假设我的 PostgreSQL 实例突然异常停止,并且数据是脏的并且没有保存在 RAM 或 WAL 中。那样的话会发生什么?

我可以从哪里恢复这些数据?如果服务器也关闭,在这种情况下脏数据会发生什么?

是否有任何单独的文件来存储脏数据以进行恢复?

Mic*_*een 6

数据是脏的并且未保存在 RAM 或 WAL 中。

如果这些数据不在这些位置,那么这些数据会在哪里?

在 Postgres 可执行文件中,内存、WAL 和磁盘文件中的数据写入有严格定义的顺序。这确保了系统崩溃后的一致恢复。已提交的事务在恢复后仍显示在数据中。进行了更改但未提交的事务将回滚。无论它们造成什么“肮脏”,都会被清除干净。

您不需要手动执行任何操作即可实现此目的。它内置于可执行文件中。