达梦数据迁移平台DFM的AGNET不能自启动问题;
环境简介:
DMDFM V5.02.12
操作系统:kylin v10 sp3
问题现象:
通过 DMDFM 远程部署节点 195 上的 DRSAgent ,已选择 【注册系统服务】,部署用户为 dmdba, 但在节点 195 系统上无 Agent 自启动系统服务存在,导致 DRSAgent 需要手动启动。
查看DMDFM 服务端上 DFMAGENT 服务注册过程如下:
root用户执行如下命令注册系统服务
# /home/dmdba/dmdrs5/scripts/root/root_installer.sh
查看root_installer.sh文件内容如下,需要使用service_installer.sh文件
[dmdba@DSCMON dm8]$ cat /home/dmdba/dmdrs5/scripts/root/root_installer.sh
#!/bin/sh
#run by root
RUID=`/usr/bin/id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`
if [ ${RUID} != "0" ]
then
echo "必须以 root身份执行此脚本!"
exit 1
fi
echo "创建DmServiceDFDB服务"
"/home/dmdba/dmdrs5/scripts/root/service_installer.sh" -s "/home/dmdba/dmdrs5/db/bin/DmServiceDFDB"
echo "创建DfmWebService服务"
"/home/dmdba/dmdrs5/scripts/root/service_installer.sh" -s "/home/dmdba/dmdrs5/web/DfmWebService"
echo "创建DfmAgentService服务"
"/home/dmdba/dmdrs5/scripts/root/service_installer.sh" -s "/home/dmdba/dmdrs5/agent/DfmAgentService"
echo "启动DmServiceDFDB服务"
systemctl start DmServiceDFDB.service
echo "启动DfmWebService服务"
systemctl start DfmWebService.service
echo "启动DfmAgentService服务"
systemctl start DfmAgentService.service
其执行输出如下:
[root@DSCMON drs]# /home/dmdba/dmdrs5/scripts/root/root_installer.sh
创建DmServiceDFDB服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDFDB.service → /usr/lib/systemd/system/DmServiceDFDB.service.
创建服务(DmServiceDFDB)完成
创建DfmWebService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DfmWebService.service → /usr/lib/systemd/system/DfmWebService.service.
创建服务(DfmWebService)完成
创建DfmAgentService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DfmAgentService.service → /usr/lib/systemd/system/DfmAgentService.service.
创建服务(DfmAgentService)完成
远端 agent 目录下的service_installer.sh 内容为空。但在 DMDFM 服务端上service_installer.sh 有内容,且 DFMAgent 服务注册正常,能自启动。
[root@DMDSC-1 agent]# ll service_installer.sh
-rwxr--r-- 1 dmdba dmdba 0 7月 5 20:51 service_installer.sh
分析结论:目标端上service_installer.sh 为空导致 DFMAgent 注册系统服务失败
将各个节点的原文件DfmAgentServiceagent_XXX 重命名为通用名,便于批量更改;
注意:以root 用户执行如下操作:
# 查看当前节点的启动文件脚本名
ll /home/dmdba/dmdrs/agent/DfmAgentServiceagent*
如: /home/dmdba/dmdrs/agent/DfmAgentServiceagent_195
# 复制重命名为标准文件名并授权
cp /home/dmdba/dmdrs/agent/DfmAgentServiceagent_195 /home/dmdba/dmdrs/agent/DfmAgentServiceagent
chown dmdba:dmdba /home/dmdba/dmdrs/agent/DfmAgentServiceagent
创建systemd服务单元文件:
# vi /usr/lib/systemd/system/DfmAgentServiceagent.service
[Unit]
Description=DfmAgentServiceagent
[Service]
Type=forking
PIDFile=/home/dmdba/dmdrs/agent/pids/DfmAgentServiceagent.pid
ExecStart=/home/dmdba/dmdrs/agent/DfmAgentServiceagent start
ExecReload=/home/dmdba/dmdrs/agent/DfmAgentServiceagent restart
ExecStop=/home/dmdba/dmdrs/agent/DfmAgentServiceagent stop
PrivateTmp=true
User=dmdba
[Install]
WantedBy=multi-user.target
生效命令
# 重载systemd配置
systemctl daemon-reload
# 清理残留pid文件
rm -f /home/dmdba/dmdrs/agent/pids/*.pid
# 重启服务
systemctl restart DfmAgentServiceagent.service
# 查看状态
systemctl status DfmAgentServiceagent.service
# 设置为自动启动
systemctl enable DfmAgentServiceagent.service
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作