类型: | integer |
默认: | 0 |
最低限度: | 0 |
最大: | 2147483647 |
上下文: | sighup |
重新开始: | false |
弃用: | 12 |
指定在后备服务器需要为流复制获取日志段文件的情况下,pg_wal目录下所能保留的过去日志文件段的最小数目。每个段通常是 16 兆字节。如果一个连接到发送服务器的后备服务器落后了超过wal_keep_segments
个段,发送服务器可以移除一个后备机仍然需要的 WAL 段,在这种情况下复制连接将被中断。最终结果是下行连接也将最终失败(不过,如果在使用 WAL 归档,后备服务器可以通过从归档获取段来恢复)。
只设置pg_wal中保留的文件段的最小数目;系统可能需要为 WAL 归档或从一个检查点恢复保留更多段。如果wal_keep_segments
为零(默认值), 更多的空间来 存放WAL归档或从一个检查点恢复。如果wal_keep_segments是零(缺省), 系统不会为后备目的保留任何多余的段,因此后备服务器可用的旧 WAL 段的数量是一个上个检查点位置和 WAL 归档状态的函数。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。
建议 [EN]
… if using replication. Minimum number of WAL log segments to keep in order to support re-synchronizing streaming standby servers which have fallen behind or for an initial sync, a good rule of thumb is 4, or however many segments you go through in 30s, whichever is higher. This is in addition to max_wal_size, so make sure you have enough disk space. Not required if you are archiving logs.