【问题标题】:What is a restartpoint in postgresql?postgresql 中的重启点是什么?
【发布时间】:2021-02-27 08:52:37
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: postgresql postgresql-13


    【解决方案1】:

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

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

    restartpoints 的原因是“restartable recovery”:如果你的恢复过程被中断,下一次重启不会从备份的开头开始恢复,而是从最近的重启点开始。

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

    【讨论】:

    • 档案清理命令多久运行一次? postgresql 怎么知道什么时候运行呢?
    • @a_horse_with_no_name 为我提供了关于归档清理命令运行频率的答案......它由检查点超时触发或在 wal 大小即将超过 max_wal_size 时运行。
    • 我添加了更多关于如何触发重启点的信息。
    • 对于未来有同样问题的其他人:dba.stackexchange.com/questions/279742/…
    猜你喜欢
    • 1970-01-01
    • 2019-12-10
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2021-09-09
    相关资源
    最近更新 更多