在我们之前的文章——之一pgBackRest:一个伟大的备份解决方案,一年中增长我们讨论了pgBackRest安装和备份,快速恢复命令。最好能有一个恢复活动计划按照业务需求,以便备份验证并提供关键指标恢复时间。在这篇文章中,我们将查看一些恢复场景有关pgBackRest备份工具。

场景

  • 恢复备份在不同的主机上
  • 恢复一个数据库集群的Postgres
  • 恢复备份到一个特定的时间点
  • 恢复备份在一个不同的主机开始流备用
  • 恢复只有δ的变化

继续测试上述恢复场景中,我们需要以下几点:

  • pgBackRest相同版本的安装在源和目标机器
  • 我库信息。e,我们存储备份的地方可能是S3, GCS, Azure桶,或者专门的存储。
  • 目标服务器应该主机通过TLS或SSH访问存储库

对于测试上述场景,我有一个PostgreSQL主服务器,两个副本服务器,存储库服务器和备用服务器。

我的库信息:和增加备份存储库中可用。

恢复备份在不同的主机上

在这个场景中,我们将测试备份恢复到备用服务器。我的备用服务器的配置信息的存储库pgBackRest主机,存储库路径,库主机用户,并要求PostgreSQL版本安装和访问存储库。

pgBackRest完全由命令行参数可以使用但是有一个配置文件有更多便利。下面是我的备用服务器pgBackRest配置文件。

我将继续和恢复备份可用在我库到备用服务器。默认情况下,它恢复存储库中可用的最新备份集。

我们需要确保archive_command改变到另一个路径或禁用防止Postgres档案写入现有的回购在备用服务器上开始。

恢复一个数据库集群的Postgres

在这个场景中,我们将只恢复一个数据库在备用服务器上。我下面提到的数据库在我的主数据库。

主服务器:

我们将恢复只有Percona数据库备用服务器。雷竞技下载官网

开始Postgres集群备用服务器并检查Percona数据库。雷竞技下载官网

恢复特定数据库后你仍然可以看到其他用户数据库。然而,当用户将尝试连接到(即除了与-db-include选项指定的数据库)连接不会发生,用户会得到一个致命错误:“致命的:关系映射文件”基地/ xx / pg_filenode。地图包含无效数据。

恢复备份到一个特定的时间点

与pgBackRest时间点恢复是可能的,考虑一个表或数据库已经下降,需要恢复。在这种情况下,我们需要把事件的时间戳,pgBackRest备份和归档。

在我的主节点,我有一个名为pitr在Percona数据库的表。雷竞技下载官网此表已在时间戳2022-11-04 14:24:32.231309 + 05:30下降。

通过使用pgBackRest恢复选项恢复类型命令我们可以实现Point-In-Time-Recovery,默认情况下这个类型恢复档案的流,在这个场景中,我们将指定表的确切时间戳来恢复,xid和lsn也可以提供给类型命令。

启动Postgres集群并检查pitr表。

恢复备份在一个不同的主机开始流备用

这种方法将有用的情况下,我们需要重建坠毁的备用节点或添加一个新的备用现有集群Postgres。

主服务器:

两个副本服务器连接到主服务器。

让我们继续,使用pgBackRest添加另一个副本。

复制服务器启动并运行,检查pg_stat_replication主节点。

恢复只有δ的变化

三角洲选项允许pgBackRest自动确定哪些数据库集群目录中的文件可以保留,哪些需要从备份中恢复,认为这种情况我们已经有一个备用服务器上的备份恢复,现在我们将再次执行δ在备用服务器上恢复得到δ数据备份自上次恢复。

总的来说,pgBackRest是一个非常流行的开源数据库备份工具可供PostgreSQL。我们也鼓励你尝试我们的产品raybet52 ,因为pgBackRest工具是我们分布备份的一部分。

订阅
通知的
客人

3评论
最古老的
最新的 大多数投票
内联反馈
查看所有评论
Abdul细哔叽

嗨@Bhargav,祝贺你的第一个博客。我已经通过,它有很多数据与pgbackrest效用玩耍。这将有利于dba在常规备份操作。谢谢你的努力。

马克斯

这是一个常见的用例企业刷新预生产系统从生产上定期的基础上,例如每天。备份完成了迄今为止在预生产系统也应该保持能够做一个时间点恢复之前如果需要刷新。

我想实现这个通过恢复备份在不同主机上“定期。我总是得到”“错误:[045]:细胞膜文件已经存在于repo1存档用不同的校验和”从“archive-push”当我使用相同的repo1之后。
我必须重新创建pgbackrest节与一个不同的名称来得到一个新的空repo1解决这个错误。这也意味着我得重新配置pgbackrest设置使用旧节之前恢复。不是很好。

任何想法吗?

Đại Nguyễn

任何人都可以解释δ在pgBackRest是什么和给我的用例使用三角洲选项?,我还是不明白三角洲选项虽然我读过一些文档

非常感谢你