我是 PostgreSQL 新手,所以如果我的问题听起来很愚蠢,请忽略。
想象一下,我们在 PostgreSQL 中有三个数据库,TRUNCATE
一个小时前有人错误地在其中一个数据库上运行了一个命令。现在我们想单独为那个数据库做一个 PITR,因为只有一个数据库存在问题。
在 PostgreSQL 中是否可以为一个特定的数据库执行 PITR,或者它只能在实例级别发生?
我阅读了Continuous Archiving and Point-in-Time Recovery (PITR)的文档。看起来它只能在实例级别完成(我想我们在 PostgreSQL 世界中将实例称为“数据库集群”,我来自 SQL Server 世界)。
与普通文件系统备份技术一样,这种方法只能支持整个数据库集群的恢复,而不是一个子集。
如果 PITR 在 DB 级别是不可能的,那么 Prod DBA 如何处理这种情况?
最后一件事,我有一个带有多个 DB 的测试服务器,如果 PITR 在 DB 级别是可能的,那么请分享我的步骤,以便我可以自己测试它。
我主要对受支持的 Postgres 版本感兴趣。我的测试服务器是 PostgreSQL 9.6.16。
在另一台服务器上恢复您的备份。执行时间点恢复。导出您感兴趣的数据/表格并将它们导入您的生产数据库。
这通常是它的完成方式。您不想丢失所有其他数据,而是从另一台服务器上的还原中挑选您需要的数据。