类型: | enum |
默认: | fdatasync |
上下文: | sighup |
重新开始: | false |
值: | [fsync, fdatasync, open_sync, open_datasync] |
用来向强制 WAL 更新到磁盘的方法。如果fsync是关闭的,那么这个设置就不相关,因为 WAL 文件更新将根本不会被强制。可能的值是:
-
open_datasync
(用open()选项O_DSYNC
写 WAL 文件) -
fdatasync
(在每次提交时调用fdatasync()) -
fsync
(在每次提交时调用fsync()) -
fsync_writethrough
(在每次提交时调用fsync(),强制任何磁盘写高速缓存的直通写) -
open_sync
(用open()选项O_SYNC
写 WAL 文件)
open_
* 选项也可以使用O_DIRECT
(如果可用)。不是在所有平台上都能使用所有这些选择。默认值是列表中第一个被平台支持的那个, 不过fdatasync
是 Linux 中的默认值。默认值不一定是最理想的;有可能需要修改这个设置或系统配置的其他方面来创建一个崩溃-安全的配置,或达到最佳性能。这些方面在wal-reliability中讨论。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。
建议 [EN]
On install, PostgreSQL figures out the best method for your OS. It's pretty good at this point; don't change the default. Note that the value of "fsync" shown in your postgresql.conf file is not necessarily the setting the server is using; try SHOW instead.