受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
此文档适用于不受支持的 PostgreSQL 版本。
您可能需要查看当前版本的相同页面,或上面列出的其他受支持版本。

CHECKPOINT

CHECKPOINT — 强制执行一次预写式日志检查点

Synopsis

CHECKPOINT [ ( option [, ...] ) ]

其中option可以是:

    FLUSH_UNLOGGED [ boolean ]
    MODE { FAST | SPREAD }

描述

检查点是预写式日志序列中的一个位置,到这一位置时,所有数据文件都已更新,以反映日志中的信息。 所有数据文件都会被刷写到磁盘。 有关检查点期间会发生什么的更多细节,参见Section 28.5

默认情况下,CHECKPOINT命令会在发出该命令时强制执行一个 快速检查点,而不是等待系统安排的常规检查点 (由Section 19.5.2中的设置控制)。 若要请求将检查点分散到更长的时间内,可将MODE选项设为 SPREADCHECKPOINT并非设计用于正常运行期间。

服务器可能会合并同时请求的检查点。这类合并后的请求将包含一组合并后的选项。 例如,如果一个会话请求快速检查点,而另一个会话请求分散检查点,服务器可能会 合并这些请求并执行一个快速检查点。

如果在恢复期间执行CHECKPOINT命令, 它将强制执行一个重启点(见Section 28.5), 而不是写入一个新的检查点。

只有超级用户,或者具有 pg_checkpoint 角色权限的用户,才能调用CHECKPOINT

参数

FLUSH_UNLOGGED #

通常,CHECKPOINT不会刷写不记录日志关系的脏缓冲区。 该选项默认关闭,启用后会将不记录日志关系刷写到磁盘。

MODE #

当设为FAST时,这是默认值,请求的检查点会尽可能快地完成, 这可能导致检查点期间的 I/O 速率显著升高。

MODE也可以设为SPREAD,以请求将检查点 分散到更长的时间内(由Section 19.5.2中的 设置控制),类似于系统安排的常规检查点。这可以降低检查点期间的 I/O 速率。

boolean #

指定所选选项应开启还是关闭。你可以使用TRUEON1来启用该选项,使用 FALSEOFF0 来禁用它。boolean值也可以省略, 此时默认视为TRUE

兼容性

CHECKPOINT命令是 PostgreSQL的一种语言扩展。