按照标准的Postgres documentation
与普通文件系统备份技术一样,此方法只能支持恢复整个数据库集群,而不是子集。
据此,我了解到无法为集群中的各个数据库设置PITR(例如,一个拥有多个数据库的数据库实例)。如果我的理解不正确,可能问题的下一部分是不相关的,但如果没有,这里是:
理论上我仍然没有遇到问题,因为每个数据库都在生成自己的WAL存档。
这里的问题是:我需要设置多个Postgres clusters,不知怎的,我只有2台RHEL 7.6机器来处理这个问题。我试图将这两台机器上的集群数量减少到只有2.我计划创建多个数据库而不是多个实例来处理客户应用程序。但这意味着我必须牺牲PITS,因为PITR只能在实例/集群级别而不是在数据库级别上执行(根据官方文档)。
请有人帮助澄清我的误解。
你是对的,你只能在PostgreSQL数据库集群上进行PITR,而不能在单个数据库上进行。
完整的数据库集群只有一个WAL流; WAL不会按数据库拆分。
如果这对您有利,请毫不犹豫地在一台机器上运行多个PostgreSQL集群。
运行第二个数据库集群的开销很小。群集占用的最大资源是共享缓冲区,但您希望它只是可用RAM的一小部分。大部分内存应留给所有PostgreSQL集群共享的文件系统缓存。