首页 > 解决方案 > postgresql 中的重启点是什么?

问题描述

在 PostgreSQL 版本 13 的 postgresql.conf 文件中,archive_cleanup_command 注释以下列方式解释命令:

#archive_cleanup_command = ''         # command to execute at every restartpoint.

这里这里的文档没有提到“重启点”。这提出了以下问题:

  1. 什么是重启点? 例如:restartpoint 是检查点的同一个词吗?两者的意思完全一样吗?
  2. 什么时候创建重启点? 例如:如果重启点只是一个检查点,那么检查点将每 5 分钟创建一次,或者无论 checkpoint_timeout 的设置在 postgresql.conf 文件中如何设置。
  3. 归档清理命令何时运行? 例如:每次达到 archive_timeout(在 postgresql.conf 文件中设置)时,都会运行归档清理命令。如果归档超时设置为 1 小时,则 archive_cleanup_command 每 1 小时运行一次。

标签: postgresqlpostgresql-13

解决方案


重启点只是恢复期间的一个检查点,它的触发方式与检查点相同:通过超时或自上次重启点以来处理的 WAL 数量。另请注意

重启点不能比主节点中的检查点更频繁地执行,因为重启点只能在检查点记录处执行。

重新启动点的原因是“可重新启动恢复”:如果您的恢复过程被中断,下一次重新启动将不会从备份的开头开始恢复,而是从最近的重新启动点开始。

archive_cleanup_command在重新启动点期间为所有完全恢复的 WAL 段运行。它的主要用例是日志传送备用服务器:使用archive_cleanup_command它们可以删除它们不再需要的所有传送的 WAL 段,这样包含它们的目录就不会超出范围。


推荐阅读