postgresql 如何验证Postgres数据库备份未损坏?

lnxxn5zx  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(3)|浏览(160)

是否有一种有效的方法来检查Postgres备份(用于RDSCloudsql等托管服务)是否未损坏?
目前,我们执行此检查的方法之一是通过以下方式:

  • backup启动一个新的数据库,
  • 运行vacuum
  • 如果真空运行成功,则认为备份未损坏
  • 删除测试数据库

这听起来像一个有效的方法和任何更好的解决方案吗?
PS:GCP有这个开源工具可以在他们的终端上测试,但不知道我们如何在托管PG示例上实现或使用它。https://github.com/google/pg_page_verification
提前感谢!

fbcarpbf

fbcarpbf1#

在Google Cloud SQL中,PostgreSQL Page Verification tool会自动在你的备份上运行[1],但如果它让你感觉更舒服,那么你可以自己运行它。
[1][https://cloud.google.com/blog/products/gcp/verifying-postgresql-backups-made-easier-new-open-source-tool](https://cloud.google.com/blog/products/gcp/verifying-postgresql-backups-made-easier-new-open-source-tool)

sg24os4d

sg24os4d2#

对于Amazon RDS,不需要检查损坏。
RDS服务是受管理的,理论上可以保证在创建快照时快照是有效的。
如果您想手动检查完整性,您所概述的过程是一种高级别的可靠方法。
在低级别上,pg_checksums也是检查完整性的好方法(您提到的pg_page_verification工具使用了它)。
免责声明:我知道RDS快照多年来在非常非常罕见的情况下损坏的情况,但它们非常罕见&最终,由于违反SLA而提供了赔偿。
不过,这不应该是一个担心99.95%的时间。

qc6wkl3g

qc6wkl3g3#

要验证RDS快照,只需从中恢复数据库。据我所知,AWS依赖于PostgreSQL数据库的官方工具。
对于数据库备份验证,有pg_verifybackup工具。
pg_verifybackup用于根据备份时服务器生成的backup_manifest检查使用pg_basebackup执行的数据库群集备份的完整性。
使用pg_dump转储数据库,您可以验证如下:cat dump.sql | psql

相关问题