OS:redhat AS 4u4 64bit.
20G内存
4个双核CPU。
这次安装过程中碰到如下问题,记下来,使得大家以后碰到同样的问题时可以减少时间。
[@more@]1.在安装oracle时,在18%处停住了。显示为copying naeet.o。
解决办法:设置export LD_ASSUME_KERNEL=2.4.19环境变量。
2.有几个编译错误,如extproc32。
解决办法:这些编译需要以gcc296和g++296来编译。
以如下命令创建 296版本的gcc和g++命令,并将它们的权限改为755。
exec /usr/bin/gcc32 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@"
创建g++命令:
exec /usr/bin/g++32 -static-libgcc -B/usr/lib/gcc-lib/i386-redhat-linux/2.96/ "$@"
将原先的gcc和g++命令先做备份。
然后重新编译出问题的模块:
make -f /opt/oracle/products/9.2.0.8/rdbms/lib/ins_rdbms.mk /opt/oracle/products/9.2.0.8/rdbms/lib/extproc32 EXTPROC=/opt/oracle/products/9.2.0.8/rdbms/lib/extproc32 LIBDIR=lib32 LDFLAGS='-m32 -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)stubs/'
编译完后,将原先的gcc和g++还原回来。
注意,如果全部以296的g++和gcc来编译的话, 不会出现任何编译问题,但是在执行sqlplus,lsnrctl之类的命令时都会出现
Segmentation fault错误。
strace跟踪得到如下结果:
munmap(0x2a9634d000, 131173) = 0
set_tid_address(0x2a96370170) = 8573
rt_sigaction(SIGRTMIN, {0x3f6a505190, [], SA_RESTORER|SA_SIGINFO, 0x3f6a50c430}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x3f6a505210, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3f6a50c430}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
_sysctl({{CTL_KERN, KERN_VERSION}, 2, 0x7fbffff440, 35, (nil), 0}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
开始我还以为是sysctl.conf文件设置错误。
3.ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
将db_cache_size设置为10G时,报出上面错误。
检查内核参数:发现shmall为2096000。
此参数太小了。将它设为6096000后,可以调大。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/100091/viewspace-909415/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/100091/viewspace-909415/