Greenplum 数据库中的时间点恢复
Posted
技术标签:
【中文标题】Greenplum 数据库中的时间点恢复【英文标题】:Point-In-time-recovery in Greenplum Database 【发布时间】:2020-06-01 16:41:55 【问题描述】:我们最近设置了 greenplum。现在主要关注的是为 PITR 设置策略。 Postgres 提供了 PITR 功能,但我对它在 greenplum 中如何工作感到有些困惑,因为每个段都有自己的日志目录和配置文件
【问题讨论】:
Greenplum 没有 PITR。如果有段故障,则镜像进程将接管提供 HA。如果要恢复删除的对象,可以从上次备份中恢复它。请记住,Greenplum 专为分析和数据仓库而设计。 我们将历史/存档数据保存在 greenplum 中,因此如果任何所需的段损坏并且可能需要恢复到某个时间点,则存在风险 这就是 Greenplum 有镜像的原因,也是您安排例行备份的原因。 【参考方案1】:我们最近引入了命名还原点的概念,作为 PITR for greenplum 的构建块。为了使用它,您需要使用目录函数 gp_create_restore_point() 在内部创建跨所有段的集群范围的一致性点。该函数返回每个段和主节点的所有还原点位置()。使用这些恢复点,您将能够在 PITR 集群中配置 recover.conf
为了演示 Greenplum 命名还原点的工作原理,一个新的测试 已添加目录 src/test/gpdb_pitr。测试展示 WAL 归档与命名的还原点一起做 时间点恢复。
如果您对细节最感兴趣,请参考以下两个提交,详细讨论此功能https://github.com/greenplum-db/gpdb/commit/47896cc89b4935199aa7d97043f2b7572a71042b
https://github.com/greenplum-db/gpdb/commit/40e0fd9ce6c7da3921f0b12e55118320204f0f6d
【讨论】:
你们有没有做过任何可以作为这个实用程序的POC的教程?以上是关于Greenplum 数据库中的时间点恢复的主要内容,如果未能解决你的问题,请参考以下文章
出于灾难恢复的目的,如何将 Greenplum DB 复制到另一个数据中心?