问题现象:AIX环境,作为NFS客户端,有一个/backup目录,作为Oracle异地备份使用。 网络安全,将NFS客户端与服务端的网络断开后,Oracle生产环境主机hang住,新的连接报错,数据库监控软件告警,DB无法连接。
排查检查问题现象:
grid$crsctl stat res -t NFS Server ip_addr not responding still trying 无法连接NFS机器 oracle$sqlplus / as sysdba NFS Server ip_addr not responding still trying 无法连接NFS机器
解决:
让网络工程师最块速度恢复网络连接。
疑问? 为什么NFS 服务端与客户端断开网络? 让主机hang???
http://www.voidcn.com/article/p-aoeeuhzi-cr.html mount nfs的其它可选参数: HARD mount和SOFT MOUNT:HARD: NFS CLIENT会不断的尝试与SERVER的连接(在后台,不会给出任何提示信息,在LINUX下有的版本仍然会给出一些提示),
直到MOUNT上。 例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
对于到底是使用hard还是soft的问题,这主要取决于你访问什么信息有关。例如你是想通过NFS来运行X PROGRAM的话,你绝对不会希望由于一些意外的情况(如网络速度一下子变的很慢,
插拔了一下网卡插头等)而使系统输出大量的错误信息,如果此时你用的是HARD方式的话,系统就会等待,直到能够重新与NFS SERVER建立连接传输信息。另外如果是非关键数据的话也可以使用SOFT方式,
如FTP数据等,这样在远程机器暂时连接不上或关闭时就不会挂起你的会话过程。 本次节选的信息非AIX官网信息,但是可以借鉴参考。 https://www.talkwithtrend.com/Question/31767
Linux测试
nfs,客户端与服务器端网络断开后。 客户端主机测试: #for ((i=1;i<100000;i++));do (df -h &);done 让大量的进程执行df -h在后台执行,此时同时执行df -h的进程数量远远超出逻辑cpu数量,此时系统非常卡,但是并未出现 NFS xxx报错,与生产环境的报错。 但是也导致了主机非常卡,因为此时CPU 忙不过来了。
#pkill -9 df
#ps -ef|grep df
生产环境遇到这个问题可以
#tail -200f /var/log/messsage 读取NFS 服务端
Mar 24 20:40:11 test02 kernel: nfs: server 192.168.16.98 not responding, still trying
#umount -f /nfstest 如果知道路径,可以强力卸载
总结:1.建议NFS配置特别是AIX主机环境,使用soft 属性,无法连接报错,而非无限期进程hang住连接,直到连接成功(默认).
soft If an NFS file operation has a major timeout then report an I/O error to the calling program. The default is to continue retrying NFS file operations indef- initely. hard If an NFS file operation has a major timeout then report "server not responding" on the console and continue retrying indefinitely. This is the default.
2.提前准备应急预案
AIX 未测试
# fuser -km /rsync_bk # umount /rsync_bk
Linux已测试
#umount -f /nfstest
NFS服务端与客户端断网,导致作为NFS客户端的Oracle主机hang住
原文:https://www.cnblogs.com/lvcha001/p/13531728.html