环境

系统平台:银河麒麟 (X86_64)
版本:4.5.10

症状

服务器重启后,瀚高数据库服务未随系统自动启动成功。

问题原因

服务器启动过程中,操作系统默认的服务启动顺序未能满足数据库依赖条件。具体原因为:数据库服务(hgdb-4.5.service)启动时,其依赖的外部数据盘(如/dbdata)尚未完成文件系统挂载,导致数据库进程因找不到数据目录而启动失败。

解决方案

查看数据库服务状态

操作命令

systemctl status hgdb-4.5.service

示例
在这里插入图片描述
结果判断

  • (Loaded行)应存在enabled 表示服务已配置开机自启
  • 状态(Active行)显示为Active: failed,并且报错信息为pg_ctl: 目录 “/dbdata/highgo/data” 不存在

解决方案

修改数据库的systemd服务配置文件,强制数据库服务在本地文件系统(Local File System)和远程文件系统(Remote File System)完全挂载后才启动,确保数据目录已就绪。

  1. 编辑服务文件
vi /usr/lib/systemd/system/hgdb-4.5.service
  1. 修改[Unit]段落
    在After=及Requires指令中增加local-fs.target和remote-fs.target。

示例

[Unit]
Description=hgdb
Requires= network.target local-fs.target remote-fs.target
After=network.target local-fs.target remote-fs.target
  1. 重新加载配置并重启
# 重新加载systemd配置
systemctl daemon-reload

# 尝试手动启动服务
systemctl start hgdb-4.5.service

# 检查服务状态
systemctl status hgdb-4.5.service

结果判断

  • 执行systemctl status hgdb-4.5.service后,状态应显示为Active: active (running)。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐