根据标准Postgres documentation
与普通的文件系统备份技术一样,此方法只能支持还原整个数据库集群,而不能还原子集。
据此,我了解到无法为集群中的单个数据库(也就是一个拥有多个数据库的数据库实例)设置PITR。 如果我的理解不正确,则问题的下一部分可能不相关,但如果不正确,则为:
由于每个数据库都在生成自己的WAL存档,因此在理论上进行设置仍然没有问题。
这里的问题是:我需要设置多个Postgres clusters,以某种方式,我只有2台RHEL 7.6机器来处理此问题。我试图将这2台计算机上的群集数量减少到2个。我计划创建多个数据库而不是多个实例来处理客户应用程序。但这意味着我不得不牺牲PITS,因为PITR只能在实例/集群级别执行,而不能在数据库级别执行(根据官方文档)。
有人可以帮助澄清我的误会吗?
答案 0 :(得分:1)
您是正确的,您只能在PostgreSQL数据库集群上执行PITR,而不能在单个数据库上进行。
整个数据库集群只有一个WAL流;每个数据库不分配WAL。
如果这对您有利,请不要在单个计算机上运行多个PostgreSQL集群。
运行第二个数据库集群几乎没有开销。群集占用的最大资源是共享缓冲区,但是无论如何,您都希望它仅是可用RAM的一小部分。大多数内存应留给所有PostgreSQL群集共享的文件系统缓存。