本文于 31 天前发布,最后更新于 31 天前
一、现象描述
客户在使用达梦数据库后,发现在通过dmdba用户使用DmServiceXXX start方式启动数据库服务后,再通过root用户使用systemctl status DmServiceXXX.service查看服务状态时显示inactive。客户反应怀疑是服务状态出了问题。
dmdba用户执行./DmServiceXXX start 后用./DmServiceXXX status看是running状态,但是用root执行systemctl status DmServiceXXX.service看是inactive状态。
二、分析原因
在 systemd 环境下,可使用 systemctl 命令进行系统服务的管理,但 systemctl 命令只能管理 systemd 环境下的系统服务。
详细用法说明如下:
- systemctl 只能停止由 systemctl 启动的系统服务及相关进程。
- systemctl 只能查询由 systemctl 启用/停止的系统服务的状态。
- systemctl 只能启用/禁用 systemd 环境下的系统服务。
- DMDSC 环境下,使用 systemctl 命令停止集群中的节点服务时,必须依次停止各个节点服务,即仅当一个服务成功停止后才能停止下一个服务。
所以上述现象是正常的,其他情况可咨询系统管理员。
三、总结
达梦数据库的服务启停最好保持前后一致,都用DmServiceXXX start/stop的方式,或者都用systemctl start/stop DmServiceXXX.service,以免出现查询状态与实际情况不符的现象。
推荐使用dmdba用户进行启停,即:DmServiceXXX start/stop。