CHECKPOINT

强制执行检查点的 SQL 命令

CHECKPOINT 是一个 SQL 命令,它强制 PostgreSQL 立即执行 检查点,之后磁盘上的数据文件保证是最新的,直到执行该命令的点。

CHECKPOINT 添加于 PostgreSQL 7.1

用法

PostgreSQL 14 及更早版本中,CHECKPOINT 只能由超级用户执行。

PostgreSQL 15 及更高版本中,CHECKPOINT 可以由超级用户或属于 预定义角色 pg_checkpointer 的用户执行。

执行 CHECKPOINT 命令后,pg_stat_bgwriter 中的 checkpoints_req 列将递增。

更改历史记录

示例

执行 CHECKPOINT 命令

postgres=# CHECKPOINT;
CHECKPOINT

检查点操作期间的日志文件输出(假设 log_checkpoints 设置为 on

[2021-03-29 12:28:06 UTC]    LOG:  00000: checkpoint starting: immediate force wait
[2021-03-29 12:28:06 UTC]    LOG:  00000: checkpoint complete: wrote 33 buffers (0.2%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.001 s, total=0.001 s; sync files=0, longest=0.000 s, average=0.000 s; distance=132 kB, estimate=132 kB

每次执行 CHECKPOINT 命令后,pg_stat_bgwriter 中的 checkpoints_req 列将递增

postgres=# SELECT checkpoints_timed, checkpoints_req FROM pg_stat_bgwriter;
 checkpoints_timed | checkpoints_req
-------------------+-----------------
                 0 |               0
(1 row)

postgres=# CHECKPOINT;
CHECKPOINT

postgres=# SELECT checkpoints_timed, checkpoints_req FROM pg_stat_bgwriter;
 checkpoints_timed | checkpoints_req
-------------------+-----------------
                 0 |               1
(1 row)

分类

检查点管理/管理SQL 命令

另请参阅

检查点

反馈

提交关于 "CHECKPOINT" 的任何评论、建议或更正 此处