共计 7076 个字符,预计需要花费 18 分钟才能阅读完成。
本篇内容介绍了“CentOS7.5 启动 sqlplus 失败的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
操作系统:CentOS 7.5
数据库:Oracle 11.2.0.4
sqlplus 突然无法启动,报错信息如下:
Error 5 initializing SQL*Plus
NLS initialization error
初步判断是 nls 编码文件读取失败导致 sqlplus 无法启动。用 strace 跟踪 sqlplus 的执行过程:
[oracle@node3 ~]$ strace -t -e trace=file sqlplus
10:30:16 execve(/opt/app/oracle/product/11g/bin/sqlplus , [ sqlplus], [/* 29 vars */]) = 0
10:30:16 access(/etc/ld.so.preload , R_OK) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/tls/x86_64/libsqlplus.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib/tls/x86_64 , 0x7ffd81e7e460) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/tls/libsqlplus.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib/tls , 0x7ffd81e7e460) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/x86_64/libsqlplus.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib/x86_64 , 0x7ffd81e7e460) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libsqlplus.so , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libclntsh.so.11.1 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libnnz11.so , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib32/tls/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib32/tls/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib32/tls/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib32/tls , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib32/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib32/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib32/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/opt/app/oracle/product/11g/lib32 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/tls/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/lib/tls/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/tls/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/lib/tls , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/lib/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/lib , {st_mode=S_IFDIR|0555, st_size=4096, …}) = 0
10:30:16 open(/usr/lib/tls/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/usr/lib/tls/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/tls/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/usr/lib/tls , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/x86_64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/usr/lib/x86_64 , 0x7ffd81e7e3d0) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libdl.so.2 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 stat(/usr/lib , {st_mode=S_IFDIR|0555, st_size=4096, …}) = 0
10:30:16 open(/etc/ld.so.cache , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/lib64/libdl.so.2 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libm.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libm.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libm.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libm.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib64/libm.so.6 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libpthread.so.0 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libpthread.so.0 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libpthread.so.0 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libpthread.so.0 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib64/libpthread.so.0 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libnsl.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libnsl.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libnsl.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libnsl.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib64/libnsl.so.1 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libc.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libc.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libc.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libc.so.6 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib64/libc.so.6 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libaio.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libaio.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libaio.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib/libaio.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/usr/lib/libaio.so.1 , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/lib64/libaio.so.1 , O_RDONLY|O_CLOEXEC) = 3
10:30:16 open(/opt/app/oracle/product/11g/lib/libsqlplusic.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libociicus.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/lib/libociei.so , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
10:30:16 open(/opt/app/oracle/product/11g/nls/data/lx1boot.nlb , O_RDONLY) = 3
10:30:16 open(/opt/app/oracle/product/11g/nls/data/lx00001.nlb , O_RDONLY) = 3
10:30:16 open(/opt/app/oracle/product/11g/nls/data/lx20354.nlb , O_RDONLY) = 3
Error 5 initializing SQL*Plus
NLS initialization error
10:30:16 +++ exited with 1 +++
可看到是在读取 lx20354.nlb 文件候,导致 sqlplus 退出。查看此文件:
[oracle@node3 data]$ ll /opt/app/oracle/product/11g/nls/data/lx20354.nlb
ls: cannot access /opt/app/oracle/product/11g/nls/data/lx20354.nlb: No such file or directory
发现此文件竟然丢失了。因此可断定,是编码文件 lx20354.nlb 的丢失导致了 sqlplus 启动失败。
解决方案:
从运行正常的同版本实例中拷贝丢失的文件并放到相应目录下即可解决问题。
“CentOS7.5 启动 sqlplus 失败的解决方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!