postgresql 在postgres删除的数据执行检查点操作之前将其恢复

kcugc4gi  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(195)

如果我理解正确的话,当我删除一个记录并调用commit时,postgres将更新预写日志(wal)并等待检查点,然后刷新对文件的更改。
我的问题是:

  • 有什么方法可以在提交后和postgres检查点之前恢复已删除的记录吗?
  • 顺便问一下,为什么这个方法可以减少磁盘写入?wal不是一个附加的日志文件吗?

我找不到任何地方如何做到这一点,而不支付postgres工程师。

fcg9iug3

fcg9iug31#

对数据文件的更改 * 必须 * 在下一个检查点结束前写入并刷新,但如果需要(或预计)收回页面以便为读入的其他数据腾出空间,也可以提前写入这些更改。一旦刷新了相应的WAL,对数据文件的更改就 * 符合 * 写入条件。
没有用户可用的方法来恢复被删除的记录。你可以强制崩溃,然后干扰恢复过程。但你必须是相当的Maven来完成这个任务。从备份中检索记录,然后重新插入它会更容易。你甚至不需要是一个工程师来完成这个任务。只要有有效的备份(可能包括WAL存档)并知道如何使用它们。或者更好的是,不要提交你不想提交的东西。
该系统是为碰撞安全而设计的,而不是为了减少磁盘写入。

相关问题