EN 联系我们加入我们
典型案例
您现在的位置:首页 > 典型案例
【案例分享】NFS挂载配置导致的Oracle宕机处理报告


一、故障描述


安图特工程师接到某保险公司服务请求,表示Oracle数据库无法连接,截图如下:


image001.png


image002.jpg


image004.jpg


与客户沟通得知近期数据库有重启的情况。

登录后无法连接数据库:

[oracle@**** lib]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Aug 2 11:57:03 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup

ORA-10997: another startup/shutdown operation of this instance inprogress

ORA-09968: unable to lock file

Linux-x86_64 Error: 37: No locks available

Additional information: 64

SQL> 


查看相关日志,报错如下:


image006.png


image008.pngimage008.png


df -h结果如下:


image010.png


二、故障分析


在文件系统列表中发现NFS,猜测故障与NFS有关。分析发现,数据库建在NFS上,由此可以确定数据库无法连接是由NFS的配置问题导致。

具体原因是挂载NFS时,未正确配置NFS的相关属性,导致无法正常读取NFS上的数据内容,Oracle数据库无法正常启动。

一般情况下,Oracle的数据文件存放在NFS中,但不建议像本案一样,将数据库软件也放在NFS上。


三、解决方案



Mount对应的NFS磁盘:

umount /data

#发现nfs被占用无法umount 因此强行kill掉占用的进程

lsof |grep "/data"

ps -ef|grep 63173

lsof |grep "/data"

kill -9 63173

umount -f /data


重新挂载NFS并添加相应的选项:

mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600,nolock 10.136.1.135:/fs/nan5500/nfs218 /data


修改开机启动项,确保开机自动挂载NFS时,可自动设定:

vi /etc/fstab

#在末尾加上这一行

10.136.1.135:/fs/nan5500/nfs218     /data      nfs  rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600,nolock   1  1


再次连接数据库,可正常开启:

[oracle@********* ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Aug 2 12:01:14 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup  

ORACLE instance started.

Total System Global Area 1.0689E+11 bytes

Fixed Size             2265864 bytes

Variable Size       1.1274E+10 bytes

Database Buffers    9.5563E+10 bytes

Redo Buffers          55242752 bytes

Database mounted.

Database opened.



四、经验总结



1、不建议将数据库搭建到NFS上,如有类似情况,建议提前检查是否正确配置了开机挂载;

2、如再次发生类似情形的数据库启动问题,且环境涉及到NFS,可首先考虑是否符合本案例情况;

3、此次故障处理的难点是找出故障原因,因为从数据库的报错和日志并不能明确的表示出是什么具体问题,但结合提示,主要是无法读写文件和无法自动执行相应文件,结合实际有NFS的环境,推测可能是由于NFS挂载问题导致的。


备注:Mount指令涉及到NFS挂载的相关参数说明

-a:把/etc/fstab中列出的路径全部挂载。

-t:需要mount的类型,如nfs等。

-r:将mount的路径定为read only。

-v mount:过程的每一个操作都有message传回到屏幕上。

rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是1 024个字节。

wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是1 024个字节。

timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。

retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。

soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。

hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。

intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。

fg:一直在提示符下执行重复挂载。

bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。

tcp:对文件系统的挂载使用TCP,而不是默认的UDP。


如欲了解更多,请登录安图特官方网站:www.antute.com.cn

版权所有 安图特(北京)科技有限公司 备案号:京ICP备17074963号-1
技术支持:创世网络