选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 错误处理

CONFIGURATION PARAMETER错误处理

data_sync_retry

设置数据文件同步失败后是否继续运行。

Whether to continue running after a failure to sync data files.

布尔 重启生效 引入 9.4 现存至 20 devel 0 次默认值变更

类型
布尔bool
上下文
重启生效只能在服务器启动时设置,修改后需要重启
默认值
off
分类
错误处理
引入版本
9.4
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 f1ff5f51d2

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

off 9.4 – 20

默认值自 PostgreSQL 9.4 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.14 错误处理 本站手册 官方原文

本版译文与 PostgreSQL 12 完全一致,下面就是同一段文字。

如果设置为关(off),PostgreSQL在将修改的数据文件刷新到文件系统失败时,将引发PANIC级错误。 这样会导致数据库服务器崩溃。这个参数只能在服务器启动时被设置。

在某些操作系统上,回写失败后,内核页面缓存中的数据状态未知。 在某些情况下,它可能已被完全遗忘,因此重试不安全;第二次尝试可能报告为成功,而事实上数据已丢失。在此类情形下,避免数据丢失的唯一方法是在报告任何故障后从WAL中恢复,最好是在调查了故障的根本原因并更换了任何有故障的硬件之后。

如果设置为开(on),PostgreSQL将报告错误,但会继续运行,以便可以在以后的检查点中重试数据刷新操作。 仅在调查操作系统假如回写失败时对缓冲数据的处理方式的情况下,才将其设置为开(on)。

机制详解

设置数据文件同步失败后是否继续运行。该值在服务器启动时固定,修改后必须重启。

数据文件 fsync 失败后,默认认为 shared buffers 可能已经不一致并触发 PANIC,让崩溃恢复重建状态。继续运行可能丢失对脏页的认知,只适合内核同步语义能保证安全重试的特定平台。

应把 data_sync_retry 与 restart_after_crash、recovery_init_sync_method、fsync 一起监控和变更。先在对应角色与真实负载上验证,再按其 postmaster context 选择会话修改、reload 或 restart;历史默认值并不等于当前有效值。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    根据故障模型与实际观测决定是否修改 data_sync_retry;先做会话/测试环境验证,再按 context 安全部署并保留回滚值。

  • OLAP分析与批处理

    在长查询、批任务和峰值并发下单独验证,避免把 OLTP 经验直接套用到分析节点。

  • 小规格低配实例与开发机

    没有明确问题就保持默认;小规格环境更应避免以全局兼容性或故障策略换取微小收益。

常见问题

  • 在 fsync 失败会丢失脏页认知的平台上开启。
  • 不隔离坏存储就把 I/O 错误当成暂时故障。
  • 为表面可用性牺牲数据正确性。
  • 把 data_sync_retry 的启动默认值误当成当前有效值。
  • 忽略 postmaster context 对生效时机的约束。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 9.4 ← 9.3 新增此参数

    PostgreSQL 9.4 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.4 off 重启生效 布尔
9.5 off 重启生效 布尔
9.6 off 重启生效 布尔
10 off 重启生效 布尔
11 off 重启生效 布尔
12 off 重启生效 布尔
13 off 重启生效 布尔
14 off 重启生效 布尔
15 off 重启生效 布尔
16 off 重启生效 布尔
17 off 重启生效 布尔
18 off 重启生效 布尔
19 off 重启生效 布尔
20 沿用 off 重启生效 布尔

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Error Handling 错误处理 4 个
data_sync_retry 布尔 重启生效 off
设置数据文件同步失败后是否继续运行。 现存
exit_on_error 布尔 会话 off
发生任何错误后终止会话。 现存
recovery_init_sync_method 枚举 重载生效 fsync
设置崩溃恢复前同步数据目录的方法。 现存
restart_after_crash 布尔 重载生效 on
后端崩溃后重新初始化服务器。 现存