wal_sync_method
是一个配置参数,用于确定将WAL更新强制写入磁盘所使用的方法。
wal_sync_method
在PostgreSQL 7.1中添加。
用法
wal_sync_method
可以设置为以下值之一
open_datasync |
使用open() 选项O_DSYNC 写入WAL文件 |
fdatasync |
在每次提交时调用fdatasync() |
fsync |
在每次提交时调用fsync() |
fsync_writethrough |
在每次提交时调用fsync() ,强制写入任何磁盘写入缓存 |
open_sync |
使用open()选项O_SYNC 写入WAL文件 |
实用程序pg_test_fsync可用于确定本地操作系统上wal_sync_method
的最快值。
默认值
wal_sync_method
的默认值为
- Linux和FreeBSD:
fdatasync
- 其他操作系统:上表中操作系统支持的第一个方法
按PostgreSQL版本细分
wal_sync_method (PostgreSQL 17)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 16)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 15)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 14)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 13)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 12)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 11)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 10)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.6)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.5)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 | |
待重启 | false |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.4)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.3)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.2)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.1)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 9.0)
设置 | fdatasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | fdatasync |
重置值 | fdatasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 8.4)
设置 | open_datasync |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | fsync, fdatasync, open_sync, open_datasync |
启动值 | open_datasync |
重置值 | open_datasync |
源文件 | |
源代码行 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 8.3)
设置 | |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 字符串 |
来源 | 默认值 |
最小值 | |
最大值 |
文档: wal_sync_method
wal_sync_method (PostgreSQL 8.2)
设置 | |
单位 | |
类别 | 预写日志/设置 |
简短描述 | 选择用于将WAL更新强制写入磁盘的方法。 |
额外描述 | |
上下文 | sighup |
变量类型 | 字符串 |
来源 | 默认值 |
最小值 | |
最大值 |
文档: wal_sync_method
更改历史
- PostgreSQL 17
- 在Windows上删除了
fsync_writethrough
选项(提交8c852ba9)
- 在Windows上删除了
- PostgreSQL 16
- Windows现在支持
fdatasync
选项(提交9430fb40)
- Windows现在支持
- PostgreSQL 14
- FreeBSD上的默认值更改为
fdatasync
(提交f900a79e)
- FreeBSD上的默认值更改为
- PostgreSQL 9.1
- Linux上的默认值更改为
fdatasync
(提交576477e7)
- Linux上的默认值更改为
- PostgreSQL 7.1
- 添加(提交9d645fd8)
参考文献
- PostgreSQL文档: wal_sync_method
另请参阅
pg_test_fsync,fsync