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。