2020-08-20

沈北中心医院ZLHIS登录不成功(ORA-12156)解决案例分享

现象

  1. 首先医生切换电子病历标签的时候报错。


    image.png
  2. 我远程登录导航台的时候报错


    image.png

问题推理

  1. 首先可以确定这两个地方的报错是由同一个问题引起。
  2. 登录导航台就报错,可以确定不是由于电子病历数据库引起的。
  3. 新登录用户无法登录,已登录用户可以正常使用。
  4. ws说关闭电子病历服务,导航台能正式登录。但是我连续登录几个导航台就不能再登录了。确定不是由于病历服务引起的,因为病历服务使用连接池连接HIS数据库,关闭后会释放部分连接,所以假象是病历服务引起的故障。
  5. 判断 Process, 病历数据库 Select Count() From vprocess 结果是45, 而show parameter process 设置的是500。远没有达到上限。HIS数据库 Select Count(*) From vprocess 是499,距离上限500 仅有一个连接。Select Count(), Inst_id from gv$session group by inst_id, 结果发现全是1号机的连接,2号机没有数据。
  6. 结论:2号机服务早已停止,导致1号机承担所有负载,超过process设定,从而无法使新的用户登录。

问题验证

root 登录
 su - grid
srvctl status database -d database 
[grid@rac1 ~]$ srvctl status database -d zlhis;
Instance ZLHIS1 is running on node rac1
Instance ZLHIS2 is not running on node rac2

确认了猜测,2号机上的数据库确实已经不再运行。
启动2号机

srvctl start database -d zlhis;

报错: no space to write log
查磁盘空间:

df -h
[root@rac2 /]# df -h;
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              99G  3.9G   90G   5% /
tmpfs                  32G  300M   32G   1% /dev/shm
/dev/sda2             296G   57G  224G  21% /bak
/dev/sda1             477M   42M  410M  10% /boot
/dev/sda7              25G   46M   24G   1% /home
/dev/sda5              99G   99G  0G  100% /oracle
  • 确定了是 /oracle目录的磁盘满了。
  • 这种通常是由于日志或者备份文件造成的。
  • 删日志 (不同医院可能路径不通)
cd /oracle/app/grid/diag/tnslsnr/rac2/listener/trace
[root@rac2 trace]# cat /dev/null > listener.log
cd /oracle/app/grid/diag/tnslsnr/rac2/listener/alert
[root@rac2 trace]# rm -f *.xml 

重启数据库,一切OK。

最后,为什么一号机磁盘充足,而二号机就满了?

通过一系列定位发现在 $ORACLE_HOME/dbs 下有个 core 的文件夹,里头有两个文件,个头都是30多G以上。
以前从未遇到,经过各种搜索,确定没有什么用。但只知道是数据库dump下来的内存快照之类的。
于是删之

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。