为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.2.70
【操作系统】:
【CPU】:
【问题描述】*:一主两备的主备集群,有一台备库一直报错,守护进程和实例间通信异常,导致守护一直认为实例异常,判断实例故障,但实际是正常的,状态open,数据同步正常。在主库telnet备库端口是通的,备库服务器本身去telnet也是通的,端口是放通的,防火墙关掉也还是一样报错,把守护进程用前台启动,也没有效果,最终监视器看到的就是备库104故障
系统日志有个模块报错
os_prcs_get_name函数主要用于获取进程信息,一般情况下可能是无权限或者进程已不存在,定位进程可以参考如下步骤:
1、查看达梦用户有哪些进程,观察DM相关进程是否已经启动:
# su - dmdba
Last login: Thu Aug 28 12:02:42 CST 2025 on pts/0
$ ps ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
dmdba 1149 1.5 4.0 4892304 326464 ? Sl 21:48 0:01 /home/dmdba/dmdbms/bin/dmserver path=/dmdata/8.1.4.116_pack1/DAMENG/dm.ini -noconsole
dmdba 1162 0.0 0.1 254316 13584 ? Sl 21:48 0:00 /home/dmdba/dmdbms/bin/dmap dmap_ini=/home/dmdba/dmdbms/bin/dmap.ini
dmdba 1898 0.0 0.0 115680 2112 pts/0 S 21:49 0:00 -bash
dmdba 1919 0.0 0.0 155452 1872 pts/0 R+ 21:49 0:00 ps ux
2、/proc/16301/exe为软链接,可以通过命令查看真实执行文件,确认执行文件是否有权限。以我本地的测试环境为例:
$ ls -l /proc/1162/exe
lrwxrwxrwx 1 dmdba dinstall 0 Sep 1 21:48 /proc/1162/exe -> /home/dmdba/8.1.4.116_pack1/bin/dmap
$ ls -l /proc/1149/exe
lrwxrwxrwx 1 dmdba dinstall 0 Sep 1 21:48 /proc/1149/exe -> /home/dmdba/8.1.4.116_pack1/bin/dmserver
可以看到进程1162对应dmap执行文件,1149对应dmserver执行文件。
应该是权限问题,但不清楚啥情况,实例目录给的是dmdba:dinstall,775的权限,解决方法是用root前台启动nohup挂后台
大概率权限问题,把dmserver服务和dmwatcher以及dmap服务都停掉。然后数据库相关目录(实例、软件目录等)给dmdba:dinstall以及755权限,然后用dmdba去启动脚本服务。再去看看