如何执行 GreenPlum 6.x 备份和恢复
Posted
技术标签:
【中文标题】如何执行 GreenPlum 6.x 备份和恢复【英文标题】:How to perform GreenPlum 6.x Backup & Recovery 【发布时间】:2020-08-24 16:01:57 【问题描述】:我正在使用 GreenPlum 6.x,在执行备份和恢复时遇到问题。我们是否有任何工具可以对整个集群进行物理备份,例如 Postgres 的 pgbackrest,进一步我们如何清除 master 和每个段的 WAL,因为我们无法获取整个集群的 pg_basebackup。
【问题讨论】:
【参考方案1】:您使用的是开源 Greenplum 6 还是付费版本?如果付费,您可以下载 gpbackup/gprestore 并行备份实用程序(独立于数据库软件本身),它将通过多种选项备份整个集群。如果使用开源,您的选择几乎仅限于 pgdump/pgdumpall。
据我所知,没有办法清除 WAL 日志。在 Greenplum 6 中,WAL 日志用于使所有单独的 postgres 引擎在整个集群中保持同步。您不想单独清除这些。
吉姆·麦肯 VMware Tanzu 数据工程师
【讨论】:
我们正在使用开源GreenPlum,并且我们的挂载点每天都在增加,所以我们如何维护WAL日志【参考方案2】:我想更好地了解您在执行备份和恢复时遇到的问题。
对于 Greenplum 数据库的开源用户,gpbackup/gprestore 实用程序可以从 Github 存储库的发布页面下载:
https://github.com/greenplum-db/gpbackup/releases
v1.19.0 是最新的。
目前还没有针对 Greenplum Database 6.x 的基于 pg_basebackup / WAL 的备份/恢复解决方案
【讨论】:
【参考方案3】:WAL 日志会定期从 master 和 segment 中单独清除(因为它们被复制到镜像和刷新)。因此,无需手动清除。你有没有研究过为什么 WAL 日志没有被清除?原因之一可能是集群中的镜像已关闭。如果发生这种情况,WAL 将继续安装在主节点上并且不会被清除。对 WAL 正在为其构建的 master 或 segment 执行 select * from pg_replication_slots;
以了解更多信息。
如果 WAL 构建的原因是由于复制槽而由于某种原因镜像关闭,可以使用 guc max_slot_wal_keep_size
配置 WAL 应该消耗的最大大小,之后复制槽将被禁用并且不会为 WAL 消耗更多磁盘空间.
【讨论】:
目前我们没有任何镜像,我们作为一个独立的 GP 集群运行,没有任何备用/镜像,有什么安全的方法可以直接丢弃数据库服务器上的 WAL 文件。 旧 WAL 在没有镜像的检查点上被自动删除。所以,我不确定为什么要手动丢弃 WAL 文件,手动删除 WAL 文件是不安全的。检查您看到了多少 WAL 文件,这些文件是否根本没有随着工作负载而被回收,或者 WAL 文件的数量一直在增长,这将很有帮助。以上是关于如何执行 GreenPlum 6.x 备份和恢复的主要内容,如果未能解决你的问题,请参考以下文章
出于灾难恢复的目的,如何将 Greenplum DB 复制到另一个数据中心?