ITPub博客

首页 > 数据库 > Oracle > 在Intel扩展64BIT上安装64位oracle9208碰到的问题

在Intel扩展64BIT上安装64位oracle9208碰到的问题

原创 Oracle 作者:logzgh 时间:2007-04-09 09:20:32 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/100091/viewspace-909415/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: imp和commit=y
请登录后发表评论 登录
全部评论
  • 博文量
    97
  • 访问量
    997588