#-----------------------------=====切换用户卡=====--------------------#
##########问题背景:
[oracle@esbdb1 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
切换用户会非常卡,近30秒才会弹出录入密码。
strace日志:
[oracle@esbdb2 ~]$ strace -T su -
execve("/bin/su", ["su", "-"], [/* 36 vars */]) = 0 <0.000315>
省略。。。
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}]) <0.011879>
read(7, "l\4\1\1.\0\0\0\4\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 2048) = 206 <0.000024>
read(7, 0x7f7e6518c2e0, 2048) = -1 EAGAIN (Resource temporarily unavailable) <0.000014>
poll([{fd=7, events=POLLIN}], 1, 24988
) = 0 (Timeout) <25.012759>
writev(7, [{"l\1\1\1\204\0\0\0\6\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/fre"..., 144}, {"\177\0\0\0type='signal',sender='net.re"..., 132}], 2) = 276 <0.000062>
省略。。。
[oracle@esbdb2 ~]$
可以看到,有个poll命令执行了25秒
##########问题解决:
这套环境是双节点RAC主机,之前无该问题,最近做了OpenSSH升级以及基线修改,昨晚两节点都意外系统重启后就这样了。
查询过程中发一个问题:
[oracle@esbdb1 ~]$ id
uid=502(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),506(asmdba) context=system_u:system_r:initrc_t:s0
其它数据库用户信息没有看到过context的内容,就百度了一下,发现和SELINUX有关,这才发现这套库的搭建者没有把SELINUX设置成disabled。
我修改了/etc/selinux/config问题,以及执行了setenforce 0 ,切换用户卡的问题解决。
注:setenforce是Linux的selinux防火墙配置命令, 执行setenforce 0 表示临时关闭selinux防火墙。selinux参数是重启生效。
该问题的诱因暂不完全确定,怀疑和省级OpenSSH有关,还需要做一些试验。