背景:
我正在为我的公司开发一个 2 节点高可用性 PostgreSQL 数据库集群。该系统有一个主/备用设置,当主服务器发生故障并且两者都有最新数据时,备用服务器接管主服务器的职责。
这是之前的一个问题,它描述了我试图找到解决方案的确切场景: PostgreSQL 故障转移 - 我应该使用什么工具?
每个解决方案都有在主服务器和备用服务器之间复制数据库的开销。但是,如果我可以在两台服务器之间共享相同的数据位置,则不需要复制。
我正在考虑使用在两台服务器之间共享的高度可靠的 SAS 存储来存储 PostgreSQL 数据。由于在给定时间(使用 pacemaker 故障转移)只有一个 PostgreSQL 实例将运行,因此这应该有效,至少在纸面上。
我的实验:
为了此处的讨论,我在我们的测试实验室确定了两个免费工作站,工作站 A 和工作站 B。
我在工作站 A 和工作站 B 上停止了 PostgreSQL 9.1 进程
我共享了 Workstation-A 的 NFS /var/lib/postgresql 和 /var/log/postgresql 文件夹
我将上述目录安装在 Workstation-B 中的相同位置
我跑了
/etc/init.d/postgresql start
我收到以下错误:
IST FATAL: could not access private key file "server.key": Permission denied
知道如何解决这个问题吗?
我需要将其作为可以针对项目进行评估的概念验证。
我想通了这个问题。这是由于 NAS 文件夹共享不当造成的。我通过使用 /etc/exports 中的这个条目来修复它
分享。
如果有人感兴趣,我设法让共享数据库成功运行。唯一需要通用的文件夹是上面的文件夹。并且两个 PostgreSQL Server 实例都需要具有相同的配置文件才能成功共享数据文件夹。