sqlplus启动失败

操作系统: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启动失败。


解决方案:

 从运行正常的同版本实例中拷贝丢失的文件并放到相应目录下即可解决问题。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31544156/viewspace-2638739/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31544156/viewspace-2638739/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值