我在一台主机上创建了一个 PostgreSQL 集群,并通过 NFS 共享将它共享给另一台主机。即使我可以使用第二台主机访问集群,但无法使用或登录数据库。是否可以由多个主机使用单个集群?所以我可以将它作为单个主机介绍给客户端,如果用于创建集群的第一台主机关闭,另一台主机会保持集群运行,因此客户端不会面临与该集群的任何连接或可访问性问题。
我在一台主机上创建了一个 PostgreSQL 集群,并通过 NFS 共享将它共享给另一台主机。即使我可以使用第二台主机访问集群,但无法使用或登录数据库。是否可以由多个主机使用单个集群?所以我可以将它作为单个主机介绍给客户端,如果用于创建集群的第一台主机关闭,另一台主机会保持集群运行,因此客户端不会面临与该集群的任何连接或可访问性问题。
不,您不能通过 NFS 共享数据目录。
如果没有其他原因,这是一个可怕的想法,因为
fsync()
假设只有一个缓冲区可以连接到运行在发出 fsync 的单个主机上的输入设备。它只确保从您运行它的主机刷新缓冲区。没有办法解决这个问题。您不能与两台使用fsync
.除了所有的缓冲复杂性之外,还有一些支持的机制来集群 PostgreSQL。我建议查看“高可用性、负载平衡和复制”一章,并查看wiki 页面“复制、集群和连接池”。
将 PostgreSQL 数据库与共享磁盘一起使用,这根本不是一个好主意。您的数据库可能会崩溃并且您将丢失数据。
如果您需要基于共享磁盘的 HA 解决方案(如 RedHat Cluster Suite),请通过您的存储设备执行此操作,创建一个 LUN 并将其映射到两台服务器上。
看看 EDB 网站上的这个文档:
提供更多细节以获得更好的解决方案。