如果选中此参数,PostgreSQL服务器将发出系统调用(fsync ),或尝试使用一些等效方法将wal_sync_method物理写入磁盘(如果有) 这将确保数据库群集在操作系统或硬件崩溃后恢复到一致状态。
要在官方网站上理解此说明:
checkpoint简单来说就是保证数据完整性和完整性的数据库事件。
在数据库上运行checkpoint会将以前的脏数据刷新到磁盘,从而缩短数据库的崩溃恢复时间。
运行checkpoint时,数据库主要完成以下任务:
识别shared buffers中的所有脏页面
将脏页写入适当的数据文件
验证修改的文件是否通过fsync ()写入磁盘
注意: fsync ) )函数强制物理写入缓冲区缓存中的数据,以确保在发生系统崩溃或其他故障后,在调用fsync )之前所有数据都记录在磁盘中。
如果fsync=on,则执行检查点,数据库直接调用操作系统的fsync函数,并立即直接写入硬盘。 请注意这个。 相反,如果fsync=off,则数据库将脏页写入操作系统,操作系统根据系统的调度算法将脏页写入磁盘。 请注意,这里不是马上,总之系统可能在做别的工作。 请先排队。 我先恢复数据库(如数据未写入磁盘)时,先去找最新的检查点时间