更新时间:2026-07-28 GMT+08:00
分享

按需回放

按需回放(On-demand Recovery,ODR),无需真正回放(恢复页面数据),只需构建完毕页面的日志链,即可完成故障恢复。由于页面尚未真正恢复,因此需要限制使用场景。当前仅支持集中式开启按需回放,下面介绍如何使用本特性。

  • 开启极致RTO,即配置成功GUC参数recovery_parse_workers或者recovery_redo_workers大于1。极致RTO会启动recovery_parse_workers * (recovery_redo_workers + 2) + 5个回放线程。按需回放在此基础上,再额外启动recovery_parse_workers * recovery_redo_workers个日志链构建线程。因此,总的回放线程数量recovery_parallelism = recovery_parse_workers * (2 * recovery_redo_workers + 2) + 5。
  • GUC参数wal_level级别设置为hot_standby或以上。
  • GUC参数hot_standby设置为off,不允许备机接受连接和查询,相关依赖于hot_standby开启的功能都不支持。

在满足上述3个条件的前提下,打开按需回放功能总开关,即配置GUC参数enable_ondemand_rto为on,即可使用本特性。由于本特性主要面向集中式大容量IO受限场景,因此默认不开启。上述3个条件任意一个不满足,将强制关闭enable_ondemand_rto。

按需回放相关GUC配置参数还有ondemand_waiting_queue_mem_size、ondemand_always_redo、recovery_redo_workers、base_page_saved_interval、standby_recycle_interval、max_standby_lsn_info_size和standby_force_recycle_ratio。

相关文档