一次sqlplus登陆数据库时报错排查(error while loading shared libraries: libclntsh.so.11.1: wrong ELF class)

问题: 某客户来电,一个老数据库环境,登陆上进行检查时发现sqlplus命令执行出错,报
sqlplus / as sysdba登陆数据库时,报错sqlplus:error while loading shared libraries: libclntsh.so.11.1: wrong ELF class: ELFCLASS32
在这里插入图片描述
排查:
这问题按照正常思路,检查:
1.环境变量中LD_LIBRARY_PATH中路径,64/32位的lib均在,并到变量中的对应目录,检查了里面的库文件都存在,权限正常
2.检查当前数据库用户权限、属组,与LD_LIBRARY_PATH中的对比,均无异常。
3.数据库软件位数/OS位数检查确认无误,均64bit.

常见的问题检查一波,均正常,一时陷入茫然…………
接下来使用ldd命令查看了下对应库文件正常, ldd which sqlplus
马上使用大招,对登陆动作做strace,发现有提示权限问题。
再次到对应目录排查权限,发现$ORACLE_HOME/lib 目录权限被修改为了DSG:DSG,lib目录里面so文件权限是oracle:oinstall。

修复:
1.将lib目录修改为oracle:oinstall后,sqlplus命令执行时报错依旧;
2.执行了relink all命令,sqlplus命令恢复正常。

你可能感兴趣的:(ORACLE,故障排查)