默认情况下,后备服务器会尽快恢复来自于主服务器的 WAL 记录。
有一份数据的延时拷贝是有用的,它能提供机会纠正数据丢失错误。
这个参数允许你将恢复延迟一段固定的时间,如果没有指定单位则以毫秒为单位。
例如,如果你设置这个参数为5min,
只有当后备机上的系统时间超过主服务器报告的提交时间至少5分钟时,
后备机才会重放每个事务提交。
有可能服务器之间的复制延迟会超过这个参数的值,
在这种情况下则不会增加延迟。注意延迟是根据主服务器上写 WAL
的时间戳以及后备机上的当前时间来计算。
由于网络延迟或者级联复制配置导致的传输延迟可能会显著地减少实际等待时间。
如果主服务器和后备机上的系统时钟不同步,这会导致恢复比预期的更早应用记录。
但这不是一个主要问题,因为这个参数有用的设置比服务器之间的典型时间偏差要大得多。
延迟只发生在事务提交的WAL记录上。其他记录会被尽快重放,这不是一个问题,
因为MVCC可见性规则确保它们的效果在应用相应的提交记录之前不可见。
一旦恢复中的数据库达到一致的状态,延迟就会发生,直到备用数据库被提升或触发。
之后,备用服务器将结束恢复,而不进一步等待。
这个参数的目的是和流复制部署一起使用,但是,如果指定了该参数,
所有的情况下都会遵守它。同步复制不会受到这个设置的影响,
因为还没有任何设置请求同步应用事务提交。使用这个特性也会让
hot_standby_feedback被延迟,这会导致主服务器的膨胀,
两者一起使用时要小心。