我设置了一个主/从Postgresql
(13.4)组,1个主和1个从,使用WAL热备用。(参考:https ://postgresql.org/docs/current/warm-standby.html#STANDBY-SERVER-SETUP )
从站不同步,并且由于主站上不再存在 WAL 而无法恢复,有关详细信息,请参阅另一个问题:Postgresql - 在与使用 WAL 的主站不同步后恢复从站
现在,我正在重新做奴隶。master上有3.7T数据,而且增长很快,大概每天30Gb ?
为了避免从站再次不同步,我正在尝试增加 WAL 保留。
这是我打算做的事情:
max_wal_size = 20Gb
min_wal_size = 10GB
问题:
- A-1。上述参数值是否正确?
- A-2。增加这些参数是否有不好的副作用?
- A-3。我只需要将这 2 个参数应用到 master 上,对吗?
- 乙。我应该配置更多参数吗?
- C. _ 有没有更好的方法来避免从站不同步?
谢谢你。
不,这根本没有帮助。
您有三个备选方案:
增加到
wal_keep_size
足够大的值这是一个简单但粗略的解决方案,因为它使主节点始终保留一定数量的 WAL,无论它是太多还是不够(因为停机时间比预期的要长)。
设置一个
restore_command
on the,这样它就可以使用 WAL 归档来赶上如果您有 WAL 存档,这可能是最佳选择。
使用物理复制槽
这样的对象标记了 WAL 流中的某个位置,并防止主服务器丢弃备用服务器仍需要的 WAL。虽然这是一个优雅的解决方案,但如果备用服务器停机时间过长,这将承担破坏主服务器的风险。因此,在这种情况下监控复制和/或设置
max_slot_wal_keep_size
对保留在主节点上的 WAL 数量设置上限是一个好主意。