如何防止PostgreSQL制作不受控制的检查点?

时间:2017-07-06 13:17:35

标签: postgresql

我希望能够将PostgreSQL禁用为自动检查点。

我只想在磁盘上fsync wal文件,而不保存在shared_buffer中所做的更改。

我将checkpoint_segmentscheckpoint_timeout设置为较大的值,但仍会生成其他检查点。

我不想检查点,即使他需要交换页面或内存不足。

1 个答案:

答案 0 :(得分:0)

检查点还有其他原因:

  • 恢复已完成(可能在服务器崩溃后发生)。
  • 开始在线备份。
  • 数据库关闭。
  • CREATE DATABASE之前和之后。
  • DROP DATABASE之后。
  • ALTER DATABASE SET TABLESPACE之前和之后(你可能每天都不这样做)。
  • DROP TABLESPACE期间(同上)。
  • 当然还有一个明确的CHECKPOINT命令。

我希望我没有忘记任何事情 - 其中一个会导致您观察到的检查点吗?

log_checkpoints设置为on,然后日志文件将在checkpoint starting消息中显示检查点的原因。

您确定避免检查点是个好主意吗?它们是必需的,以便在出现问题时可以恢复数据库。