客户说执行sqlplus时报错,详细见下:
$ sqlplus 'sys/ligle as sysdba'
SQL*Plus: Release 10.2.0.4.0 - Production on Wed Jun 22 08:56:29 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
exec(): 0509-036 Cannot load program oraclebcrm because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/libc.a[aio_64.o] because:
0509-136 Symbol kaio_rdwr64 (number 1) is not exported from
dependent module /unix.
0509-136 Symbol listio64 (number 2) is not exported from
dependent module /unix.
0509-136 Symbol acancel64 (number 3) is not exported from
dependent module /unix.
0509-136 Symbol iosuspend64 (number 4) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait (number 5) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait64 (number 6) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait_timeout (number 7) is not exported from
dependent module /unix.
0509-136 Symbol aio_nwait_timeout64 (number 8) is not exported from
dependent module /unix.
0509-026 System error: Error 0
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
ERROR:
ORA-12547: TNS:lost contact
看信息知道是可能跟aio有关系,查询aio是否开启?
root@hiuset_bas1:/>lsattr -El aio0
autoconfig defined STATE to be configured at system restart True
fastpath enable State of fast path True
kprocprio 39 Server PRIORITY True
maxreqs 4096 Maximum number of REQUESTS True
maxservers 80 MAXIMUM number of servers per cpu True
minservers 1 MINIMUM number of servers True
打开aio:
root@hiuset_bas1:/>chdev -P -l aio0 -a autoconfig='available'
aio0 changed
root@hiuset_bas1:/>lsattr -El aio0
autoconfig available STATE to be configured at system restart True
fastpath enable State of fast path True
kprocprio 39 Server PRIORITY True
maxreqs 4096 Maximum number of REQUESTS True
maxservers 80 MAXIMUM number of servers per cpu True
minservers 1 MINIMUM number of servers True
在执行sqlplus登陆db,没有问题了~
注:如果上面这些执行后仍然存在问题,需要relink all一下软件
介绍一下relink方法的使用。
1.以oracle用户登录操作系统
[root@secdb ~]# su - oracle
ora11g@secdb /home/oracle$
2.确定$ORACLE_HOME环境变量设置正确
ora11g@secdb /home/oracle$ echo $ORACLE_HOME
/oracle/ora11gR2/product/11.2.0/dbhome_1
3.确定操作系统的环境变量设置正确
主要涉及一下几个参数:LIBPATH、LD_LIBRARY_PATH和SHLIB_PATH
以我的环境中LD_LIBRARY_PATH环境变量设置为例:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
这里需要注意的是:“$ORACLE_HOME/lib”内容要放在最前面,使其能够最先被检索到。
4.使用env命令验证操作系统环境变量是否设置正确
5.确定umask为022
ora11g@secdb /home/oracle$ umask
0022
如果返回的不是022可以使用下面的方法来调整。
ora11g@secdb /home/oracle$ umask 022
ora11g@secdb /home/oracle$ umask
0022
6.执行relink命令
1)停止监听和数据库实例
ora11g@secdb /home/oracle$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-DEC-2010 20:30:09
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
停止数据库实例。
sys@ora11g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
2)执行relink命令
本文以11gR2版本为例进行演示。
在11g这个版本中在relink过程中将不在屏幕上不断的输出relink的结果,取而代之的是将所有的输出内容都自动重定向到了relink.log日志中。如果是自其它版本中完成relink,建议将这些输出的信息都手工的重定向到一个文件中,方便对繁杂的内容进行检查。
ora11g@secdb /home/oracle$ relink all
writing relink log to: /oracle/ora11gR2/product/11.2.0/dbhome_1/install/relink.log
对relink都做了些什么的朋友可以仔细看一下这个输出日志内的信息。
7.小结
可以说使用relink的场景不是很多。除了遇到本文开始处提到的场景时需要使用relink外,如果遇到个别或大量可执行程序无法正常使用时也可以考虑使用relink重新初始化Oracle软件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29446986/viewspace-2119909/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29446986/viewspace-2119909/