我在 SLES 12 SP3 系统上有一个 postgresql 数据库,其服务由 systemd 通过标准单元文件管理。我想在失败时自动重启服务,所以创建目录/etc/systemd/system/postgresql.service.d/psql.conf,内容如下。
[Service]
Restart=on-failure
这很好用,我很高兴。现在需要设置一个高可用性系统,其中一个从站处于备用状态,以防主站发生故障。从事 HA 工作的团队已请求在设置集群时禁用重新启动服务标志,因为他们将监视服务并在 postgresql 停止时故障转移到从属服务器。所以我创建了一个文件/etc/systemd/system/potgresqlHA.service,它是现有单元文件的副本,并且 HA 团队开始使用这个文件。
systemctl start/stop/restart/status postgresqlHA
现在有一个脚本可以在请求时备份数据库。此脚本在备份之前检查 postgresql 的状态,以确保服务正在运行。
systemctl status postgresql
这在未设置集群时效果很好。但是在设置集群时,服务的状态会停止,因为 postgresqlHA 是启动的服务。
无论正在运行的数据库服务如何,如何使备份脚本工作?我可以在其中一个单元文件中配置一些东西以使其更易于管理吗?
在其他脚本中检查其他一些服务(apache2、tomcat 等)的状态时,我遇到了同样的问题。
谢谢, 阿布舍克