异步备升主数据找回能力

可获得性

本特性自openGauss 6.0.0-RC1版本开始引入。

特性简介

主机发生异常后,如果仅有异步备可以升主,旧主可能存在已提交的事务未同步到备机,该功能旨在找回这部分数据,通过逻辑解码的方式提供给用户,再由用户自行处理。

客户价值

当部署方式是多中心,且只有主中心的备机是同步备,而异地部署的备机都是采用异步同步的方式,如果发生城市级故障,主机和同步备均不可用,则需要将异步备升主。这种场景下,旧主可能存在已提交的事务还未同步到异步备。该功能旨在找回这部分数据,实现系统RPO接近为零。

特性描述

该特性通过工具gs_retrieve实现,实际使用上需要指定新旧主的IP、端口、连接用户名和密码等,在旧主恢复之后,将未同步的数据通过逻辑解码的方式找回。

gs_retrieve整体流程是通过解析xlog获取所有待解码的事务,获取创建逻辑复制槽所需的restart_lsn和confirmed_flush,以便构建一致性快照,从而调用内置函数来创建逻辑复制槽和解码,最终返回解码数据。

特性增强

无。

特性约束

  • gs_retrieve工具仅支持在旧主所在机器上使用,新主可在不同机器。

  • 旧主恢复之后建议将autovacuum设置为off,防止元数据的历史版本被回收清理。

  • 解码范围内存在DDL的情况下,可能由于元数据的历史版本被清理而无法正常解码。通过force方式解码,可能会丢失数据。

  • 当旧主xlog堆积过多,导致还没同步到异步备的日志被回收时,可能无法获取完整的数据。

  • 在gs_retrieve工具运行过程中,如果旧主执行相关IUD业务,同样会被解码出来。

依赖关系

依赖逻辑解码特性。

意见反馈
编组 3备份
    openGauss 2024-04-27 00:42:12
    取消