在数据库的使用过程中,不可避免的会遇到数据库连接不上,数据库登录失败等等等等....问题。

以下是我个人遇到的一些相关问题的整理。

常见问题:连接数据库异常排查思路
      报错信息
         网络通信异常、创建socket连接失败、用户名密码错误、用户被锁定

       本地数据库连接失败
        1)数据库服务是否启动 【ps -ef|grep dmserver】
        2)用户名密码是否正确      
        3)如果用户被锁定需要SYSDBA解锁后使用

       应用或远程连接失败
        1)数据库IP/端口是否可达 【telnet 服务器IP 端口号 ssh -v -p 端口号 服务器IP】
        2)防火墙策略
        3)连接串配置是否正确
        4)如果用户被锁定需要SYSDBA解锁后使用
        5)使用数据库服务器上自带的disql工具尝试连接
        6)检查连接数是否达到连接上限

在排查连接不上数据库的问题时,首先,肯定,必须,一定先查看数据库服务是否启动,如果排查了一大堆多么复杂,高大上的配置参数以后,回头一看只是数据库服务没有启动,怎么样,有没有想跳楼的冲动...】

 

案例一  本地数据库disql登陆失败

外部连接不了docker安装的达梦数据库 达梦数据库连接失败_端口号

解决方案:

遇到这个问题可能是修改了数据库端口号,只需要指定数据库端口号就可以登陆成功。

外部连接不了docker安装的达梦数据库 达梦数据库连接失败_用户名_02

 

案例二  用户被锁定

在用户登录失败一定次数以后,用户会被锁定

解决方案:

--用户解锁
./disql SYSDBA/SYSDBA123
alter user "用户名" account unlock;

附:锁定用户语句

alter user "用户名" account lock;

 

案例三  应用服务器使用高峰期时,连接不上数据库,高峰期过后,数据库连接正常。

这个问题是数据库最大连接数达到上限,可以在数据库日志中看到相关报错,这种问题在用户使用过程中触发率颇高,所以在部署数据库时需要和应用了解用户并发量。

解决方案:

查询当前最大连接数

select SF_GET_PARA_VALUE(2,'MAX_SESSIONS');

外部连接不了docker安装的达梦数据库 达梦数据库连接失败_用户名_03

修改最大连接

ALTER SYSTEM SET 'MAX_SESSIONS' =1000 spfile;

外部连接不了docker安装的达梦数据库 达梦数据库连接失败_端口号_04

重启数据库

外部连接不了docker安装的达梦数据库 达梦数据库连接失败_用户名_05