此问题和“网络通讯异常”报错的处理方式类似:
网络通讯异常通常有以下几个原因导致问题
1.达梦数据库的服务没有启动:ps -ef | grep dmser
2.远程访问被防火墙拦截
3.端口号不对: cat xx.dm.ini| grep -i port_num
4.达到最大会话数限制,无法建立新的连接(这种情况通过查看实例日志也可以看出相关端倪,日志输出类似于:ntsk_login_check_lowdetect not xxx login, while reach maximum session limitation.)
-- 查看连接数
select 'ACTIVE_SESS:' as SESS,count(1) as COUNT from v$sessions where state='ACTIVE' union all
select 'CURRENT_SESS:',count(1) from v$sessions union all
select 'MAX_SESS:',para_value from v$dm_ini where para_name='MAX_SESSIONS';
5. 如果查看实例日志无相关日志输出,而实例由正常转为宕机,还应查看dmesg确认是否因OOM问题被系统kill(容器问题请查看宿主机日志),如OOM,需检查是否因未进行基础参数优化,导致配置过大的max_session从而引发OOM
6.数据库服务端对连接资源进行限制终止,是否人为kill会话
7.应用端连接配置限制资源使用将连接终止,可查看(中间件)连接池是否配置正常
8.应用使用驱动程序老旧,建议使用的驱动程序和数据库版本匹配或使用最新驱动,(注意新版本驱动版本从8.1.3.62开始,要求URL中指定的模式名大小写和数据库中模式名大小写严格保持一致);可以取服务器同版本的驱动看看是否还有问题,位置在$DM_HOME/drivers
此问题和“网络通讯异常”报错的处理方式类似:
网络通讯异常通常有以下几个原因导致问题
1.达梦数据库的服务没有启动:ps -ef | grep dmser
2.远程访问被防火墙拦截
3.端口号不对: cat xx.dm.ini| grep -i port_num
4.达到最大会话数限制,无法建立新的连接(这种情况通过查看实例日志也可以看出相关端倪,日志输出类似于:ntsk_login_check_lowdetect not xxx login, while reach maximum session limitation.)
-- 查看连接数
select 'ACTIVE_SESS:' as SESS,count(1) as COUNT from v$sessions where state='ACTIVE' union all
select 'CURRENT_SESS:',count(1) from v$sessions union all
select 'MAX_SESS:',para_value from v$dm_ini where para_name='MAX_SESSIONS';
5. 如果查看实例日志无相关日志输出,而实例由正常转为宕机,还应查看dmesg确认是否因OOM问题被系统kill(容器问题请查看宿主机日志),如OOM,需检查是否因未进行基础参数优化,导致配置过大的max_session从而引发OOM
6.数据库服务端对连接资源进行限制终止,是否人为kill会话
7.应用端连接配置限制资源使用将连接终止,可查看(中间件)连接池是否配置正常
8.应用使用驱动程序老旧,建议使用的驱动程序和数据库版本匹配或使用最新驱动,(注意新版本驱动版本从8.1.3.62开始,要求URL中指定的模式名大小写和数据库中模式名大小写严格保持一致);可以取服务器同版本的驱动看看是否还有问题,位置在$DM_HOME/drivers