排查思路1:明确数据库服务处于启动,且端口正确,在数据库服务所在服务器,服务状态可以通过:ps -ef | grep dmserver检查,端口可以通过netstat -ntlp | grep dmsever或者cat dm.ini | grep PORT_NUM查看,参考登录命令:“./disql 用户名/密码@IP:端口号 ”,服务状态处于运行状态,且登录端口无误。
排查思路2:排查数据库服务本地日志,在本地日志中查看是否存在ERROR错误,内容类似“Reached the max session limit”,如果出现该报错,说明数据库连接的会话数超过了数据库MAX_SESSIONS会话数设定值。可以修改达梦数据库配置文件dm.ini中的MAX_SESSIONS参数值,调大后重启数据库服务后再试。当然,原则一个合理的应用它的数据库连接不过过多,一般的应用系统连接数应该在500左右,甚至更少。更应该考虑应用代码层数据库连接设计逻辑,是否存在不合理连接或者连接后未及时释放的情况。
除了查看数据库服务日志,还可以通过dmserver服务的线程连接情况判断,比如:①通过ps -ef | grep dmserver获取dmserver的进程号,比如为5009,然后通过命令:ps -T -p 5009 | wc -l查看达梦服务的线程数情况,如果超过MAX_SESSIONS的话基本也能判断为数据库连接会话数超过MAX_SESSIONS设定值引发。
排查思路3:排查dm_svc.conf,是否配置了全局的login_mode参数,如果是,删除全局的login_mode参数,配置为局部参数。
文章
阅读量
获赞