[openGauss] 极致RTO按需回放
可获得性
本特性自openGauss 5.1.0 版本开始引入。
特性简介
- 支撑资源池化部署下数据库主机重启后快速恢复的场景。
- 支撑资源池化部署下备机加速failover,降低RTO。
- 本特性基于现有极致RTO特性演进而来。
客户价值
资源池化部署下,备机不再回放主机日志。当主机发生故障后,备机从主机最后一次checkpoint位置开始恢复,恢复过程需要很长时间,数据库不可用,严重影响系统可用性。
开启按需回放极致RTO(Recovery Time Object,恢复时间目标),减少了主机故障后数据库不可用的时间,提高了可用性。
特性描述
按需回放极致RTO开关开启后,故障恢复时仅构建恢复所必须的内容,不进行实际回放,之后立即对外提供服务,降低RTO。在对外提供服务后,在后台继续进行日志回放,并由用户需要触发按需回放,保证用户获得数据最新(即结果与未发生故障时前一致)。
特性增强
- 按需回放支持实时构建
- 本特性自openGauss 6.0.0-RC1版本开始引入。
- 按需回放支持实时构建,能够在资源池化集群正常运行阶段就构建恢复所必须的内容,进一步降低RTO。
- 按需回放redo阶段适配部分ddl
- 本特性自openGauss 6.0.0版本开始引入。
- 支持在按需回放redo阶段(即failover完成,新主节点已经对外提供服务,但后台还在继续进行日志回放)执行部分DDL语法。
- 具体而言,本特性支持执行SCHEMA、TABLE、INDEX、VIEW、PROCEDURE的CREATE、DROP、ALTER类型语法,以及DATABASE的ALTER类型语法,其他语法会合理报错。此外本特性支持在按需回放redo阶段执行存储过程,存储过程中包含的语法必须在redo阶段支持语法范围内。
- 由于本特性需要在执行DDL前检索相关数据库实体的所有未回放日志,并完成回放,可能存在DDL执行时间较长的情况。
特性约束
- 本特性仅支持在资源池化部署下使用。
- 在对外提供服务后,数据库仍在后台进行回放,直到全部内容完成后退出回放,该阶段称为“按需回放阶段”。按需回放阶段仅支持部分类型SQL语法(INSERT/UPDATE/DELETE/SELECT/SET/SHOW),该状态请使用pg_controldata工具查询。
- 按需回放阶段禁用autovacuum。
- 实时构建能力仅在备机failover场景生效。
- 当前不支持多备机情况下,优先选择实时构建节点升主。
- 极致RTO按需回放性能会受磁阵环境影响而波动。
依赖关系
无。
详情查看:https://opengauss.org
详情查看:https://docs-opengauss.osinfra.cn