内容提要
PostgreSQL即时恢复并非备份的替代品,而是基于内核规则在系统无法启动时快速交付可验证数据。它强调数据可解释性而非可用性,在物理结构完整和规则一致的前提下工作,与追求完整性的备份恢复互补,核心在于明确边界并尽早停止。
延伸解读
核心区别:可解释性与可用性
文章指出,PostgreSQL内核承诺的是数据可解释性,而非系统可用性。备份恢复追求系统状态的完整重建,而即时恢复则基于内核规则的一致性,在系统无法启动时快速交付可验证的数据。理解这一区别,有助于在故障场景中合理选择恢复策略。
即时恢复的边界条件
即时恢复并非无限制的“抢救”,它受限于两个边界:物理结构是否仍符合PostgreSQL定义,以及解释规则能否保持全局一致。一旦数据无法被识别为有效页或需要引入例外规则,即时恢复即应停止,避免越界操作导致数据失真。
与备份恢复的分工
即时恢复与备份恢复并非对立,而是互补。备份恢复负责在条件完备时准确、完整地恢复系统状态;即时恢复则侧重于在系统重建前尽早交付可证明准确的数据。两者目标不同,但共同构成完整的恢复策略。
Q&A
PostgreSQL即时恢复与备份恢复的根本区别是什么?
备份恢复基于系统能否有序重建的前提,追求最终状态的完整性和可审计性;而即时恢复基于内核规则能否一致应用的前提,关注在系统完全重建前尽早交付可验证的数据。
PostgreSQL即时恢复为什么不是备份的替代品?
因为即时恢复和备份恢复承担不同的责任:备份恢复负责系统级的完整恢复,而即时恢复在系统重建前提供可证明准确的数据。两者互补,即时恢复不能替代备份恢复的完整性和可审计性。
PostgreSQL内核承诺的是数据可解释性还是可用性?
PostgreSQL承诺的是数据可解释性,即只要内核规则能一致应用,数据就是可解释的;它从未承诺系统总是可用或能恢复完整数据。
即时恢复在什么条件下可以工作?
即时恢复需要物理结构仍可被PostgreSQL识别(如WAL中的FPW可访问、数据文件未完全损坏、数据字典基本完整),且解释规则能保持全局一致性。
即时恢复在哪些情况下应该停止?
当无法识别有效页面和记录,或需要引入例外规则和临时假设来使数据合理时,即时恢复应停止,因为此时已超出PostgreSQL的规则范围。
为什么说即时恢复是‘即时’的?
因为即时恢复能更早地识别不可行的部分并停止,从而快速处理可行的部分,避免因‘也许还能试试’而拖延决策。