data_sync_retry
是一个 配置参数,用于确定 PostgreSQL 在无法将已修改数据文件刷新到文件系统时是否应该发出 PANIC
错误。
data_sync_retry
添加于 PostgreSQL 12,并回溯移植到所有版本,直到 PostgreSQL 9.4。
默认值
data_sync_retry
的默认值为:off
。
用法
默认情况下,如果无法将已修改数据文件刷新到文件系统,则会发出 PANIC
级别的错误消息。这将导致 PostgreSQL 服务器崩溃。
如果将 data_sync_retry
设置为 on
,则存在数据丢失的风险,因为在某些操作系统上,内核缓存的脏数据可能会在
写回失败时被丢弃。随后对 fsync()
的调用可能看起来成功了,但实际上并没有刷新数据,这意味着未来的 检查点 可能会显示成功完成,但实际上并没有将数据写入磁盘。
通常没有理由将 data_sync_retry
设置为 on
。
按 PostgreSQL 版本分列的详细信息
data_sync_retry (PostgreSQL 17)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 16)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 15)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 14)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 13)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 12)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 11)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 10)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 9.6)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 9.5)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: data_sync_retry
data_sync_retry (PostgreSQL 9.4)
设置 | off |
单位 | |
类别 | 错误处理 |
简短描述 | 在同步数据文件失败后是否继续运行。 |
额外描述 | |
上下文 | postmaster |
变量类型 | bool |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | off |
重置值 | off |
源文件 | |
源代码行 |
文档: data_sync_retry
更改历史记录
- PostgreSQL 12
- 添加 (提交 9ccdd7f6)
参考文献
- PostgreSQL 文档: data_sync_retry
有用链接
- PostgreSQL 危险设置:data_sync_retry - 2022 年 11 月 Luca Ferrari 的博文
另请参阅
fsync