wal_receiver_status_interval
一个服务器参数,用于确定 WAL 接收器发送更新的频率。
wal_receiver_status_interval 是一个 配置参数,它指定了 WAL 接收器向主服务器发送复制进度更新的最小频率。
wal_receiver_status_interval 在 PostgreSQL 9.1 中添加。
默认值
wal_receiver_status_interval 的默认值是:10s。
将 wal_receiver_status_interval 设置为 0 会禁用 *常规* 更新通知的传输,但每次写入或刷新位置更改时仍会发送通知。
用法
正常情况下,WAL 接收器在处理数据时,会向主 WAL 发送方发送包含当前重放状态详细信息的通知。
此信息可以在(主服务器上)从 pg_stat_replication 的以下字段中检索:
sent_lsn
write_lsn
flush_lsn
replay_lsn
write_lag
flush_lag
replay_lag
按 PostgreSQL 版本详细信息
wal_receiver_status_interval (PostgreSQL 19)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 18)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 17)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 16)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 15)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 14)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 13)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 12)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向发送服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 11)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 10)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.6)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.5)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.4)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.3)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.2)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
文档: wal_receiver_status_interval
wal_receiver_status_interval (PostgreSQL 9.1)
| 设置 |
10 |
| 单位 |
s |
| 类别 |
复制 / 备用服务器 |
| 简短描述 |
设置 WAL 接收器向主服务器报告状态的最大间隔。 |
| 扩展描述 |
|
| 上下文 |
sighup |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
0 |
| 最大值 |
2147483 |
| 枚举值 |
|
| 启动值 |
10 |
| 重置值 |
10 |
| 源文件 |
|
| 源行 |
|
文档: wal_receiver_status_interval
变更历史
示例
在 日志级别 DEBUG2 下,使用 wal_receiver_status_interval 的默认值 10s,在备用服务器上可以看到以下输出:
[2023-04-14 09:32:48 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0
[2023-04-14 09:32:58 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0 (reply requested)
[2023-04-14 09:32:58 UTC] DEBUG: 00000: sendtime 2023-04-14 09:32:58.107448+00 receipttime 2023-04-14 09:32:58.107468+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:33:08 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0
[2023-04-14 09:33:18 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0
[2023-04-14 09:33:28 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0 (reply requested)
[2023-04-14 09:33:28 UTC] DEBUG: 00000: sendtime 2023-04-14 09:33:28.118033+00 receipttime 2023-04-14 09:33:28.118074+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:33:38 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0
[2023-04-14 09:33:48 UTC] DEBUG: 00000: sending write 0/302DFE0 flush 0/302DFE0 apply 0/302DFE0
将 wal_receiver_status_interval 设置为 0 并不会禁用复制进度更新,但其频率会大大降低且不规律。
[2023-04-14 09:37:41 UTC] DEBUG: 00000: sending write 0/302E0A8 flush 0/302E0A8 apply 0/302E0A8
[2023-04-14 09:37:46 UTC] DEBUG: 00000: sendtime 2023-04-14 09:37:46.94642+00 receipttime 2023-04-14 09:37:46.946481+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:37:46 UTC] DEBUG: 00000: sending write 0/302E0E0 flush 0/302E0E0 apply 0/302E0E0
[2023-04-14 09:37:54 UTC] LOG: 00000: restartpoint starting: time
[2023-04-14 09:37:58 UTC] LOG: 00000: restartpoint complete: wrote 46 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=4.311 s, sync=0.001 s, total=4.318 s; sync files=0, longest=0.000 s, average=0.000 s; distance=16567 kB, estimate=16567 kB; lsn=0/302E030, redo lsn=0/302DFE0
[2023-04-14 09:37:58 UTC] LOG: 00000: recovery restart point at 0/302DFE0
[2023-04-14 09:38:16 UTC] DEBUG: 00000: sending write 0/302E0E0 flush 0/302E0E0 apply 0/302E0E0 (reply requested)
[2023-04-14 09:38:16 UTC] DEBUG: 00000: sendtime 2023-04-14 09:38:16.962033+00 receipttime 2023-04-14 09:38:16.96206+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:38:46 UTC] DEBUG: 00000: sendtime 2023-04-14 09:38:46.988658+00 receipttime 2023-04-14 09:38:46.988727+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:38:46 UTC] DEBUG: 00000: sending write 0/302E0E0 flush 0/302E0E0 apply 0/302E0E0
[2023-04-14 09:39:16 UTC] DEBUG: 00000: sendtime 2023-04-14 09:39:16.991061+00 receipttime 2023-04-14 09:39:16.991129+00 replication apply delay 0 ms transfer latency 1 ms
[2023-04-14 09:39:16 UTC] DEBUG: 00000: sending write 0/302E0E0 flush 0/302E0E0 apply 0/302E0E0